The 10 Heuristics of Nielsen

As technology becomes more present in people’s everyday lives, the number of new digital products created is rapidly increasing. Software companies are competing to release their best solutions to users, who, in turn, are increasingly selective about the products they choose to use. In an ideal scenario, design and development work side by side during the process of creating software. However, at the end of the day, many teams decide to minimize efforts and costs, which leads to poor attention to visual interface or no attention at all.

Fortunately, Jakob Nielsen, a well-known expert in the field of usability engineering, has developed 10 heuristics that, when applied to user interface design, can greatly benefit usability. These heuristics include clarity about the actions that could be performed and their results, maximizing user control and independence and preventing errors, as well as guaranteeing that the user can perform every task in a simple and efficient way.

What are the 10 Heuristics?

In 1990, Jakob Nielsen and Rolf Molich developed 10 general principles for interaction design. These principles are called “heuristics” because they are broad rules of thumb and not specific usability guidelines. We, as developers and designers, can rely on these 10 heuristics to ensure that we are building a solution that brings an overall good experience and minimizes common mistakes when creating a user interface.

In this article, I will present each of the 10 items and provide examples of interfaces where these principles have been successfully applied.

#1: Visibility of system status

This heuristic states that the interface should clearly communicate to the user what the current status of the system is, what actions can be taken, and what feedback will be provided for these actions.

A good example of this is the YouTube interface for playlists. It is clear for the user which video is currently playing, what has played previously, and what will play next.

Source: Youtube

Another example where we can see this heuristic in action is on Windows Explorer. The path bar gives the user information about their current position in the system.


#2: Match between system and the real world

This heuristic emphasizes the importance of designing an interface that speaks the users’ language, uses familiar terms and concepts, and follows real-world conventions, making information appear in a natural and logical order.

In my personal opinion, this can be challenging to achieve, as it requires the development team to be familiar with the users’ perspective and understand which conventions, terms, and behaviors are natural for them.

A good example of this heuristic in action is a compass app. The UI elements in the app are similar to a compass in the real world and make it easy for users to understand the app’s use and function.


#3: User control and freedom

Also known as the rule of the “emergency exit”, this heuristic emphasizes the importance of providing ‘undo’ and ‘cancel’ actions so the user can recover from a step taken by mistake.

When it’s easy for people to back out of a process or undo an action, it fosters a sense of freedom and confidence. Exits allow users to remain in control of the system and avoid getting stuck and feeling frustrated. – NIELSEN, Jakob. 2020

Some tips you can follow to apply this heuristic in your interface include supporting Undo and Redo, showing a clear way to exit the current interaction, and making sure the exit is clearly labeled and discoverable.

#4: Consistency and standards

This heuristic emphasizes the importance of keeping consistency between all the interactions and screens, allowing users to interact without having to think too much or question the information they are seeing. Failure to keep consistency might result in a cognitive load, which can be exhausting for the user and lead to a poor user experience.

A good example of this heuristic in action is software built under good Design Systems, such as Google Material

Source: Figma’s Material Design 3 Kit

#5: Error Prevention

To prevent users from encountering errors, it is important to prioritize the main task and eliminate any potential error-prone conditions. By doing so, you can reduce the need for good error messages in the first place.

According to Nielsen, there are two types of errors: slips and mistakes. Slips are unconscious errors caused by inattention, while mistakes are conscious errors resulting from a mismatch between the user’s mental model and the design.

One effective way to prevent errors is by using confirmation boxes, which can help users avoid unintended actions or deletions.


#6: Recognition rather than recall

Users are more likely to recognize patterns than to recall new information. To make your interface more user-friendly, provide cues that help users recognize familiar actions and information. This might sound hard to understand, so let me exemplify how it works:

The big difference between Recognition and Recall, are the number of cues given by the context, that helps users to remember the necessary information. In other words, It’s easier for most people to recognize the capitals of countries, instead of having to remember them. People are more likely to correctly answer the question Is Lisbon the capital of Portugal? rather than What’s the capital of Portugal?.

Similarly, the icon used for the “save” action in most word processing software has become a recognized symbol.

Source: Microsoft Word

#7: Flexibility and efficiency of use

To make your interface accessible to both inexperienced and advanced users, provide a level of flexibility that allows users to customize their experience. This can include personalization options and shortcuts for experienced users.

One example of a flexible interface is the “pick and paste” feature on modern iPhone devices, which allows users to quickly and easily copy and paste content using 3 fingers touch on the screen.


#8: Aesthetic and minimalist design

Aesthetic and minimalist design is about keeping your interface focused on the essentials, without overwhelming users with too much information. Use visual elements that support the user’s primary goals and provide primary and secondary information clearly.

Google is a great example of an interface that uses minimalist design to great effect.

Source: Google (I always wanted to do this)

#9: Help users recognize, diagnose, and recover from errors

When errors do occur, it is important to present error messages in a clear and simple way. Use bold and red text to make the error message stand out, and avoid technical terms that may be difficult for users to understand.

Offer an actionable solution to the problem, such as highlighting a missing or incorrect field on a form, to help users diagnose and recover from errors.


#10: Help and documentation

Even the most intuitive interfaces can benefit from help and documentation. Provide easy access to concise tutorials or guides that list concrete steps for users to follow.

Adobe’s Learn and Support page is a great example of an accessible and helpful documentation resource.


In conclusion, while applying the 10 heuristics can help ensure a good user experience, they should not be seen as a replacement for the important research and design process that goes into creating a successful interface. Ultimately, the success of an interface should be measured not just by positive feedback, but also by its ability to seamlessly meet the user’s needs. Remember, even if ease of use may be invisible, its absence will surely be felt by users. So, always strive for the best possible user experience and never stop refining and improving your designs.



Paulo Sergio Mendonça Avatar



Leave a Reply

%d bloggers like this: