
Heuristics are broad general rules of thumb that designers should leverage off of to create highly usable experiences. The following are taken directly from my UX bible at Nielsen Norman Group.
Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time.
Definition: The visibility of system status refers to how well the state of the system is conveyed to its users. Ideally, systems should always keep users informed about what is going on, through appropriate feedback within a reasonable time.
Visibility of system status relates to so much more than user-interface design. At its essence, it is about communication and transparency, which are critical to many aspects of life. People strive for predictability and control, and, in most cases, more information translates to better decision-making.
Wherever you are, whatever you are doing, take a few moments to look around and note the various types of systems around you, and how they communicate their current status. Your phone or laptop displays how much battery life remains; your email application tells you how many unread emails you have; a sign in the subway indicates the next stop (or if you’ve missed the last one, how many minutes until the next train arrives at the station). All these nuggets of information allow you to accurately assess the current state of the systems you interact with.
Match between system and the real world
The system should speak the users' language, with words, phrases, and concepts familiar to the user, rather than system-oriented terms.
Follow real-world conventions, making information appear in a natural and logical order.
Summary: By nature, human beings find comfort in familiarity. As UX professionals, we should never assume that our own interpretations and understanding of words or objects match those of our users. How we interpret the world around us depends on a variety of circumstantial and personal factors. Experiences we’ve had, items we are familiar with, our beliefs, ideas, and values-all contribute to how we infer meaning, and nuances in interpretation will often vary from individual to individual.
It is important to keep in mind that all parts of the principle must work together in order for the experience to succeed.
Upholding the second usability heuristic in writing, visual, and interaction design demonstrates that the product knows its users and cares about them. It shows empathy and acknowledges them as important. In an age where users read less and less but are inundated with more and more online options, prioritizing and applying the second usability heuristic is a dependable way to differentiate while staying relevant, building trust, and instilling feelings of familiarity, which will lead to loyal users.
User control and freedom
Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
Consistency and standards
Users should not have to wonder whether different words, situations, or actions mean the same thing
Follow platform conventions.
Error prevention
Even better than good error messages is a careful design that prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.
It is important to communicate errors to users gracefully, actionably, and clearly. However, it’s even better to prevent users from making errors in the first place
A crucial point in discussing user errors is where to assign the blame for the error. The term “user error” implies that the user is at fault for having done something wrong. Not so. The designer is at fault for making it too easy for the user to commit the error. Therefore, the solution to user errors is not to scold users, ask them to try harder, or give them more extensive training. The answer is to redesign the system to be less error-prone.
Learn more about User Errors
Recognition rather than recall
Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.
Psychologists like to make the distinction between two types of memory retrieval: recognition versus recall. Think of meeting a person on the street. You can often tell quite easily if you have seen her before, but coming up with her name (if the person is familiar) is a lot harder. The first process is recognition (you recognize the person as familiar); the second involves recall. Recognition refers to our ability to “recognize” an event or piece of information as being familiar, while recall designates the retrieval of related details from memory.
How easily information can be retrieved from memory depends on how often we’ve encountered that information, how recently we’ve used it, and how much it is related to the current context. Richer contexts (like those present when we use recognition rather than recall) make memory retrieval easier. Interfaces that promote recognition give users extra help in remembering information, be it about tasks and items that they had seen before or about interface functionality.
Learn more about Recognition rather than recall
Flexibility and efficiency of use
Accelerators, unseen by the novice user, may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.
Learn more about Accelerators
Aesthetic and minimalist design
Dialogues should not contain information that is irrelevant or rarely needed. Every extra unit of information in a dialogue 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.
Help and documentation
Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.