The Golden Rules For Interface Design
Theo Mandel [Man97] coins three golden rules:
1. Place the user in control.
2. Reduce the user's memory load.
3. Make the interface consistent.
These golden rules actually form the basis for a set of user interface design principles that guide this important aspect of software design.
Place the User in Control
During a requirements-gathering session for a major new information system, a key user was asked about the attributes of the window-oriented graphical interface. "What I really would like, " said the user solemnly, "is a system that reads my mind. It knows what I want to do before I need to do it and makes it very easy for me to get it done. That's all, just that.
My first reaction was to shake my head and smile, but I paused for a moment. There was absolutely nothing wrong with the user's request. She wanted a system that reacted to her needs and helped her get things done. She wanted to control the computer, not have the computer control her.
Most interface constraints and restrictions that are imposed by a designer are intended to simplify the mode of interaction. But for whom?
As a designer, you may be tempted to introduce constraints and limitations to simplify the implementation of the interface, The result may be an interface that is easy to build, but frustrating to use, Mandel [Man97] defines a number of design principles that allow the user to maintain control:
Define interaction modes in a way that does not force a user into unnecessary or undesired actions. An interaction model is the current state of the interface. For example, if spell check is selected in a word-processor menu, the software part two modeling moves to a spell-checking mode. There is no reason to force the user to remain in spell-checking mode if the user desires to make a small text edit along the way. The user should be able to enter and exit the mode with little or no effort.
Provide for flexible interaction. Because different users have different interaction preferences, choices should be provided. For example, the software might allow a user to interact via keyboard commands, mouse movement, a digitizer pen, a multitouch screen, or voice recognition commands, But every action is not amenable to every interaction mechanism. Consider, for example, the difficulty of using keyboard command (or voice input) to draw a complex shape.
Allow user interaction to be interruptible and undoable. Even when involved in a sequence of actions, the user should be able to interrupt the sequence to do something else (without losing the work that had been done). The user should also be able to "undo" any action.
Streamline interaction as skill levels advance and allow the interaction to be customized. Users often find that they perform the same sequence of interactions repeatedly. It is worthwhile to design a "macro" mechanism that enables an advanced user to customize the interface to facilitate interaction.
Hide technical internals from the casual user. The user interface should move the user into the virtual world of the application. The user should not be aware of the operating system, file management functions, or other arcane computing technology. In essence, the interface should never require that the user interacts at a level that is "inside" the machine (e.g., a user should never be required to type operating system commands from within application software).
Design for direct interaction with objects that appear on the screen. The user feels a sense of control when able to manipulate the objects that are necessary to perform a task in a manner similar to what would occur if the object were a physical thing. For example, an application interface that allows a user to "stretch" an object (scale it in size) is an implementation of direct manipulation.
0 Comments