The design of user interfaces draws heavily the experience of the designer and on anecdotal experience presented in hundreds of technical papers and dozens of books. Many sources in the literature [see SEPA, 5/e for references] present a set of HCI design guidelines that will result in a "friendly," efficient interface. In this section, a some of the more important HCI design guidelines are presented.
Three categories of HCI design guidelines are suggested: general interaction, information display, and data entry.
Guidelines for general interaction often cross the boundary into information display, data entry and overall system control. They are, therefore, all-encompassing and are ignored at great risk. The following guidelines focus on general interaction:
Be consistent. Use a consistent format for menu selection, command input, data display and the myriad other functions that occur in a HCI.
Offer meaningful feedback. Provide the user with visual and auditory feedback to ensure that two way communication (between user and interface) is established.
Ask for verification of any non-trivial destructive action. If a user requests the deletion of a file, indicates that substantial information is to be overwritten, or asks for the termination of a program, an "Are you sure ... message should appear.
Permit easy reversal of most actions. UNDO or REVERSE functions have saved tens of thousands of end users from millions of hours of frustration. Reversal should be available in every interactive application.
Reduce the amount of information that must be memorized in between actions. The user should not be expected to remember a list of numbers or names so that he or she can re-use them in a subsequent function. Memory load should be minimized.
Seek efficiency in dialogue, motion and thought. Keystrokes should be minimized, the distance a mouse must travel between picks should be considered in designing screen layout, the user should rarely encounter a situation where he or she asks, "Now what does this mean "
Forgive mistakes. The system should protect itself from errors that might cause it to fail.
Categorize activities by function and organize screen geography accordingly. One of the key benefits of the pull down menu is the ability to organize commands by type. In essence, the designer should strive for "cohesive" placement of commands and actions.
Provide help facilities that are context sensitive. See SEPA, 5/e, Chapter 15.
Use simple action verbs or short verb phrases to name commands. A lengthy command name is more difficult to recognize and recall. It may also take up unnecessary space in menu lists.
If information presented by the HCI is incomplete, ambiguous or unintelligible, the application will fail to satisfy the needs of a user. Information is "displayed" in many different ways: with text, pictures and sound; by placement, motion and size; using color, resolution, and even omission. The following guidelines focus on information display:
Display only that information that is relevant to the current context. The user should not have to wade through extraneous data, menus and graphics to obtain information relevant to a specific system function.
Don't bury the user with data, use a presentation format that enables rapid assimilation of information. Graphs or charts should replace voluminous tables.
Use consistent labels, standard abbreviations and predictable colors. The meaning of a display should be obvious without reference to some outside source of information.
Allow the user to maintain visual context. If computer graphics displays are scaled up and down, the original image should be displayed constantly (in reduced form at the corner of the display) so that the user understands the relative location of the portion of the image that is currently being viewed.
Produce meaningful error messages. See SEPA, 5/e, Chapter 15.
Use upper and lower case, indentation and text grouping to aid in understanding. Much of the information imparted by a HCI is textual, yet, the layout and form of the text has a significant impact on the ease with which information is assimilated by the user.
Use windows (if available) to compartmentalize different types of information. Windows enable the user to "keep" many different types of information within easy reach.
Use analog displays to represent information that is more easily assimilated with this form of representation. For example, a display of holding tank pressure in an oil refinery would have little impact if a numeric representation were used. However, a thermometer-like display were used, vertical motion and color changes could be used to indicate dangerous pressure conditions. This would provide the user with both absolute and relative information.
Consider the available geography of the display screen and use it efficiently.When multiple windows are to be used, space should be available to show at least some portion of each. In addition, screen size (a system engineering issues should be selected to accommodate the type of application that is to be implemented.
Much of the user's time is spent picking commands, typing data and otherwise providing system input. In many applications, the keyboard remains the primary input medium, but the mouse, digitizer and even voice recognition systems are rapidly becoming effective alternatives. The following guidelines focus on data input:
Minimize the number of input actions required of the user. Above reduce the amount of typing that is required. This can be accomplished by using the mouse to select from pre-defined sets of input; using a "sliding scale" to specify input data across a range of values; using "macros" that enable a single keystroke to be transformed into a more complex collection of input data.
Maintain consistency between information display and data input. The visual characteristics of the display (e.g., text size, color, placement) should be carried over to the input domain.
Allow the user to customize input. An expert user might decide to create custom commands or dispense with some types of warning messages and action verification. The HCI should allow this.
Interaction should be flexible but also tuned to the user's preferred mode of input. The user model will assist in determining which mode of input is preferred. A clerical worker might be very happy with keyboard input, while a manager might be more comfortable using a point and pick device such as a mouse.
Deactivate commands that are inappropriate in the context of current actions. This protects the user from attempting some action that could result in an error.
Let the user control the interactive flow. The user should be able to jump unnecessary actions, change the order of required actions (when possible in the context of an application), and recover from error conditions without exiting from the program.
Provide help to assist with all input actions. See SEPA, 5/e, Chapter 15.
Eliminate "mickey mouse" input. Do not require the user to specify units for engineering input (unless there may be ambiguity). Do not require the user to type .00 for whole number dollar amounts, provide default values whenever possible, never require the user to enter information that can be acquired automatically or computed within the program.