Thoughts on technology and innovation
Cesar Parra, Software Engineer
As many of us know, making user interfaces decisions can be a hard task, something that is especially true for engineers. What seems intuitive for us not always is for someone else, especially someone who is coming into a system for the first time or is not as technically inclined. Having hard data from real user tests is oftentimes the best practice but is not always plausible, especially for smaller, “less risky” changes to the interface. This is where heuristic evaluations come in.
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
The user should know what is going on with the system at any given time.
Visibility of Function
The user should know what the system is capable of doing at any given time.
The user should know what was the effect of their actions.
The user should know the relationship between the elements presented on the screen.
Speaks the user’s language
Use words, phrases and concepts familiar to the user, rather than system oriented terms.
User control and freedom
The user should feel on control of the system and able to play around with the functionality with the ability to go recuperate from mistakes.
The system presentation should be consistent, similar actions should look and act alike.
All users have expectations when they come into the system based on their previous experience and knowledge, reduce the learning curve by leveraging that knowledge by adhering to platform standards.
Error messages should only be used as a fallback, even better is having no error occur at all, use constraints to cleverly limit the possibility of mistakes.
Recognition rather than recall
Minimize the user’s memory load by making objects, actions, and options visible rather than having the user remember what should happen.
Aesthetic and minimalist design
The UI should not contain information which is irrelevant or rarely needed. Every extra unit of information competes with the relevant units of information and diminishes their relative visibility.
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.
Flexibility and efficiency of use and learnability
Users should be able to become experts on the system.
Help and documentation
Uses should be able to look for documentation to fully understand how the system works.
To finish I’ll add that performing a heuristic evaluation can be a task in and of itself but it doesn’t have to be. They can (and should) be had in mind on any task that affects the user experience by the individual doing the task.