3 Specific vs Heuristic design principles
When using design principles, there are two kinds of principles that are often referenced:
Specific and Heuristic.
Specific design principles
These are design principles that have been created for a specific project to ensure a consistent experience. An oft-cited example of specific design principles would be the android operating system design principles.
- Delight me in surprising ways. Subtle effects contribute to a joyful experience
- Real objects are more fun than buttons and menus. Make the experience visual and not just textual.
- Let me make it mine. If at all possible make the interface customizable
- Get to know me. Learn people’s preferences over time.
- Keep it brief.
- Pictures speak louder than words.
- Decide for me but let me have the final say.
- Only show what I need, when I need it.
- I should always know where I am.
- Never lose my stuff.
- If it looks the same, it should act the same.
- Only interrupt me if it’s important.
- Give me tricks that work everywhere.
- It’s not my fault.
- Sprinkle encouragement.
- Do the heavy lifting for me.
- Make important things fast.
While these seem like extremely simple statements, one can see how they help guide big decisions in the design of the interface.
Heuristic design principles
These principles were made mainstream by Jakob Neilsen in the 90’s and are used as a set of guidelines that user interface design in computer applications must adhere to in order to be usable. While set in the realm of computing interfaces there are many parallels that can be drawn in course design. Neilson’s principles are:
- Visibility of system status: The user must be informed about what is going on through appropriate feedback within a reasonable amount of time.
- Match between system and the real world: The system should speak the user’s language. It should use familiar terms, words and concepts that are familiar to users. Information should appear in a logical and natural order.
- User control and freedom. Users of the system may find themselves in an unfamiliar or unwanted state. There needs to be a clear “exit” or “undo/redo” without having to go through an extended sequence of events.
- Consistency and standards. Users should no have to wonder whether different situations or actions mean the same thing. Follow platform conventions and maintain a consistent environment.
- Error prevention: Eliminate error-prone conditions or check them and present the users with a confirmation option before they commit to an 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 experience to another. Instructions of use should be visible or easily retrievable whenever appropriate.
- Flexibility and efficiency of use: A design system should provide enough flexibility to cover the needs of both inexperienced users as well as an expert without causing a painful experience for both.
- 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, 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.