You might be a good UI/UX Designer yet its important to evaluate your designs to know will they be really helpful for the desired product or not and for this Heuristic Evaluation Methodology is really helpful.

In heuristic evaluation, some usability experts review the design/interfaces of your product and compare it against accepted usability principles and in the result you get a list of potential usability issues.

According to a source, though many people have developed their own heuristics but the best known are the one developed by Nielsen in 1994. His heuristics includes :

  1. Visibility of System Status

    The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
    For example you might seen many sign-up forms on internet, suppose after filling the complete form you pressed/clicked sign up button and in the result it neither redirected to next page nor shown some confirmation message doesn’t matter it have performed its back-end functionality or not user will now get confused either he has been registered or not so it will be considered a bad design there must be some response against that button to make it responsive and a good design.

  2. Match Between system and the real world

    The system should speak the user’s 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.
    For example take the above example of sign up form now consider how weird it will look if the button’s content is written as “Insert as new record” instead of “Sign Up” or instead of “First name” it says “fname” this is what Nielsen has taught us that your user might be new to computer/internet world so choose the wording according to your user and use common human language instead of using short words or computer related words that can be understood by you or some expert.

  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 and extended dialogue. Support undo and redo.
    For example consider the above example of sign up form now think you are filling the form and for any reason you go to the above right corner of your browser to minimize it and accidentally you pressed “X” and it closes the browser without your confirmation. What you think it’s a good design? Obviously not as it should ask you by showing some confirmation message to close the browser or not and if it doesn’t do this then no doubt it’s a great example of bad design.

  4. Consistency and standards

    Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
    For example consider that sign up form example again now everyone knows on internet “Signup” or “Register” means you are going to create your account on that website or going to register yourself as a member of that site now suppose you have filled the form but on the register/signup button instead of these conventional terms it is written “Done” or “Ok” now although these words are understandable by you but they might confuse you either you have been register or are there are some more steps to follow, am i going the right way or not and stuff like that might came into your mind so the good practice is to always use traditional terms according to the platform.

  5. 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-pane conditions or check for them and present users with a confirmation option before they commit to the action. You can consider the same example here also which I have discussed with you in “User control and freedom”.

  6. 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.
    For example consider you have filled up the signup form successfully and have got the access to certain website. Do you think next time when you will login to that website you will remember that username which was asked from you at the time of registration ? It might possible that you forgot that username so if the website has good design then it will provide you multiple signing in options like “Sign in via facebook” , “Sign in with email id” or “Sign in using twitter” etc so that you can get the access and also if the website has got good design then it will always display your username somewhere on header of that website so that you can easily see your username.

  7. 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.
    For example consider an example of “MS-WORD” a famous word editor by Microsoft Corporation. This is a very good tool in terms of usability as it provides ease and flexibility to both its experts and novice users. Experts can use different shortcut keys to speed up their work whereas novice users can follow the same traditional methodologies of any word editor to do their work.

  8.  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.
    For example users never changes their accounts settings regularly so there’s no need to show that on every panel or dialogue. The good practice is to make a different and separate section for account settings and provide the link to that section to the users so that whenever they need to change their settings they can easily do that.

  9. 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.
    For example usually whenever some error occurs while developing ASP.NET websites which is not caught by the compiler in Visual Studio it cause crashing of your website in browser and when it crashes it displays error in some code which is never understandable by new developer so i think Microsoft should update its IIS server error displaying methodology and should display proper and easily understandable error messages.

  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 to be too large.

Many experts and good UI/UX designers are following these heuristics to make their designs perfect and to improve usability of their products. While evaluating some design you must consider these heuristics as your checklist.

How to perform Heuristic Evaluation

Mostly heuristic evaluation is performed by small teams of evaluators (usually usability specialists) who systematically checks interface design against small set of recognized usability principle called “heuristics”. These heuristics can be developed by themselves and can be those which were developed by Nielsen and are explained above.