Heuristics are defined as “any approach to problem solving, learning, or discovery that employs a practical methodology not guaranteed to be optimal or perfect, but sufficient for the immediate goals” [Heuristic, Wikipedia]. As far a user experience goes, heuristics are rules of thumb that can guide usability. There are several heuristics to consider but the most popular were defined by Jakob Nielsen of the Nielsen Norman Group. For our purposes I’ve compiled a list of heuristics tailored to the kind of products we build, by mixing Nielsen’s heuristics, usability best practices and personal experience, listed below.
Remember that which rules of thumb to abide to depend on the task at hand so they can be mixed and matched depending on which ones apply.
Visibility of System State
- If the user walks away from the system and then returned, would they know the state of the system?
- If they are in the middle of a several step process, left the system and then returned, would they know where they left off?
Visibility of Function
- Can the user tell what to do by looking at the user interface?
- Does the user has to hunt around for functions?
- Is the feedback immediate and visible?
- Is the feedback consistent with the user’s actions?
- Can the user map controls to their respective functions?
- Are the icons appropriate?
- Are the controls positioned such that you can guess their function correctly simply via their position?
Also see: Gestalt Psychology
Speaks the user’s language
- Can someone who is NOT A DEVELOPER understand the text presented?
User control and freedom
- Clear navigation
- Undo and redo
- Where am I, where can I go
- Are the same terms or phrases used throughout the system to refer to the same things?
- Are the same or similar icons used throughout the system?
- Does the product use conventions common to other applications of a similar domain?
- Open text fields vs. specific field types for user input.
- Use of constraints.
- Different look for primary vs. secondary actions.
- For instance the Submit (primary action) and the Cancel button (secondary action) should look different (and probably be far away from each other)
Recognition rather than recall
- The user should not have to remember information from one part of a multistep process to another
- Icons should have the respective text next to them, and if they don’t they should have a tooltip that reveals their purpose.
Aesthetic and minimalist design
Help users recognize, diagnose, and recover from errors.
Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.
- Don’t let developers write messaging.
Flexibility and efficiency of use and learnability
- Keyboard shortcuts for experienced users for frequent actions.
Help and documentation
- Pretty much document everything.