HOW TO DO THINGS WRONGEver sit down to a typical computer? If so, you have encountered
"the tyranny of the blank screen." The person sits in front of the computer
screen, ready to begin. Begin what? How? The screen is either completely blank or contains
noninformative symbols or words that give no hint of what is expected. There is a
typewriterlike keyboard, but there is no reason to suppose that one key is preferable to
any other. Anyway, isn't it true that one wrong keystroke can blow up the machine? Or
destroy valuable data? Or accidentally get connected to some top-secret data bank and then
be investigated by the Secret Service? Who knows what danger lurks in the keypress? It is
almost as frightening as being taken to a party filled with strange people, being led to
the center of the room and let go. Your host disappears, saying: "Make yourself at
home. I'm sure there are lots of people you can talk to." Not me. I retreat to the
fringes and try to find something to read.
What is the problem? Nothing special, just more
of everything. The special powers of the computer can amplify all the usual problems to
new levels of difficulty. If you set out to make something difficult to use, you could
probably do no better than to copy the designers of modern computer systems. Do you want
to do things wrong? Here is what to do:
- Make things invisible. Widen the Gulf of
Execution: give no hints to the operations expected. Establish a Gulf of Evaluation: give
no feedback, no visible results of the actions just taken. Exploit the tyranny of the
blank screen.
- Be arbitrary. Computers make this easy. Use
nonobvious command names or actions. Use arbitrary mappings between the intended action
and what must actually be done.
- Be inconsistent: change the rules. Let something
be done one way in one mode and another way in another mode. This is especially effective
where it is necessary to go back and forth between the two modes.
- Make operations unintelligible. Use idiosyncratic
language or abbreviations. Use uninformative error messages.
- Be impolite. Treat erroneous actions by the user
as breaches of contract. Snarl. Insult. Mumble unintelligible verbiage.
- Make operations dangerous. Allow a single
erroneous action to destroy invaluable work. Make it easy to do disastrous things. But put
warnings in the manual; then, when people complain, you can ask, "But didn't you read
the manual?"
This list is getting depressing, so let us turn
to the good side. The computer has vast potential, more than enough to overcome all its
problems. Because it has unlimited power, because it can accept almost any kind of
control, and because it can create almost any kind of picture or sound, it has the
potential to bridge the gulfs, to make life easier. If designed properly, systems can be
tailored for (and by) each of us. But we must insist that the computer developers work for
us-not for the technology, not for themselves. Programs and systems do exist that have
shown us the potential; they take the user into account, and they make it easier for us to
do our tasks-pleasurable, even. This is how it ought to be. Computers have the power not
only to make everyday tasks easier, but to make them enjoyable as well.
IT'S NOT TOO LATE TO DO THINGS RIGHT
Computer technology is still young, still
exploring its potential. The notion lingers that if you have not passed the secret rites
of initiation into programming skills, you should not be allowed into the society of
computer users. It is like the early days of the automobile: only the brave, the
adventurous, and the mechanically sophisticated need apply.
Computer scientists have so far worked on
developing powerful programming languages that make it possible to solve the technical
problems of computation. Little effort has gone toward devising the languages of
interaction. Every student programmer takes courses on the computational aspect of
computers. But there are very few courses on the problems faced by the user; such courses
are usually not required, and they are not easy to fit into the already crowded schedule
of the fledgling computer scientist. As a result, most programmers fluently write computer
programs that do wonderful things but that are unusable by the non-professional. Most
programmers have never thought of the problems faced by the users. They are surprised to
discover that their creations tyrannize the user. There is no longer any excuse for this.
It is not that difficult to develop programs that make visible their actions, that allow
the user to see what is going on, that make the set of possible actions visible, that
display the current state of the system in a meaningful and clear way.
Let me give some examples of excellent work,
systems that do take into account the needs of the user. First, there is the spreadsheet,
an accounting program that has changed the face of office bookkeeping. The first
spreadsheet program, Visicalc, was so impressive that people bought computers just so they
could use this one program. That is a strong argument for its usability. Spreadsheets have
their problems; but on the whole, they allow people to work with numbers in a convenient
way, with immediately visible results.
What did people like about the spreadsheet? The
way it looked. You didn't seem to be using a computer-you were working on your problem.
You organized the problem just the way you always would, except now it was easy to make
changes, easy to see the results. Change one number and everything that depended on that
number changed along with it, in just the proper way. What a painless way to do budget
projections. All the benefits of the computer, without the technical impediments. In fact,
the best computer programs are the ones in which the computer itself
"disappears," in which you work directly on the problem without having to be
aware of the computer.
Actually, Visicalc had numerous problems. The
concept was brilliant, but the execution was flawed. I'm not complaining about the
designers, for they were limited by the power of an earlier generation of personal
computers. Today's personal computers are much more powerful, and the spreadsheet programs
are much easier to use. But the program established the model: it felt as if you were
working directly on the problem, not on a computer.
It is not easy to develop effective and usable
computer systems. For one thing, it is expensive. Consider the principles described in
this book: visibility, constraints, affordances, natural mappings, feedback. Applied to
computer systems, these mean that, among other things, the computer must be capable of
making things visible (or audible), which requires large and high quality visual displays,
a variety of input devices, and plenty of computer memory. These require faster, more
powerful computer circuits. And all this adds up to more expensive systems: more cost to
manufacture, most cost to the consumer. It may not be immediately clear that the everyday
users of computer systems are the ones who require the most powerful systems, with the
most memory and the best displays. Professional programmers can get by with less, for they
know how to deal with more complex interactions and less effective displays.
The first proper attempt to build an effective
system was not a commercial success. This was the Xerox Star, a brainchild of the Xerox
Corporation's Palo Alto Research Center. The developers recognized the importance of
large, highly detailed display screens with plenty of graphics; they gave the machine the
ability to have several different documents on the screen at the same time; and they
introduced a pointing device-in this case, the "mouse"-for the user to specify a
work area on the screen. The Xerox Star computer was a breakthrough in usable design. But
the system was too expensive and too slow. Users liked the power and the ease of
operation, but they needed better performance. The benefits of easy to use commands were
completely outweighed by the slow response speed. The display could not always keep up
with typing, and requests for explanation (the "help" system) sometimes took so
long that a user could go for a cup of coffee while waiting for an answer to even the
simplest question. Xerox showed the way but suffered a common fate of pioneers: the spirit
was willing but the implementation weak.
Fortunately for the consumer, the Apple
Computer Company has followed through on Xerox's ideas, using the philosophy developed for
the Xerox Star (and hiring away some of Xerox's people) to produce first the Apple Lisa
(also too slow and expensive and a failure in the marketplace) and then the Macintosh, a
success story.
The approach followed by Xerox has been well
documented. The major goal was consistency of operations, to make things visible so that
the available options could always be determined, and to test each idea with users at
every step of the development process. These are all the important characteristics of good
system design.
Apple's Macintosh computer makes extensive use of
visual displays. These eliminate the blank screen: the user can see what alternative
actions are possible. The computer also makes the actions relatively easy to do, and it
standardizes procedures so that methods learned for one program apply to most other
programs. There is good feedback. Many actions are done by moving a mouse-a small,
hand-held pointing device that causes a marker to move to the appropriate location on the
screen. The mouse provides good mapping of action to result, and the use of menus-choices
spelled out on the screen-makes the operations easy to perform. The Gulf of Execution and
the Gulf of Evaluation are both securely bridged.
The Macintosh fails badly at many things,
especially those for which it uses obscure combinations of keypresses to accomplish some
task. Many of the problems arise from the use of the mouse. The mouse has one button,
which simplifies its use but means that some actions must be specified by clicking the
button several times or by simultaneously holding down various combinations of keys on the
keyboard and clicking the mouse button. These actions violate the basic design philosophy.
They are difficult to learn, difficult to remember, and difficult to do.
Ah, the buttons-on-the-mouse problem. How
many buttons should the mouse have? Various models use one, two, or three, three being the
most common number. Actually, some mice have more buttons; one design even has a chord
keyboard on it. Fierce arguments rage over the correct number. The answer, of course, is
that there is no correct answer. It is a tradeoff. Increase the number of buttons and you
simplify some operations, but you also increase the complexity of the mapping problem.
Even two buttons lead to an inconsistent mapping of functions to buttons. Reduce to one
button and the mapping problem goes away, but so, too, does some of the functionality.
The Macintosh provides an example of what
computer systems could be like. The design emphasizes visibility and feedback. Its
"human interface guidelines" and its internal "toolbox" provide
standards for the many programmers who design for it. It has emphasized consideration for
the user. Yes, there are several serious drawbacks to the Macintosh: it is far from
perfect. And it isn't unique. Still, for its relative success in making usability and
understanding into primary design objectives, I'd give the Apple Macintosh a prize. If
only I thought more of prizes.
COMPUTER AS CHAMELEON
The computer is unusual among machines in that
its shape, form, and appearance are not fixed: they can be anything the designer wishes
them to be. The computer can be like a chameleon, changing shape and outward appearance to
match the situation. The operations of the computer can be soft, being done in appearance
rather than substance. And the appearance can be reversed with a change of mind by the
user. As users, we can create explorable systems that can be learned through
experimentation, without fear of failure or damage. Furthermore, the computer can take on
the appearance of the task; it can disappear behind a facade (its system image).
EXPLORABLE SYSTEMS: INVITING
EXPERIMENTATION
One important method of making systems easier to
learn and to use is to make them explorable, to encourage the user to experiment and learn
the possibilities through active exploration. This is how many people learn about home
appliances, or about a new stereo system, television set, or video game. Work the buttons
while listening and looking to see what happens. The same can be true with computer
systems. There are three requirements for a system to be explorable.
- In each state of the system, the user must readily
see and be able to do the allowable actions. The visibility acts as a suggestion,
reminding the user of possibilities and inviting the exploration of new ideas and methods.
- The effect of each action must be both visible and
easy to interpret. This property allows users to learn the effects of each action, to
develop a good mental model of the system, and to learn the causal relationships between
actions and outcomes. The system image plays a critical role in making such learning
possible.
- Actions should be without cost. When an action has
an undesirable result, it must be readily reversible. This is especially important with
computer systems. In the case of an irreversible action, the system should make clear what
effect the contemplated action will have prior to its execution; there should be enough
time to cancel the plan. Or the action should be difficult to do, nonexplorable. Most
actions should be cost-free, explorable, discoverable.
TWO MODES OF COMPUTER USAGE
Compare two different ways of getting a task
done. One way is to issue commands to someone else who does the actual work: call this
"command mode" or "third-person" interaction. The other way is to do
the operations yourself: call this "direct manipulation mode" or
"first-person" interaction. The difference between these two is like the
difference between being driven by a chauffeur and driving an automobile yourself. These
two different modes exist with computers.
Most computer systems offer command mode,
third-person interactions. To use the computer, you type commands to it, using a special
"command language" that you have to learn. Some computer systems offer direct
manipulation, first-person interactions, good examples being the driving, flying, and
sports games that are commonplace in arcades and on home machines. In these games, the
feeling of direct control over the actions is an essential part of the task. This feeling
of directness is also possible with everyday computer tasks, such as writing or
bookkeeping. Spreadsheet programs and many text editors and word processing programs are
good examples of direct manipulation systems used in business.
Both forms of interaction are needed.
Third-person interaction is well suited for situations in which the job is laborious or
repetitive, as well as those in which you can trust the system (or other person) to do the
job for you properly. Sometimes it is nice to have a chauffeur. But if the job is
critical, novel, or ill-specified, or if you do not yet know exactly what is to be done,
then you need direct, first-person interaction. Now direct control is essential; an
intermediary gets in the way.
But direct manipulation, first-person systems
have their drawbacks. Although they are often easy to use, fun, and entertaining, it is
often difficult to do a really good job with them. They require the user to do the task
directly, and the user may not be very good at it. Colored pencils and musical instruments
are good examples of direct manipulation systems. But I, for one, am not a good artist or
musician. When I want good art or good music, I need professional assistance. So, too,
with many direct manipulation computer systems. I find that I often need first-person
systems for which there is a backup intermediary, ready to take over when asked, available
for advice when needed.
When I use a direct manipulation system-whether
for text editing, drawing pictures, or creating and playing games-I do think of myself not
as using a computer but as doing the particular task. The computer is, in effect,
invisible. The point cannot be overstressed: make the computer system invisible. This
principle can be applied with any form of system interaction, direct or indirect.
THE INVISIBLE COMPUTER OF THE FUTURE
Consider what the computer of the future might
look like. Suppose I told you it wouldn't even be visible, that you wouldn't even know you
were using one? What do I mean? Well, this is already true: you use computers when you use
many modern automobiles, microwave ovens, and games. Or CD players and calculators. You
don't notice the computer because you think of yourself as doing the task, not as using
the computer.
In the same sense, you don't go to the kitchen to
use an electric motor; you go to use the refrigerator, or the blender, or the dishwasher.
The motors are part of the task, even in the case of the blender, mixer, or food
processor, which are essentially pure motors and the specialized attachments they drive.
The computer of the future is perhaps best
illustrated by my imaginary perfect calendar. Suppose I am home one evening, deciding
whether to accept an invitation to attend a conference next May. I pick up my appointment
calendar and turn to the appropriate page. I tentatively decide that I can attend and
pencil in the topic. The calendar flashes at me and displays a note reminding me that the
university will still be in session during that period and that the trip overlaps my
wife's birthday. I decide that the conference is important, so I make a note to check
whether I can get someone to take over my classes and to see whether I can leave the
conference early for the birthday. I close the calendar and get back to other things. The
next day, when I arrive at my office I find two notes on my message screen: one to find a
substitute for my classes next May, the other to check with the conference organizers to
see if I can leave early.
This imaginary calendar looks like a
calendar. It's about the size of a standard pad of paper, it opens up to display dates.
But it really is a computer, so it can do things that today's appointment calendar cannot.
It can, for example, present its information in different formats: it can display the
pages compressed so that a whole year fits on one page; it can expand the display so that
I see a single day in thirty-minute intervals. Because I frequently use my calendar in
conjunction with my travels, the calendar is also an address book, notepad, and expense
account record. Most important, it can also connect itself to my other systems (via a
wireless infrared or electromagnetic channel). Thus, whatever I enter into the calendar
gets transmitted to my office and home systems so that they are always in synchrony. If I
make an appointment or change someone's address or telephone number on one system, the
others get told. When I finish a trip, the expense record can be transferred to the
expense account form. The computer is invisible, hidden beneath the surface; only the task
is visible. Although I may actually be using a computer, I feel as if I am using my
appointment calendar.
Note: Reprinted by permission of the publisher, from Donald
A. Norman, "The Design Challenge," in The Psychology of Everyday Things
(New York: HarperCollins Publishers, 1988), 178-186. Copyright 1988 by Donald A. Norman.
|