With the stunning success of Windows 3.0, a painful phase in the evolution
of computer interfaces is coming to a close. The bitter struggle between
the advocates of command line interfaces and graphical user interfaces --
exemplified by wild-eyed Unix shell script hackers on the one hand, and
Macintosh desktop publishing zealots on the other -- has been resolved decisively
in favor of the GUI camp. The users have made their choice clear, and the
visionary 1970s work of the Xerox PARC pioneers has been vindicated. Armies
of mice march triumphant through the streets of Redmond, Washington, while
the guerrilla forces of real-time speech recognition, the stylus, touch
screens, and neural networks lurk forlornly in the surrounding hills.
Or so the computer press would have us believe. But have any fundamental
interface issues actually been solved, or is the press occupying itself
(as it has all too often in the past) with superficialities? Ponder with
me, gentle reader, a typical slice-of-life for today's computer user, as
related in Donald Norman's The Design of Everyday Things:
USER: Remove file "My-most-important work."What went wrong in this computer-user interaction? The difficulty goes far beyond the nature of the interface: What we are eavesdropping on here is not a dialogue, but two monologues. Once the user has embarked on his chosen course of file deletion, he is already thinking ahead to his next goal and his responses to the computer's requests for confirmation verge on the automatic. Furthermore, the computer's attempts to provide a safety net are largely ineffective, because they are focused on the act of deletion and not on the name (or better yet, the actual contents) of the file that is about to be destroyed. There's nothing special about a GUI that can prevent this sort of problem, nor is there anything distinctive about a command line interface that promotes it.
COMPUTER: Are you certain you wish to remove the file "My-most-important work"?
USER: Yes.
COMPUTER: Are you certain?
USER: Yes, of course.
COMPUTER: The file "my-most-important work" has been removed.
USER: Oops, damn.
The special powers of the computer can amplify all of 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:There's a lot of wisdom packed in this tiny book, and every software developer should read it; a better investment of two or three hours is hard to imagine. The chapter entitled "Knowledge in the Head and in the World," for instance, explains how precise behavior can result from imprecise knowledge in the presence of external cues and constraints. This chapter crystallized many half-formed notions for me and gave me a whole new perspective on some programs I was developing for my hospital's Neonatal Intensive Care Unit. But applying the wisdom won't necessarily be easy -- it's all too tempting to laugh in retrospect at the blunders of others, but less trivial to prospectively avoid such "obvious" blunders ourselves. Norman can offer us no magical answers, only guidelines augmented with the following words of encouragement:
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?"
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 gulfs, to make life easier. If designed properly, systems can be tailored for (and by) each of us. But we must insist that 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 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.