They are called heuristics as they are not rules that must be followed rather they are advice and guides.
There might be certain circumstances where following one of the heuristics impairs the outcome.
The (briefly) are:
- Visibility of System Status: keep the user informed about what’s going on
- Match the system and the real world: Use language and symbols the user can relate to. e.g. Desktop
- User control and freedom: let the user make mistakes and give them undo and redo options to experiment
- Consistency and standards: keep all parts of the user interface using the same language, fonts, colours, etc.
- Error prevention: try to prevent users making mistakes in the first place
- Recognition rather than recall: Keep it simple, don’t ask the user to remember a lot of information, chunk it up and have help available.
- Flexibility and efficiency of use: Give different ways of carrying out tasks like shortcut keys for expert / advanced users
- Aesthetic and minimalist design: Keep information and what’s on the user interface short and to the point, don’t overwhelm the user with too much information.
- Help user recognise, diagnose, and recover from errors: Give error messages in plain language that the user can understand. Give suggestions on possible solutions
- Help and documentation: By carrying out the first nine most people won’t need the help and documentation but it should be there and focused on completing tasks. Lists of steps are useful for this.
For more information and examples check out the links in the references.