Any web developers, programmers, engineers, anybody who has some experience in working on the design phase of the user interface of a website or software application im sure will be fairly familiar with the concepts of a usability study, more specifically a heuristic evaluation.
I am in my final year of my Computer Science degree and have conducted many tests and usability studies and evaluations of many software products (including my own) and websites for my own purposes or for assessments at uni.
Jakob Nielson developed a set of guidelines or principles in which to follow when assessing the usability of an interface, regardless of platform, physical appearance, etc. “They are called “heuristics” because they are more in the nature of rules of thumb than specific usability guidelines” (J. Nielson).
Not many people will be familiar at all with Jakob Nielson unless you’re a computer science major or IT professional in some manner, but he is a big part of the usability community developing many techniques and writing many documents on effective testing and studying of how people use interfaces both electronic and non-electronic mediums.
Below is a list of Nielson’s 10 Heuristic evaluators and their definitions:
- Visibility of system status
- The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
- 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.
- 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 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.
- 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.
- 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.
- 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.
- 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.
Evaluating the design of user interfaces is a very important step in the overall design phase of any software product and in larger development studios and companies this isn’t so much of a problem becuase of their very professional way of doing things, but many single bodied programmers/developers or smaller independant houses may very well benefit from incorporating as much time into the actual usability of their product as the functionality itself.
These ten heuristics have helped me evaluate my own software and make it as good as it can be. If you yourself aren’t a professional programmer or still a student such as I am but haven’t taken user interface design as a subject (I did, loved it) then have a quick read through and check out useit.com which is Jakob Neilson’s website. Lots of good information on there.