It is the task of human engineering to keep the user happy during sessions with the system. This means that whenever the user does something, there needs to be a definite and friendly response. Messages should always be positive in nature and must acknowledge success or failure, and progress on long tasks should be encouraging. Requests for input need identifiable prompts so that the user is aware at all times of the activity of the system.
To provide the best feedback, consider where the user's eyes are directed and work in that area. When a command has been invoked from the keyboard, a message should be printed in the scrolling area to indicate success, failure, or progress. When a command has been invoked from the pointing device, the user's attention is on the display and feedback belongs there. When an unexpected condition occurs, the user's attention must be grabbed from wherever it is--for example, by beeping or by flashing the screen. Keep the number of beeps low, however, or else users will ignore them and eventually may disconnect the speaker.
When input is from the keyboard, feedback is textual and its nature depends on the result of the input. For a successful result, there should be a short message indicating any important state changes that have occurred. Failure messages should suggest alternatives to the erroneous input so that the desired task can be completed. Long operations should acknowledge that they have started and that they have completed. Very long tasks should print some indication of progress along the way. These progress messages may indicate what part of the task is being done and what percent of the effort is complete, or they may merely print a single character (such as an "X") so that the progression of these letters can be watched. Users quickly learn the nature of all feedback and interpret it correctly.
Input from the cursor should elicit feedback near the cursor. In some cases, the normal progression of display changes provides adequate feedback. For example, with pop-up menus, the menu disappears after selection is made, and with commands that change the display, completion of the change acknowledges the command. Thus implicit feedback is available because the system does what is requested in a graphical manner. Failure messages must be displayed near the cursor or else they must be treated as exceptional conditions that are indicated with a beep.
One of the best ways to indicate progress and completion graphically is to change the cursor shape. The NEWSWHOLE system [Tilbrook] changes the cursor from an X to the image of a Buddha to request patience on the part of the user. Hourglasses convey the same meaning and indicate that no new commands may be entered. Another method is to erase the cursor and then repaint it slowly as progress is made.
The cursor can also be used to indicate what kind of action is expected from the user. When the user is pointing to single objects, the cursor is an X; when he or she is drawing a sketch, the cursor is the shape of a pen; and when keyboard input is expected, the cursor changes to a typewriter icon to indicate that a different device should be used. When requesting specific input, it is far better to give a sensible prompt than simply to lock up all other devices and ignore their input.
Another feedback option that can be used to make menu selection responsive is to highlight the menu entries as the cursor passes over them. Displays with block-transfer capabilities can quickly invert the menu entry when the cursor enters. Another option is to draw the entries without enclosing boxes and then show a box around the current entry as the cursor passes over it.
Good feedback can keep users happy even in the worst conditions because it lets them know what to expect--and when to go get coffee. Poor feedback, however, will make system use difficult even when the machine response is adequate, because the users will never be sure of their next step. Never let the user wonder, "Now what?"
Previous | Table of Contents | Next | Static Free Software |