Experiencing Design.  
spa l'esprit spa l'esprit
 
Back to essays
Tools of the Trade

Sometimes you'll hear people say, "I'm no good with tools." Don't believe them. Watch: they use tools to cook and eat their meals, clean their teeth, unlock the door to their house, and so forth, all with unremarkable virtuosity. Tools are more than just hammers and screwdrivers and saws. Rather, tools surround us in our everyday lives, and we have evolved to be very good at using them.

Well-designed tools can be a joy to use. When the act of using a tool breaks down, however, it can give us insight into what makes tools usable in the first place:

"My dad once owned a pair of pliers that always gave me a problem when I used them. Every time I tried to grip something to tighten it up, they clamped down on my fingers. I eventually learned to watch my fingers when I used them, but I still remember the pinch marks they left."

"[In putting together a bookcase] there was so many different types of screws and bolts of different sizes (some were metric and others were American sizes), that you had to have five different wrenches and screwdrivers to get the job done."

"My toaster oven has a couple of design flaws, one related to how you clean it. If food falls down below the hot coils, it tends to catch on fire easily; therefore you have to clean it frequently. The problem is that the bottom of the toaster needs to be removed to do this, and your average college student is going to put this off because he doesn't have a screwdriver sitting next to the toaster to remind him before he runs off to class after breakfast."

Tools work best when they are designed for the physical and capabilities of their user (they are most commonly held in the hand), when they are well-suited to the task that they are applied to (tools mediate interaction with other objects), and when they are ready at hand in a well-organized work environment. More basically, good tools help people reach their goals, by making incremental changes directly on visible objects. In their application, tools often act as amplifiers of some ability, but tools can also help people constrain objects (e.g. with clamps), gain information about objects (e.g. using a magnifying glass), or mark objects according to need (e.g., using a carpenter's or seamstress's pencil).

Some of what we know about the use of tools can help us build more effective software (or hardware) systems. Tangible user interfaces and handheld devices offer the most direct possibilities for mimicking tools in the real world. For example, the I/O brush, produced in Hiroshi Ishii's lab, takes the form of a large artist's paintbrush. A tiny camera embedded in the tip of the brush can pick up color and texture from any surface that the brush is touched to. Using the brush, the artist can transfer information from the physical environment onto an interactive canvas, painting in a natural way.

Graphical user interfaces based on tool metaphors take a less literal approach. The best-known work along these lines is the idea of "local tools," developed by Ben Bederson and colleagues as part of the KidPad project. Local tools are an alternative to the modal behavior of tool palettes. In a drawing application, users can pick up a pen or an eraser, use it, and drop it in a convenient place for later use. More than one copy of a tool can exist at the same time, supporting collaboration. Children as young as four can use local tools to draw pictures. Work in my own group has pushed this idea further, to explore the range of physical metaphors for software interaction, again in a drawing environment. For example, a ruler in our HabilisDraw system can act as a straightedge for freehand drawing and can also be used, when picked up, to push drawn objects into alignment at arbitrary angles. Other physical analogs, aside from pens and rulers, include pushpins to constrain movement, compasses, inkwells, and magnifying lenses.

An important question is how the benefits of tool-based interaction for drawing might transfer to tasks with a less obvious physical interpretation. This requires a bit of thought, but some abstract properties of tools can provide guidance. For example, most tools in the real world must come in contact with an object to have an effect on it. This means that the effect of a tool is generally localized. To see how this notion of "effect locality" might improve a software interface, consider a Find and Replace dialog in a word processor. Suppose I want to change every occurrence of "image" to "icon" in a document. A global replacement may give unexpected changes, such as "iconery" from "imagery" (or the less likely "pilgricon" from "pilgrimage".) If I add spaces before and after "image" to fix this, then I will miss forms that include punctuation, such as "image,". The safest route is to walk through all the matches and decide whether to change each one, in context. This has its own difficulties, however, with each successive match appearing at an unpredictable place on the screen and sometimes even with the dialog box moving to avoid obscuring matched strings.

An improved Find and Replace dialog might exploit effect locality by gathering all matches to a string in the same place, and letting the user refine the search criteria, directly apply the replace option to specific matches, or de-select some matches and then perform the replacement to the remainder automatically. This is just a brief example given to suggest further possibilities; who wouldn't like software to work as easily and transparently as a hammer or saw?

 
© 2005 Rob St. Amant

– ALL RIGHTS RESERVED –