Chapter 1: Who're You Calling a Dummy?

Addison Wesley Professional

1 2 3 4 Page 2
Page 2 of 4

The answer is that Notepad usually edits documents (called files by computer geeks) which live on your computer's hard drive. When you open a document, Notepad copies it from the disk into the computer's memory. As you add or remove text by typing, the program changes the contents of this memory copy. (In this example, we didn't open an existing document, but the program created a new one in memory, giving it the name "Untitled".) When you're finished working on the document, the program has to write the memory copy back to the disk, an operation called saving the file. Otherwise, the work you've done will disappear, and you'll get very angry.

The programmer wrote the program this way (copy the document from disk to memory, make changes on the memory copy, and write it back to disk) because that was easiest for her. And it's not a bad way to write a program. Reading or writing characters from the disk (spinning iron platters with moveable parts) is roughly a thousand times slower than doing it in memory (electrons moving at the speed of light), so this probably is the best way for this simple program to work internally.

But the programmer's user interface exposes these workings directly. How can that be bad? She's forcing you to understand that she's written the program this way. You shouldn't have to know or care about her program's internal workings to use it successfully, as you shouldn't have to know or care whether your car's engine uses fuel injection or a carburetor in order to drive it.

You don't normally think in the way that this program works. Most people think of editing a computer document as analogous to the paper-and-pencil (remember those?) method. You make marks with the pencil and there they are on the paper. You erase the ones you don't want. If you don't want any of them, you crumple up the paper and throw it away. The work you've done is permanent, unless you expend energy to get rid of it. But that's not the choice Notepad gives you. Every single new user of computers gets caught on this—selecting No, in which case Notepad discards the work you've done, which hopefully isn't much. Eventually, the user learns to think like a computer program, or more precisely, like the programmer who wrote this mess. User interface design guru Alan Cooper defines a "computer-literate user" as one who has been hurt so many times that the scar tissue is thick enough so he no longer feels the pain.

The question and its answer would be much clearer if the message box asked "Throw away everything you've just done?" It's exactly the same question, just asked from the user's point of view rather than the programmer's. But the programmer is thinking only of her program's operation, writing to the disk, and asks you whether to do that. She's requiring you to wear her shoes; she hasn't even tried to put herself in yours. If she had, she'd ask the question a different way. She might then see the ridiculousness of asking it at all, and design a better user interface, even if the underlying program worked the same way.

Microsoft Money, the personal finance program, does a better job. Its designers understand that the user's mental model is a checkbook, and his screen looks like a checkbook register (Figure 1–2). It feels familiar and comfortable (well, relatively) to a new user. The check that you're currently working on is shown in a different color. You enter the check's details and press Enter. The check moves up, changes color to look like the rest of them, and a new empty check appears in the work area. If you have sound turned on, you hear a "ka-ching" cash-register type of sound.5 The program doesn't ask you whether to save the check. The act of pressing Enter tells the program that you want to keep that information. If you later change your mind and want to change the data on a check or delete one entirely, you click on that check in the register and type in the new information. When does the program read its data from the disk to memory, and when does it write it back again? I don't know and I don't care. And I don't want to and neither do you. The program's user interface follows your mental model, instead of forcing you to learn and deal with the internal design choices of its programmers.

Figure 1.2

Figure 1-2

Microsoft Money user interface, looking like a checkbook

That's a much better way of designing a user interface. As a user, I don't want to think about the program itself. I want to think about the job the program is doing for me—for example, do I have enough money to pay this bill? Another user interface design guru, Donald Norman, expressed this feeling very well in the title of one of his books: The Invisible Computer (MIT Press, 1999). Ideally, I wouldn't think about the program at all.

That's one major reason programs are hard to use and make you feel dumb. You're being forced to think like a programmer, even though you're not one and you don't want to be one. You shouldn't have to. You don't have to think like a mechanic to drive a car, you don't have to think like a doctor to take an aspirin, and you don't have to think like a butcher to grill a hamburger. You're paying your hard-earned money for this product. It's the programmer's job to adjust to you, not the other way around.

1 2 3 4 Page 2
Page 2 of 4
IT Salary Survey: The results are in