The Theory Behind User Interface Design, Part One, Page 2
Short-term memory (STM) is a limited memory that acts as a buffer for volatile data and it is used to process perceptual input. Empirical studies founded that, usually, human beings have an STM capacity of between five and nine items. Such items can be single objects or coherent chunks of information. The size of non-atomic pieces of information that can be stored in the STM depends on the familiarity with the subject, but usually the information lasts no longer than 15-30 seconds. Try it yourself: It is easy to remember seven different random colors, but it is not easy to remember seven randomly-picked Spanish words (as long as you don't have some familiarity with that language). STM is very volatile. Distractions, external noise, or other tasks quickly disrupt its content. Imagine you found an interesting new book from a never-heard-before author using the Web site in Figure 3 or other similar services. Then you are suddenly forced to leave the site and close the session. Even if you come back within five minutes, you will probably have problems in remembering the exact book title. STM is commonly used to keep the state in vocal interfaces: When you answer a vocal interface selecting menus and options by means of voice or by pressing keys, you need to remember the operational context ("where" you are in the menus and options chain).
Another kind of memory is the so-called long-term memory (LTM) that is more stable and much more capable, but with slower access than STM. A major problem with LTM is the difficulty of the retrieval phase. We all use mnemonic aids to access to LTM, like mental associations to remember a personal code or password, and so forth.
STM deals also with the operation efficiency. Operations that can be processed using only STM are easier and faster to solve than those that require LTM or some external cognitive help. Complex operations are worsened by the need of maintaining the data context throughout the whole process, using working memory and STM.
STM is a valuable aid to well-designed interfaces. STM needs concentration, and generally people should be in a proper environment for maximising their performances. They should feel at ease with the application, having a reassuringly predictable idea of how it works, without the fear of making catastrophic operations, without feeling compelled by the system, and so on. Of course we cannot intervene in the final physical environment where the application will be used, but we could consider it in our design.
A designer should always try to design the user interface to make users work as much as possible with STM; in this way, their memory load is lighter and the interaction is quicker and more error-free. A Unix command line interface needs continuous access to LTM or some external "cognitive aid." It is not uncommon for Unix novice users to have post-its or paper notes to remember some commands and their syntax, or even sequences of commands to carry out a certain task. With the advent of graphical user interfaces this situation has changed. Now designers have a powerful set of tools for designing expressive, easier to use user interfaces. Another means to avoid futile memory burden on users is to adopt a standard design. In this way, users may use the knowledge acquired using other standard UIs for ours also.
Control and Automation is another important issue in user interface design. It is useful to provide the automation of some features. However, this will take away control from users. People get frustrated and nervous when they feel they do not have full control over the work they are doing. It is important to provide end-users with the sense of control.
In contrast, by its definition, a UI should provide a high level, easy-to-use view of the services and data, hiding non-meaningful details such as the CPU's internal registers or the low-level physical state of the hard disk surface. A critical factor for a successful UI design is in balancing automation and user control, showing meaningful details and hiding all the rest, and doing so adaptively, depending on the particular user. Even the same user, as s/he gets confident with the application may want to skip some automatic feature by taking full control of it. It is useful to assess the levels of control that could be exerted in a UI. This helps to make the layers of automation that could be provided (such as defining macros, providing Wizards for most common operations and so on) explicit into the design. Anyway, generally speaking, a computer program is an inherently limited artifact, in that it cannot take into account all the possible situations but only a limited, thought out in advance set of combinations.
Consequently, balancing human control over automation is a typical trade-off of UI design. On the one hand, providing fully automated UIs could be too risky, especially when the task is a critical one (like managing a chemical plant), because many independent variables may cause unforeseen behavior. On the other, allowing users to have too tight a control could be dangerous, too. They could modify some sensible data or use it in an unexpected way.
Some General Principles
There are a number of principles that should be kept in mind when designing a user interface. Just to mention a few:
- Know your user. It is perhaps the single most cited guideline in user interface guidelines. Yet, sometimes it is hard to make assumptions on your user population. The interface in Figure 2 is focused mainly on computer engineers and programmers, while the one in Figure 3 is devoted to a much more wide audience (see colors, terminology ).
- Minimizing the load on users. This implies reducing the memory and cognitive load (as discussed previously), providing informative feedback, memory aids, and other cognitive supports. It is also important to ensure that a work session can be easily interrupted for a few minutes without losing the work in progress (people are able to focus attention for a limited amount of time only). This should be taken into account when designing Web sites where pages have expiry dates and some information is not coded in the URL, making it impossible to step back to them later.
- Preserving consistencies. There are many consistencies to be preserved in a user interface: labeling, terminology, graphic conventions, components, layout, and so on. Many guidelines, principles, and even software design systematic approaches, are oriented towards consistency. For example, look carefully at the interface in Figure 1. You will discover some language inconsistencies (a not complete site localization; in this case Italian and English words are mixed together).
- Ensuring overall flexibility, error recovery, and customization. Flexibility is essential when dealing with people. Alas, human beings do err; providing mechanisms to reverse performed actions allows users to explore the UI, relieving them from the anxiety of being trapped in an unrecoverable mistake. Furthermore, the interface should be customizable by the user. For certain people (those with disabilities, for instance), this could be the only suitable way to use the application. Flexibility consists also in providing different usage mechanisms for different classes of users. Novices could use Wizards or other simplified but lengthy means for an easy interaction, while expert users can take advantage of some form of shortcut, all in the same UI. Generally, this is accomplished by providing two distinct interaction paths; one for experienced users and a simplified set of functions for inexperienced users.
- Following Standards. There are many standards and guidelines for interactions, abbreviations, terminology, and so on. Standards are essential for cross-application consistency and effective implementation. They ensure professional quality while reducing the design effort.
- Make explicit the system internal state. We already discussed this important principle above. For example, providing warning messages when delicate data is being directly manipulated, even though by experienced users. This is the case with the Amazon Web site (refer to Figure 3) where the fact that no users are currently logged in is signaled by the text "Hello. Sign in to get personalized recommendations."
In this article, we briefly discussed some of the issues and basic concepts in the theory behind user interface design. We saw that UI design can be organized around some basic criteria such as eliminating possible distractions in the UI, providing feedback to the user, avoiding errors or making them easy to handle, or to recover them (to promote an exploratory interaction mode with the user interface), and so on.
We saw that in user interface design an important role is played by the underlying conceptual model. Generally speaking, people act by means of conceptual, meaningful representations of reality. Such representations are given by their current and past experiences. Hence, there are different mental models of the same application, as seen by those that design it (UI designers), those that implement it (developers) and those that will use it (the end-users). It is important for designers to be aware of the different mental representations involved in the creation and consequent use of a user interface.
These and the other principles we mentioned are the basis of user satisfaction, low error rates, and effective task performance that inspired UI design guidelines and standards.
In this section are listed some sources on HCI, usability, and user interface design. The number of books and resources on these topics is literally countless. I have chosen only few, general titles for brevity's sake. The reviews reflect my personal opinion.
Mullet, Kevin; and Sano Darrel. 1995. Designing Visual Interfaces. Communication Oriented Techniques. Englewood Cliffs, New Jersey: Prentice Hall.
Agile book on visual design, focused on the visual and functional design aspects.
Nielsen, Jakob. 1993. Usability Engineering. San Diego: California Academic Press.
A (dated) wide collection of usability papers. Still a reference book as regards usability.
Norman, Donald A. 1993. Things That Makes Us Smart. Defending Human Attributes in the Age of the Machine. Cambridge, Massachusetts: Perseus Books.
Not as illuminating as "The Design of Everyday Things", but definitely worth reading.
Norman, Donald A. 1990. The Design of Everyday Things. New York: Doubleday.
A classic, interesting even for non-specialists.
Shneiderman, Ben. 1998. Designing the User Interface, Third Ed. Reading, Massachusetts: Addison Wesley.
If you need one (introductory or not) book on user interface design, go for this one.
Preece, Jenny. 1994. Human Computer Interaction. Reading, Massachusetts: Addison Wesley.
Compendium on the field, from an academic viewpoint (a bit dated anyway).
Tufte, Edward R. 1990. Envisioning Information. Cheshire, Connecticut: Graphic Press.
As interesting as the others in the classic three-book series from Prof. Tufte on the visual representation of information.
Tufte, Edward R. 1997. Visual Explanations. Cheshire, Connecticut: Graphic Press.
Maybe the less compelling of the three, but worth studying (rather than merely "reading").
Tufte, Edward R. 2001. The Visual Display of Quantitative Information. Second Ed. Cheshire, Connecticut: Graphic Press.
The first and the best of the three books by Tufte. An unmatched "visual" classic.
Various Authors. 2001. Java Look And Feel Design Guidelines, Second Ed. Reading, Massachusetts: Addison Wesley.
Look and feel guidelines for the Java platform. A well-crafted example of such kind of documents.
General advice on usability and GUI design on the Web:
General advice on usability and GUI design
Practical examples on GUI design
General and practical discussion on GUI design
Tognazzini's Web site
CHI Conference proceedings abstracts and other academic research material
Nielsen's Web site with some useful articles
Home of the "interface hall of shame" and other useful material
Suggested readings on HCI and UI development
Microsoft MSDN User Interface Resources
Mac OS-X Design Guidelines
Please note that this long URL had to break to fit on the page. You will have to paste it, in sections, into your Web browser.
IBM's ease of use Web site
IBM's Human Computer Interaction Web site
Practical advice on GUI design
The evolution of the Macintosh Interface
About the Author