Molich and Nielsen’s heuristics (1990)

The nine original heuristics are:
#1: Simple and Natural Dialogue
#2: Speak the User’s Language
#3: Minimize the User’s Memory Load
#4: Be Consistent
#5: Provide Feedback
#6: Provide Clearly Marked Exits
#7: Provide Shortcuts
#8: Provide Good Error Messages
#9: Error Prevention

These heuristics were first published in the article “Improving a human-computer dialogue” by Rolf Molich and Jakob Nielsen in Communications of the ACM, March 1990.


#1: Simple and Natural Dialogue

Dialogues should not contain irrelevant or rarely needed information. Every extraneous unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility. All
information should appear in a natural and logical order.

Examples:

  • Simplicity: The home page of a presidential candidate only shows a large picture of the candidate, the candidate‘s name, a “Donate”-button, a “Sign-up”-button, and a “Learn More”-link.
  • Natural dialogue: An online form presents questions in the same order as the paper form.
  • Natural dialogue: A compass app on a smartphone functions much like an actual compass does in real life


#2: Speak the User’s Language

The dialogue should be expressed clearly in words, phrases, and concepts familiar to the user rather than in system-oriented terms.

Examples:

  • Speak the users’s language: The return policy of the clothing retailer Landsend.com is the short, plain language statement “If you’re not satisfied with any item‚ simply return it to us at any time. … Refunds will be issued for the original purchase price when accompanied by proof of purchase from Lands’ End.”
  • Avoid codes: The message “This page does not exist. We apologize for our error. We would be grateful if you would report the problem to webmaster@website.com”
    is easier to understand than “Error 404”
  • Explain unavoidable technical terms: A car rental app explains technical terms when the user clicks on them. For example, CDW: “CDW – Collision Damage Waiver – exempts the renter from having to pay for any damages to the rental car”


#3: Minimize the User’s Memory Load

The user’s short-term memory is limited. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate. Complicated instructions should be simplified.

Examples:

  • Minimize memory load: In an address form, a drop-down list displays the names and codes of all 50 US states, so the user does not have to remember the codes and the correct spelling
  • Minimize memory load: A search engine helps users remember their previous searches by displaying past searches
  • Transfer information: A user applies online for a driver’s license. The application is successful. The user receives a confirmation number and is requested to pay a fee before the driver’s license can be issued. When the user enters the payment module, the confirmation number is transferred automatically from the application module so the user does not have to remember it or write it down.
  • Instructions for use: On a securities trading platform, a Help-button is prominently displayed in the upper right corner of all windows.


#4: Be Consistent

Users should not have to wonder whether different words, situations, or actions mean the same thing. A particular system action – when appropriate – should always be achievable by one particular user action.

Consistency also means coordination between subsystems and between major independent systems with common user populations.

Examples:

  • Consistency: On an airline website, the company logo always appears in the upper left corner; clicking the logo always takes the user to the home page.
  • Consistency: In an organisation, all systems consistently use the same phrases for login, for example “user name” (not user-id), and “password” (not access key). Even better is using the same login screen for all systems
  • Standards: All cars, irrespective of brand, have the same ordering of the gas, brake and clutch pedal
  • Platform conventions: A blood analyzer that runs on a PC under Windows follows the appropriate platform conventions


#5: Provide Feedback

The system should always keep the user informed about what is going on by providing him or her with appropriate feedback within reasonable time.

Examples:

  • Feedback: While downloading a movie, an app updates the message “87% of movie downloaded. Estimated completion time 09:28” every 10 seconds
  • Status: On this website, a breadcrumb trail constantly informs users where they are on the website, for example
    Home > Free advice > Heuristic evaluation > Nielsen’s heuristics (1994)
  • Confirmation: After a password is changed, an app confirms: “Password successfully changed”


#6: Provide Clearly Marked Exits

A system should never capture users in situations that have no visible escape. Users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue.

Examples:

  • Visible escape: An antivirus program that is scanning a hard disk drive for viruses can be stopped at any point of time by the user pressing a prominent stop-button.
  • Emergency exit: A user accidentally hits the Exit button. Before exiting, the app offers the choices “Save and exit”, “Exit without saving”, and “Cancel”. The “Cancel” button is an emergency exit.


#7: Provide Shortcuts

The features that make a system easy to learn – such as verbose dialogues and few entry fields on each display – are often cumbersome to the experienced user.

Clever shortcuts – unseen by the novice user – may often be included in a system such that the system caters to both inexperienced and experienced users.

Examples:

  • Shortcut: The standard shortcuts Copy (Control+C), Cut (Control+X), Paste (Control+V), and Save (Control+S) are supported by most Windows systems. They are also available by clicking on menus.
  • Shortcut: In a word processing system, inexperienced users can select functions by clicking on menus while experienced users can enter Alt-sequences, for example Alt+H+K+C, to quickly accomplish a function that would require 3 menu selections.
  • Shortcut: On an airline website, inexperienced users re-enter the URL or press the Back-button multiple times to return to the home page; experienced click the company logo in the upper left corner to achieve the same effect.


#8: Provide Good Error Messages

Good error messages are defensive, precise, and constructive. Defensive error messages blame the problem on system deficiencies and never criticize the user. Precise error messages provide the user with exact information about the cause of the problem. Constructive error messages provide meaningful suggestions to the user about what to do next.

Examples:

  • Defensive: “For security reasons, a password must consist of at least 16 characters. The password you entered has 14 characters”
    Not defensive: “Error! Password is too short”
  • Precise: “The pick-up date (16-Dec-2020) must not be later than the return date (13-Dec-2020)”
    Not precise: “Something went wrong”
  • Constructive: “File names must start with a letter”
    Not constructive: “Error in file name”


#9: Error Prevention

Even better than good error messages is a careful design that prevents a problem from occurring in the first place.

Examples:

  • Prevent well-known problems: A car rental website does not allow the user to enter a pick-up time where the rental office is closed; it provides an appropriate explanation why the pick-up time is not available. The website provides a warning if the user selects a return time when the rental office is closed, provided that the rental office allows after-hours return of rented cars.
  • Eliminate error-prone conditions: On a flight booking website, users enter dates by clicking on a graphic calendar rather than entering the date using the keyboard
  • Present confirmation option: A file management system asks the user for confirmation before it irreversibly deletes a file
  • Safe default values: In a message asking the user to confirm the deletion of a file, the default option is “Do not delete the file”.