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."
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.
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.
This is not to say, however, that such problems cannot be solved -- if we are willing to put aside our preoccupations with pretty icons and pull-down menus, and attend instead to the deep structure of human behavior. That deep structure is precisely the subject of Norman's book: The seven stages of action, the nature of memory, the focus of attention (or lack of same), the importance of mapping, the taxonomy of errors and their causes, the power of constraints, and the myriad ways in which a designer can go wrong (not the least of which is the designer's inclination to think of himself as an average user).
The discussions in Design of Everyday Things range over a marvelous variety of objects and tasks: from faucets to door handles, from stoves to VCRs, from telephones to movie projectors, from an audio mixing control panel to the console at a nuclear power plant. Some of the real-life illustrations of poor design values are grotesque to the point of low comedy, such as the British train door that bears the following sign on its inside in lieu of a latch: "To open door, lower the window and use outside handle. Please close window and shut door after use." But Norman saves some of his most telling barbs for personal computers, because, as he points out,
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:
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.
Copyright © 1991, Dr. Dobb's Journal
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: