"We want principles, not only developed - the work of the closet, - but applied, which is the work of life."
- Horace Mann, Thoughts, 1867

Design Principles


Contents

  • Introduction
  • Shneiderman's "Eight Golden Rules of Dialog Design"
  • Mayhew's "General Principles of User Interface Design"
  • IBM's "Design Principles for Tomorrow"
  • Principles Presented in Class
  • Conclusion
  • Related Links
  • Reference

    Introduction

    In order to reach successful design of interactive systems, designers must go beyond intuitive judgments when a design problem arises. Design principles are statements of policy which help designers to make decisions during a design process. Design principles are high level guidance which require interpretation before they can be applied in real world design tasks. Since they are generalizations that omit details, design principles are often supplemented by design guidelines which are more specific and can be followed with minimal filling out. In this report, we talk about only general design principles and the details of design guidelines should be the topics of the reports that follow.

    Since the design principles are basically derived from design experiences, it is very natural that different authors may have their own sets of principles which are different from one another in order or even details. However, there are always something common in their considerations due to the abstractness of the principles. For your reference and comparison, several collections of principles from different sources will be presented in this report. They are, namely, Ben Shneiderman's "Eight Golden Rules of Dialog Design", Deborah J. Mayhew's "General Principles of User Interface Design", IBM's "design principles for tomorrow" and the principles discussed in class. Some related world wide web links are provided at the end.


    Shneiderman's "Eight Golden Rules of Dialog Design"

    Ben Shneiderman proposed this collection of principles, which is derived heuristically from experience and applicable in most interactive systems after properly refined, extended and interpreted.

    1 Strive for consistency.
    Consistent sequences of actions should be required in similar situations; identical terminology should be used in prompts, menus, and help screens; and consistent commands should be employed throughout.

    2 Enable frequent users to use shortcuts.
    As the frequency of use increases, so do the user's desires to reduce the number of interactions and to increase the pace of interaction. Abbreviations, function keys, hidden commands, and macro facilities are very helpful to an expert user.

    3 Offer informative feedback.
    For every operator action, there should be some system feedback. For frequent and minor actions, the response can be modest, while for infrequent and major actions, the response should be more substantial.

    4 Design dialog to yield closure.
    Sequences of actions should be organized into groups with a beginning, middle, and end. The informative feedback at the completion of a group of actions gives the operators the satisfaction of accomplishment, a sense of relief, the signal to drop contingency plans and options from their minds, and an indication that the way is clear to prepare for the next group of actions.

    5 Offer simple error handling.
    As much as possible, design the system so the user cannot make a serious error. If an error is made, the system should be able to detect the error and offer simple, comprehensible mechanisms for handling the error.

    6 Permit easy reversal of actions.
    This feature relieves anxiety, since the user knows that errors can be undone; it thus encourages exploration of unfamiliar options. The units of reversibility may be a single action, a data entry, or a complete group of actions.

    7 Support internal locus of control.
    Experienced operators strongly desire the sense that they are in charge of the system and that the system responds to their actions. Design the system to make users the initiators of actions rather than the responders.

    8 Reduce short-term memory load.
    The limitation of human information processing in short-term memory requires that displays be kept simple, multiple page displays be consolidated, window-motion frequency be reduced, and sufficient training time be allotted for codes, mnemonics, and sequences of actions.


    Mayhew's "General Principles of User Interface Design"

    In his frequently cited book Principles and Guidelines in Software User Interface Design, Deborah J. Mayhew has proposed a set of design goals, the general characteristics that any interface should have. These principles cover almost all aspects of user interface design.

    1 User compatibility.
    Perhaps the most fundamental principle, from which all other derive, is to know the user. Designer should be familiar with cognitive psychology, or an understanding of the general strengths and weaknesses of the human mind so as to make the design acceptable to most users, not only a few of them.

    2 product compatibility.
    Often the intended user of a new system is already a user of other systems, who has already invested a great deal of time and/or money in learning the existing systems. The across-product compatibility is important since it allows the user to adapt to a new system quickly.

    3 Task compatibility.
    The structure and flow of a system should match and support the task that is being carried out. The user doesn't need to navigate back and forth between applications in order to complete a task.

    4 Work flow compatibility.
    A system should be organized to facilitate transitions between tasks. For example, a windowed, multitasking system can support the nature of this type of user's work more effectively.

    5 Consistency.
    Consistency refers to similarities within a product, rather than across products. It allows people to reason by analogy and predict how to do things they have never done before.

    6 Familiarity.
    Concepts, terminology, and spatial arrangements that the user is already familiar with can be incorporated into the interface.

    7 Simplicity.
    Don't try to provide all the functionality that any user could possibly ever want or need. Instead, make the interface relatively simple.

    8 Direct manipulation.
    A direct manipulation interface is one in which users directly perform actions on visible objects. This is in contrast to interfaces in which users specify actions, parameters, and objects indirectly through language.

    9 Control.
    User prefer to feel a sense of mastery and control over any tool at their disposal, and the computer is no exception. The designer should be sensitive to this and present a tool-like interface.

    10 WYSIWYG.
    Try to make what you see on the screen is what you get on printed output or stored files.

    11 Flexibility.
    Allow more user control and accommodates variations in user skill and preferences.

    12 Responsiveness.
    Give users feedback as soon as possible and let users be aware of the progress.

    13 Invisible technology.
    Hide the technology from users. Only present the functionality that users need to know.

    14 Robustness.
    A system should tolerate common and unavoidable human error. System crashes should be minimized, and simple to understand and execute recovery measures should be presented. A robust system encourages users to learn new features and thus increases productivity.

    15 Protection.
    People make errors, especially when they are working quickly or under pressure. Users should be protected against the catastrophic results of common human error. "Undo" or other recovery measures should also be provided.

    16 Ease of learning and ease of use.
    System should be both easy to learn for the novice and efficient and easy to use for the expert.


    IBM's "Design Principles for Tomorrow"

    IBM has presented a collection of design principles, which is derived from traditional design principles with extensions to address evolving aspects of future interfaces, based on their design experience in creating an object-oriented user interface (OOUI).

    1 Simplicity: Don't compromise usability for function

    Keep the interface simple and straightforward. Users don't benefit from function that is not easily accessible and usable. A poorly organized interface cluttered with many advanced functions distracts users from accomplishing their everyday tasks. Basic functions should be immediately apparent, while advanced functions may initially be less obvious to new users. Function should be included only if required based on task analysis. Therefore, keep the number of different objects and actions to a minimum while allowing users to accomplish their tasks.

    2 Support: User is in control with proactive assistance

    Allow users to be in control of the interface. Don't limit users by artificially restricting their choices to your notion of the "correct" sequence of steps needed to accomplish a task. For instance, provide users with alternative courses of action appropriate to their way of thinking.

    Allow users to establish and maintain a working context, or frame of reference, from within which they can perform actions. The current state of the system, and possible user actions, should be obvious. Users should be able to leave their systems for a moment or a day and find the system in the same familiar state when they return. This contextual framework contributes to the feeling of stability.

    3 Familiarity: Build on users' prior knowledge

    Allow users to build on prior knowledge, especially knowledge they have gained from experience in the real world. A small amount of knowledge, used consistently throughout an interface, can empower the user to accomplish a large number of tasks. Concepts and techniques can be learned once and then applied in a variety of situations. Users should not have to learn new things to perform familiar tasks. The use of concepts and techniques that users already understand from their real world experiences allows them to get started quickly and make progress immediately.

    Avoid the tendency to employ consistency without understanding your users, their tasks, and shared experiences. When choosing a dimension within which to be consistent, seek to understand what the user expects and be consistent with those expectations. Providing a familiar experience is the ultimate use of consistency in which a truly intuitive interface will result.

    4 Obviousness: Make objects and their controls visible and intuitive

    Where practical, use real-world representations in the interface. Real-world representations and natural interactions (direct action) give the interface a familiar look and feel and can make it more intuitive to learn and use. Icons and windows were early attempts to draw on user experiences outside the computing domain. As we move toward real-world representations, reliance on such computer artifacts should decline.

    The controls of the system should be clearly visible and their functions identifiable. Visual representations provide cues and reminders that help users understand roles, remember relationships, and recognize what the computer is doing. For example, the numbered buttons on the telephone object indicate that they can be used to dial a telephone number.

    5 Encouragement: Make actions predictable and reversible

    User actions should cause the results the user expects. In order to meet those expectations, the designer must understand the users' tasks, goals, and mental model. Use terms and images that match users' task experience, and that help users understand the objects and their roles and relationships in accomplishing tasks.

    Users should feel confident in exploring, knowing they can try an action, view the result, and undo the action if the result is unacceptable. Users feel more comfortable with interfaces in which their actions do not cause irreversible consequences.

    6 Satisfaction: Create a feeling of progress and achievement

    Allow the user to make uninterrupted progress and create a sense of accomplishment. Reflect the results of actions immediately; any delay intrudes on users' tasks and erodes confidence in the system. This allows users to assess whether the results were what was expected and allows them to take alternative action immediately. For example, when a user chooses a new font, the font of all applicable text, or of sample text, should change immediately. The user can then decide if the effect is what was desired, and if not, can change it before switching attention to something else.

    7 Accessibility: Make all objects accessible at all times

    Users should be able to use all of their objects in any sequence and at any time. Avoid the use of modes, those states of the interface in which normally available actions are no longer available, or in which an action causes different results than it normally does.

    8 Safety: Keep the user out of trouble

    Users should be protected from making errors. The burden of keeping the user out of trouble is on the designer. The interface should provide visual cues, reminders, lists of choices, and other aids, either automatically or on request, especially since humans are much better at recognition than recall. Contextual and hover help, as well as agents, can provide supplemental assistance. Simply stated, eliminate the opportunity for user error and confusion.

    9 Versatility: Support alternate interaction techniques

    Allow users to choose the method of interaction that is most appropriate to their situation. Interfaces that are flexible in this regard are able to accommodate a wide range of user skills, interactions, and usage environments.

    Each interaction device is optimized for certain uses or users and may be more convenient in different situations. For example, a microphone used with voice-recognition software can be helpful for fast entry of text or in a hands-free environment. Pen input is helpful for people who sketch and mouse input works well for precise indication in selection. Alternate output formats such as computer-generated voice output for foreign language instruction are useful. No single method is best for every situation.

    10 Personalization: Allow users to customize

    The interface should be tailorable to individual users' needs and desires. No two users are exactly alike. Users have varying backgrounds, interests, motivations, and levels of experience. Customization can help make an interface feel comfortable and familiar.

    Personalizing a computer interface can also lead to higher productivity and user satisfaction. For example, allowing users to change default values can save them time and hassle when accessing frequently used functions.

    11 Affinity: Bring objects to life through good visual design

    The goal of visual design in the user interface is to surface to the user in a cohesive manner all aspects of the design principles. Visual design should support the user model and communicate the function of that model without ambiguities. Visual design should not be the "icing on the cake" but an integral part of the design process. The final result should be an intuitive and familiar representation that is second nature to users.


    Principles Presented in Class

    Here are the design principles presented in class. They are from several sources, and comprise a complete set of guidelines.

    10 Use simple and natural dialog in user's language
    Match user's task in natural way. Avoid jargon, and techno-speak. Present exactly information users need, not too little or too much.

    9 Strive for consistency
    Sequences, actions, commands, layouts and terminology should be consistent so as to make the interface more predictable.

    8 Provide informative feedback
    Continuously inform user what is happening. It is most important to provide feedback on substantive and infrequent actions.

    7 Minimize user's memory load
    Human mind can recognize better than recall. Provide enough information so that the user can take action without recalling a lot.

    6 Permit easy reversal of actions (undo)
    To reduce anxiety and encourage experiments.

    5 Provide clearly marked exits
    So that the user won't be trapped on any level of the applications.

    4 Provide shortcuts
    Enable frequent users to perform often used operations quickly.

    3 Support internal locus of control
    Put user in charge, not computer.

    2 Handle errors smoothly and positively
    Make the system robust and provide easy to use recovery measures.

    1 Provide useful help and document
    Users should be able to get sufficient help information when they get confused.


    Conclusion

    Design principles come from practical experience along with psychological theory. They are high level guidelines based on years of designer practice. The core of these principles is "always keep users in mind". To design a successful interface, the human factor must be given first priority.

    Since the principles are derived from practice, they need to be applied carefully. Often principles have to be traded-off against other constraints or each other and to be refined or extended according to a particular context. In order to effectively apply these design principles, users's tasks and requirements should be fully understood.


    Related Links

    IBM HCI Works:
    A very informative and interesting place, where you can take a look at the exhibits of outstanding interface design from IBM, the principles and guidelines behind them, and lots of other HCI resources.

    Web Design Principles:
    On this site, there are some useful design principles which are particularly contributed to WWW interface design.

    HCI Resources: Guidelines, styleguides, standards

    Human factors design principles


    Reference

    [1] Jenny Preece, et al., Human-Computer Interaction, Reading, MA: Addison-Wesley Publishing Company, 1994

    [2] Ben Shneiderman, Designing the User Interface - Strategies for Effitive Human-Computer Interaction, second edition, Reading, MA: Addison-Wesley Publishing Company, 1992

    [3] William M. Newman and Michael G. Lamming, Interactive System Design, Reading, MA: Addison-Wesley Publishing Company, 1995

    [4] Deborah J. Mayhew, Principles and Guidelines in Software User Interface Design, Englewood Cliffs, NJ: Prentice Hall, 1992


    Compiled by Mark D. Huang, February 23, 1997.