Heuristics are "rules of thumb" or methods to find usability flaws in design by judging them relative to known principles. This 2 part blog will go through the 10 principles devised by human-computer interaction researcher Jakob Nielsen.

He is best known for the "discount usability engineering" movement for efficiency improvements of user interfaces for websites and has invented several methods, including the heuristic evaluation.

Visibility of System Status

The system should communicate to the user what is going on.

Proper feedback given within a reasonable time prevents the frustration of use. The system should show a meaningful, clear reaction that helps users achieve their goals without friction. Moreover, open and continuous communication between the device and the user makes the system more reliable and predictable.

Connection status, time, running tasks, alarm and battery status displayed at the top of the iOS interface

For example, in a mobile interface, information such as battery life, Network or WiFi connection status, time, etc., are essential to communicate to the user about the phone's status. Similarly, in video games, the omnipresence of health/life bar, time remaining, etc., are crucial information to the gamer/user.

Screenshot taken from an example mobile game.
We should also consider the system to be available or noticeable to people with disabilities such as colour blindness, hearing disability, etc.

Match between the System and the Real World

Speak the user's language – everybody should be able to understand.

Decision making is easier when there is little need to spend time familiarising themselves with new and unique terminologies. Do not assume your understanding of words or concepts will match your users.

The first mobile interface designs were made in such a way to communicate real-world use of the application in the software, to make it approachable to the world without a smartphone back then.

The skeuomorphic design style was used in the first Computer Operating systems and icons to match the digital system with the real world. This design contained realistic images of what people are familiar with and used to. Today the design style has shifted more to a flat design as the understanding of the digital media is widespread globally.

Example: Evolution of Firefox logo. Mozilla.org
Tips: Select and use terminologies and concepts that the users can understand the meaning of without having to go lookup.

User Control and Freedom

Make actions reversible – be forgiving.


Your software should have an emergency exit for users after making a mistake. Back, Forward, Undo, and Cancel buttons on web browsers are prime examples of which actions are useful when you end up someplace unintended. This avoids the user getting stuck after a small mistake.

Consistency and Standards

User interface design should be predictable and learnable

Users prefer your product to work the same way as other products they have already used or experienced.

Trends are meant to be followed. Years of design iterations have resulted in concrete standards, just like we see on websites, apps, and video games. The use of terminologies, symbols, colours or actions should not be different from most of the existing designs.

The QWERTY keyboard layout is by far the most widespread layout used by all tech product companies to avoid major confusion.
The introduction of new functions and information adds cognitive load to users. Use it when it's absolutely necessary.

Error Prevention

Design a system that prevents a problem from occurring – eliminate error-prone conditions or present users with a confirmation option before committing to the action.

Clearly Defined CTA(Call to Action) buttons can lower the chances of Errors.

Preventing serious errors through proper designs can be done using clear instructions and indicators: Contrasting colours, sizes, sound or even physical barriers. Due to the speed-accuracy trade-off, fast movements and small targets result in greater error rates.

Provide users with helpful constraints and good defaults.
This article will be continued in Part 2 of Usability Heuristics.