Reading “The Design of Everyday Things” by Donald A Norman (published in 1988), I came upon a passage that was worth posting, because so many application user interface designers seem to have forgotten:
“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’s what to do:
- Make things invisible. Widen the Gulf of Execution: give no hints to the operations expected. Establish a Gulf of Evaluation: Give not feedback, no visible results of the actions just taken. Exploit the tyranny of the blank screen.
- Be arbitrary. Computers make this easy. Use nonobvius 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 unintelligble. Use idosyncratic language or abreviations. Use uninformative error messages.
- Be impolite. Treat erroneous actions by the user as breaches of contract. Snarl. Insult. Mumble unintelligble 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 section on ‘Explorable Systems’ in the same chapter provides the following advice:
“One important method of making systems easier to learn and use it to make them explorable, to encourage the user to experiment and learn the possibilities through active exploration. 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. Thus 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 complicated 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.”