In reaching our current idea of how your user interface will look, most of your decisions are based on what is easiest for the user. Indeed, that should be the cardinal rule. Human time has now become so much more valuable than computer time that it’s worth a lot of effort and coding to make the user as productive as possible.
It isn’t always obvious how to do this to the best advantage, and what is best for one user may not be best for another. This applies especially to occasional users of an application. In fact, the style of conversation between users and computers has changed significantly as people have learned more about the human factors of online systems.
Though there are no hard and fast rules, and though there can be many good designs for the user interface, here are five guidelines that we can safely propose:
Make screens easy to understand:
Keep to the rules used in forms design: try to give the screen layout an uncluttered appearance and, to the extent possible, a columnar structure, so that the reader’s eye moves easily from one item to the next and doesn’t have to jump long distances.
Put a title on the screen, so that users know where they are in the current transaction.
Be consistent from screen to screen. If you put the title on the top center of one screen, put it there on all the screens. If you put the messages at the bottom of one screen, put them there on all the screens.
If the user is reading from a form for input to a screen, make the screen look as much as possible like the form. Put the fields in the same order, and use the same placement as much as possible.
Likewise, if a screen is used to display information that the user is accustomed to seeing printed on a form, make the screen resemble the form as much as possible.
Reduce what the user must remember:
If there are more than a few fields to be filled in; use a formatted screen with labels and instructions.
Where possible, put instructions on the screen to show what the user can do next.
Use consistent procedures, both within and across application programs. For example, if the CLEAR key is used to cancel in one transaction, use it that way in all transactions.
Protect users from themselves:
If a user is about to do something that’s hard to undo, such as a file deletion, get the user to confirm that it’s the right action.
Save the user’s time and patience:
Minimize the number of characters that have to be keyed.
Make the user change screens as little as possible.
Make it as easy as possible to correct errors. There are many ways to do this. In our application, for example, we do the following:
Redisplay the user’s input in the same screen in which it was entered.
Diagnose all the errors at once.
Highlight fields that have errors.
If the user misses any required fields, fill with asterisks and highlight.
Place the cursor under the start of the first field in error.
Display an explanatory message if the error may not be obvious.
Minimize the number of times that the users have to skip over fields.
Reassure users:
Give a positive confirmation that a requested action has been done successfully.
When you know a particular response time is likely to be longer than usual (because of the operation being performed) consider sending an intermediate display.