The Usability Principles

cover image of the article

Visibility of System Status

“Our Designs should keep users informed about what is going on, through appropriate, timely feedback.”

Humans love to be in control of things because it is the only way to feel safe. The feeling of control can be evoked by providing information about the system status and feedback after each interaction.

When users interact with our apps, there should always be immediate feedback about the interaction.

Through the use of signs, icons and indicators, the application communicates its status and helps the user make better and more informed decisions. This helps the user to understand what is going on and thus save them from further unnecessary interactions.

The Match between The System and the Real World

“The design should speak the users language. Use words, phrases, and concepts familiar to the user, rather than internal jargon.”

People approach any new application with a mental model in mind. In other words, people assume how the application might work based on their experience with other similar applications. By using a language they are familiar with, we can help users overcome the initial awkwardness.

In addition, language and real-world concepts help users easily understand our applications. A few examples, we use "bookmarks" to save our favorite websites, we use the "recycle bin" to delete old files, or the "shopping cart" when shopping online.

User Control and Freedom

“Users often perform actions by mistake. They need a clearly marked "emergency exit" to leave the unwanted action.”

People are often in a hurry to deal with when using an application, and often they are not even fully concentrated. This leads to misclicks or other accidents that can be very frustrating. Our applications need to have a clearly marked "emergency exit" that gives users an easy way back if they find themselves in an undesirable state.

The goals is to design applications that do not abandon the user when they make a mistake, but give them the opportunity to fix it.

Consistency and Standards

“Users should not have to wonder whether different words, situations, or actions mean the same thing.”

Using self-defined standards, best practices and common patterns, we ensure that our applications are consistent and predictable for users to use. An understandable app should not confuse users by using different words, images or actions for the same concepts.

Consistency is one of the most important factors for usability. Therefore, we develop and use a consistent design system that is used in all our applications and concepts.

Error Prevention

“Good error messages are important, but the best designs carefully prevent problems from occurring in the first place.”

Based on Don Norman’s book The Design of Everyday Things, there are two kinds of errors created by interaction with a user interface: slips and mistakes.

Slips happen when the user is inclined to perform one action but performs another due to lack of attention. The strategy to avoid slips is to minimize the likelihood of a slip by guiding the user only through safe areas.

Errors are often caused by an incorrect mental model of the user about how the application works. In this case, the user misunderstands the communication and deliberately performs an action that leads to a different result than intended. This type of error is often not easy to fix and should be uncovered during the testing phase at the latest. We therefore use clear communication and a consistent design system to avoid errors.

Recognition Rather Than Recall

“Minimize the users memory load by making elements, actions, and options visible. Avoid making users remember information.”

A good user interface does not require the user to recall frequently. Instead, it provides all the options and information needed to make a decision. We always give users clues so they can remember the information. On the other hand, a well-designed information architecture also helps in the search for information.

There are two types of memory recall: recognition and recall. Recognition happens when We easily recognize a person or object that is familiar to Us. This is a very superficial form of retrieval from memory and requires no work. Recall occurs when We need to retrieve infrequently used information in our memory. To retrieve information, we need to activate more memory units. Therefore, the retrieval process is a deeper retrieval and requires more work. (This is why, for example, multiple-choice questions in tests are much easier to answer than questions with open answers).

Flexibility and Efficiency of Use

Every user is unique: each has their own needs and abilities. Likewise, each task is unique and requires different controls.

A new user going through a learning curve will always have different needs than a professional who uses our app for a few hours every day. Power users may appreciate advanced options, keyboard shortcuts or even the extensibility and customization of our apps user interface. Our users need to save their time and complete tasks quickly, but also accurately and reliably. A good user interface should offer features suitable for both novice and experienced users. Therefore, on the one hand, our apps should always display only relevant UI elements and commands. And on the other hand, offer advanced functionalities for experienced users.

Aesthetic and Minimalist Design

“Interfaces should not contain information which is irrelevant. Every extra unit of information in an interface competes with the relevant units of information.”

Minimalism aims to reduce the description of a subject to its necessary elements. This helps our users to access important information quickly and reach a conclusion quickly.

”Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” – Antoine de Saint-Exupery

To highlight the remaining content, we use nothing but white space. This increases the readability of the content, highlights the calls to action and creates a balanced and pleasant look. A minimal design uses only the necessary colors to support the visual hierarchy. We think about the purpose and meaning of each color and use them consistently.

Recognize, Diagnose, and Recover from Errors

“Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.”

Errors and problems of any kind can be frustrating for our users. To minimize frustration, we should put as much effort into designing error messages as we do the rest of the applications.

Every error message should be as clear and precise as possible. We give the user constructive advice on what to do next, suggest a solution or refer the user to a support staff member. And never forget, good error messages are characterised by politeness. We never blame the user and never imply that the user is stupid.

Help and Documentation

“It’s best if the design doesn’t need any additional explanation. ”

We strive to make our applications perfectly usable even without documentation.

However, it may be necessary to provide documentation to help users complete their tasks. What is easy for 90% of our users may be difficult for the remaining 10%.

Documentation should be well structured, written in a human language, and minimalist. Sometimes, users don‘t need a whole lot of documentation; a simple coachmark showing how the new feature works or a brief onboarding guide that explains the basics is enough.





References:

  • https://www.nngroup.com/articles/ten-usability-heuristics/
  • https://www.interaction-design.org/literature/article/heuristic-evaluation-how-to-conduct-a-heuristic-evaluation
  • https://www.gdrc.org/decision/info-decision.html
  • https://homepages.cwi.nl/~steven/sigchi/bulletin/1997.4/karn.html