When designing with usability in mind, it’s good to have a set of rules. It’s even better to have a set of rules that are based on thousands of hours of research and are considered an industry standard. In the world of user experience, one set of rules stands above the rest: Jakob Nielsen’s 10 Usability Heuristics for User Interface Design.
Although the list is primarily designed with digital user interfaces in mind, it stands as good guidelines for any project, especially as more and more everyday gadgets such as watches, phones, or even refrigerators and car dashboards, become increasingly digital with all interaction being done through a screen of some kind.
Nielsen’s original article is available here, but the descriptions of the guidelines are a little sparse, so I’ve decided to expand on Nielsen’s descriptions to give a little more context to people who may not be as familiar with the principles of usability. The list is invaluable, but I’ve found three that are particularly helpful in the development of any user experience.
Visibility of System Status
Everyone has seen a breakdown in this heuristic countless times… just remember the last time your computer displayed that spinning rainbow circle next to your mouse cursor for minutes on end, with no information on why it’s doing it or when it will stop.
Making a system’s status visible through things such as error messages or progress bars is essential, as it gives a user the knowledge that the system is still working and has not stalled or frozen. If a user is properly informed that a process is going to take a while, with an accompanying progress bar slowly creeping from 1%, to 2%, to 3% over agonizing minutes, while not ideal, it at least gives the user some context and information about the arcane inner workings of their computer, leading to a more informed, and hopefully less frustrated user.
Match Between the System and the Real World
Any user interface should work in a way that most people should be familiar with. Too many times, designers have decided that reinventing the wheel when designing an interface is the best option, but this has been proven time and again that this approach often leads to confusion and frustration.
Instead, user interfaces should be designed with interactions and terminology that make sense to the common user. Highlighted items should be obviously clickable, menus should be organized in logical orders…and, in a lot of ways, things should work the same way they work in other interfaces, or even real-world objects.
Now, there are dangers of this heuristic going too far or being implemented too literally, which could lead to a product being developed in a way that mimics a real-world object’s design too closely, inefficiencies and all, which is called skeuomorphism (for examples of this, try to remember what you iPhone’s interface looked like before iOS 8, back to the faux-stitching and leather of your Notes app or the ugly torn page border of your Calendar app).
User Control and Freedom
Despite your best intentions as a designer, it is inevitable that users are going to do something you either didn’t want them to do or didn’t expect them to do. They’re going to go into menus that don’t lead to what they’re looking for, they’re going to open dialogue boxes that are completely irrelevant to their task.
In bad user interfaces, users are punished for these kinds of actions, lead into a series of required prompts, or given sternly worded errors telling them in no uncertain terms that they’ve done a VERY BAD THING.
Instead of scolding its users, a good user interface gives users the ability to leave a prompt or dialogue once they’re realized the error of their ways. Nielsen calls these “emergency exits”, and I can’t think of a more apt metaphor for them. By allowing your users to jump out of an interaction, they’ll be less likely to do actually destructive things, like fill in false data to just get through a prompt, or even worse, just start wildly clicking to see what happens (spoiler alert: it’s usually a bad thing).