Heuristics and usability principles: A heuristic evaluation is a usability inspection method for computer software that helps to identify usability problems in the user interface (UI) design. It specifically involves evaluators examining the interface and judging its compliance with recognized usability principles (the "heuristics"). Jakob Nielsen's heuristics are probably the most-used usability heuristics for user interface design. Nielsen developed the heuristics based on work together with Rolf Molich in 1990.The final set of heuristics that are still used today were released by Nielsen in 1994. Also known as ''Usability Heuristics'. Usability principles are:• • • • Similar to design principles, except more prescriptive Used mainly as the basis for evaluating existing systems or prototypes Provide a framework for heuristic evaluation. They are also called heuristics when used as part of an evaluation. The common usability principles The ten main usability principles developed by Nielsen and his colleagues (2001) are: Visibility of system status Match between the system and the real world User control and freedom Consistency and standards Help users recognize, diagnose, and recover from errors Error prevention Recognition rather than recall Flexibility and efficiency of use Aesthetic and minimalist design Help and documentation 1. Visibility of system status The system should always keep users informed about current state and actions through appropriate visual cues and feedback within reasonable time. Gmail loading a user’s mailbox. Tells the user to wait & Indicates the status of what’s going on. This principle states that the user should know what’s going on inside the system. We need to give a feedback of his/her action within a reasonable time. This feedback is normally associated with points of action and can be provided using a colour change, loader, time-left graphics, etc. 2. 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. iBooks iPad application using the metaphor of wooden book shelf. Using real life metaphor in computer application. 3. 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. This principle talks about giving the user the freedom to navigate and perform actions. The freedom to undo any accidental actions. This principle can be best illustrated by the Gmail’s flash message with undo action when we accidentally delete an email. Mozilla suggesting some security tips and handling exception. History in Photoshop helps user in recovering previous steps. 4. Error prevention Even better than good error messages is a careful design which 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. How many times did your outlook remind you that there is no attachment in the email while you mentioned that something is attached? Outlook intuitively scans the email for such keywords and alerts the user before sending. This is Error Prevention. Below is an example of Google Search trying to correct my spelling: 5. 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. Errors are inadvertent in the user journey. A check needs to be made if those errors are being explained to the user in understandable language. In the below example, I have entered a fictitious username and password and the error message I got is either the username or the password is incorrect. Here we are not informing the user if the username is invalid or if the password is wrong. 6. Consistency and standards Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions. A Submit button in one page should look the same across the site on any page. If we show the data in a particular table format on one page, it should look the same the next time data is being shown in tabular format. If the header is displayed in a certain way on the public pages, it should be the same when he/she logs in. Inconsistent Icons. 7. 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. It’s always better to suggest the user a set of options than to let him remember and type the whole thing. The goal is to minimize the application of user memory. Below is an example of Quora suggesting possible questions based on what I am trying to type. One more example is when Quora lets you pick the topics of interest from a list of options rather than asking you to type all of them which would have been disastrous. Another example from Google:- 8. 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. The Interface should be flexible transforming itself between a novice user and an advanced user. One frequents this option while installing a new software that asks if the user wants to go ahead with default installation or custom installation. An advanced user chooses a custom installation to cut out the unnecessary services. Auto-fills 9. Aesthetic and minimalist design Dialogues should not contain information which 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. Prioritization comes to play when this aspect is being considered. For the designer or the developer, all the information that’s being presented on the page is relevant. The product manager needs to ask the end user if it is so. Is every information displayed on interface necessary and useful? Google has been resisting the temptation to show more information on their search page for years. This is could be shown as the example of the best possible minimalist design. Google: Nothing More and Nothing Less. Interfaces need to be cleared of unnecessary elements and content that do not support the page goals and tasks. Apple provides only the basic information of feature hiding additional information under “Learn More”. Check the same product on a retail website to understand the importance of clutter-free experience. 10. 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. A great user interface lets the user navigate through it’s features without any documentation or training. But if there is any user who could not make it out, adequate help should be provided within the product. Below is an example of GoDaddy’s Help page. While there is a search field, there are main categories and frequently asked queries on the same page. See another example below:- Contextual help is the best way to help ! Also, telling users about the consequences of their actions is also very helpful.