This post isn’t intended to be an exhaustive list of interaction design principles, its merely an introduction to the subject. And I’m definitely not going to attempt to enter the lions den of defining what ‘interaction design’ is, that’s for another day!
1. Match Experience & Expectations
When using a product or service for the first time there is likely to be an element of learning needed to get to grips with it. This learning curve can often be an uncomfortable experience especially if the proposition doesn’t feel familiar.
By matching the sequence of steps, layout of information and terminology used with the expectations and prior experiences of the user the friction and discomfort of learning a new system will be reduced.
Matching your audience’s prior experiences and expectations is achieved by using common conventions or UI patterns. Des Traynor and Eoghan McCabe from Contrast put together a great presentation for FOWA Dublin last year all about conventions which is well worth a look. It introduces the importance of conventions but more importantly highlights when they should be broken.
As well as matching peoples expectations through terminology, layout and interactions the way in which they are used should be consistent throughout the process and between related applications.
By maintaining consistency users learn more quickly, this can be achieved by re-applying in one part of the application their prior experiences from another.
An added bonus of keeping elements consistent is that you can then use inconsistency to indicate to users where things do not work the way they might expect. Breaking consistency is similar to knowing when to be unconventional as mentioned above.
3. Functional Minimalism
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
The range of possible actions should be no more than is absolutely necessary. Providing too many options can detract from the primary functions and reduce usability by overwhelming the user with choices. To achieve the zen of ‘functional minimalism’:
- Avoid unnecessary features and functions
- Break complex tasks into manageable sub-tasks
- Limit functions rather than the user experience
4. Cognitive load
Cognition is the scientific term for the “process of thought”. When designing interactions we need to minimise the amount of “thinking work” required to complete a particular task. Another way of putting it is that a good assistant uses their skills to help the master focus on their skills.
We need to understand how much concentration the task requires to complete it and create a user interface that reduces cognitive load as much as possible. A good way to reduce the amount of ‘thinking work’ the user has to do is to focus on what the computer is good at and build a system that uses the computers skills to the best of its abilities. Remember that computer are good at:
- Remembering things
- Keeping track of things
- Comparing things
- Spell Checking and spotting/correcting errors
In User Experience terms engagement measures the extent to which a consumer has a meaningful experience. An engaging experience is not only more enjoyable, but also easier and more productive. As with many things engagement is subjective so the system your designing must engage with the desired audience; what appeals to a teenager is not necessarily what their grandparent would also find engaging. Beyond aligning with the appropriate users, control achievement and creation are key.
The user should feel like they are in control of the experience at all times, they must constantly feel like they’re achieving something and also be able see the results through positive feedback or alternatively feel like they’ve created something.
In his book ‘Flow’, Mihaly Csikszentmihalyi describes a state of optimal experience, where people are so engaged in the activity they’re doing that the rest of the world falls away. Flow is what we’re looking to achieve through engaging interactions. We should allow users to concentrate on their work, not on the user interface. In short keep out of the way!
6. Functional Layering
The Pareto principle (also known as the 80–20 rule), in the context of interaction design, is the rule that 20% of the functionality is used 80% of the time. Therefore we should make the most common or important functions easiest to find. We can do this by hiding or reducing the prominence of infrequently used or advanced functions.
- Look for functions that are not essential to the core tasks, or which are shortcuts for advanced users.
- Consider introducing default settings and preset choices for new users or people who either don’t wish to or aren’t experienced enough to access advanced functionality.
Functional layering allows experienced users to access advanced functionality easily without hindering beginners. The idea is that as a user progresses they will naturally discover how to access such features without being overwhelmed early on.
7. Control, Trust & Explorability
These three elements are fundamentally important to any system. If users feel in control of the process they will be more comfortable using the system. If the user is comfortable and in control they will trust that the system will protect them from making unrecoverable or unrecognised errors or from feeling stupid. Trust inspires confidence and with confidence the user is free to explore further.
8. Error Prevention, Detection & Recovery
The best way to reduce the amount of errors a user makes is to anticipate possible mistakes and prevent them from happening in the first place. If the errors are unavoidable we need to make them easy to spot and help the user to recover from them quickly and without unnecessary friction.
Error Prevention Prevent errors by:
- Disabling functions that aren’t relevant to the user
- Using appropriate controls to constrain inputs (e.g. radio buttons, dropdowns)
- Providing descriptive, clear instructions and considering preemptive help
- As a last resort provide clear warning messages
Error Detection Anticipate possible errors and provide feedback that helps users verify that:
- They’ve done what they intended to do
- What they intended to do was correct
Its important to remember that providing feedback by changing the visual state of an object or item is more noticeable than a written message.
Error Recovery If the error is unavoidable provide clearly marked ways for the user to recover from it. For example provide “back”, “undo” or “cancel” commands.
If a specific action is irreversible it should be classed as critical and you should make the user confirm first in order to prevent slip ups. Alternatively you can create a system that naturally defaults to a less harmful state. For example if I close a document without saving it the system should be intelligent enough to know that it is unlikely that I intended the action and therefore either auto-save or clearly warn me before closing.
In my daily interactions ‘mousing’ is becoming less of an issue as I begin to rely more on touch screen interfaces such as my iPhone and iPad. However, in the classic desktop environment ‘mousing’ relates to the ease in which you are able to move between controls, which is described best through Fitts’ law.
“The time required to click an object is proportional to the distance and inversely proportional to the object size.” Fitts’ law
Fitts’ law is a model of human movement in human-computer interaction (HCI) and ergonomics which predicts that the time required to click an object is proportional to the distance and inversely proportional to the object size.
With key functions or sequential mouse-operated controls we need to maximise the size of the controls and minimise the distance between them. This not only improves efficiency but in certain instances can reduce the risk of error.
- Consider what the most common or typical mouse movements will be on each screen.
- Where possible, place elements that will be used together in close proximity to each other.
- Be particularly conscious of transactions that require a combination of mouse and keyboard controls. Consider ways to optimise for both styles.
Affordance is the quality of an object that allows an individual to perform an action, for example a standard household light switch has good ‘affordance’, in that it appears innately clickable. In short the physical properties of an object should suggest how it can be used. In the context of user interfaces, affordance can be achieved by:
- Simulating ‘physical world’ affordances e.g. buttons or switches
- or keeping consistency with modern web standards or other interface elements e.g. underlined links or default button styles.
11. Hierarchy of Control
The hierarchy of influence between elements should be clearly apparent. Generally, controls which affect an object, should be grouped with the object, such as zoom controls on a map.
Controls which influence a group of objects should be associated with the entire group, forming a hierarchy.
Mocked up example showing hierarchies of control