These Eight Golden Rules are a great set of heuristics to apply when designing or evaluating any User Interface (UI).  The list below includes our interpretations of them.


​1. Strive for consistency

  • Consistency can be within the various screens and dialogs of an application, across different applications created by the same company, or mean following industry standard conventions (like CTRL+C to copy).  Being consistent helps a user transfer learned skills from one application or screen to another.  This is perhaps the most frequently violated rule, owing much to the way various UI components get implemented by different developers.

2. Cater to universal usability

  • This means designing interfaces to be used by the widest range of reasonable possibly users.  At some point designing for absolutely everyone may not be possible, but allowing for over 80% of possible users is often achievable.  There are many factors to consider, including physical abilities and disabilities, cultural differences, technical experience of target users, and the limitations of human perception.

3. Offer informative feedback

  • Users like to know that actions they take cause a system to respond.  Every action should provide some kind of feedback, avoiding the familiar scenario of a user pressing a button over and over.  There are many ways to provide informative feedback, including progress bars, status messages, cursor changes and animations.

4. Design dialogs to yield closure

  • Users want to feel that a given task has clear steps and a well-defined outcome.  Dialog boxes, by their very nature, break up a workflow, so the user wants to know how to interact with them and dismiss them quickly.  A dialog box should appear for a specific purpose, have a set of logical steps for interaction, and provide a good indication as to the success or failure of the task associated with it.

5. Prevent errors

  • Programmers are quick to put up error dialogs to “correct” information ended by a user.  Software users, however, would be very happy to never encounter error dialogs.  A better practices is to make errors as impossible as possible:  only allow entry of legal values and validate input before hitting that “Next” button.  If error messages are absolutely necessary, make them constructive, provide assistance, and have them contain text that the end user will understand.

6. Permit easy reversal of actions

  • When users know they can’t get into too much trouble using a system, they are more likely to explore its capabilities.  Being able to easily reverse an action, starting with a robust Undo system, is a crucial safety net in modern software systems.  Avoid confirmation dialogs in favor of undo whenever possible.

7. Support internal locus of control

  • People like to have a feeling of control, and the extends to software.  A user wants to know how to use a system, and that their actions will always produce predictable and repeatable outcomes. Software that is “quirky” goes against this feeling of control.

8. Reduce short-term memory load

  • It is better to make systems that are easy to understand, intuitive to the target user, rather than requiring the user to have to remember arcane sequences of keystrokes or button presses to operate a system.  Recognition is better than recall.  The human brain can keep, on average, 7 plus or minus 2 chunks of information in working memory at once, so the system shouldn’t force a user to waste that memory space on day-to-day tasks.