Forgiveness is an important feature of good design. You should help your users by minimising the impact of mistakes or, ideally, prevent them from happening at all.
One way you can make your interfaces more forgiving is by employing a ‘forcing function’ (aka confirmation). This technique makes the user verify that what they requested is what they intended. There are 2 kinds of confirmation: A dialogue; where you ask the user a question e.g. “Are you sure you want to delete all your files?”; or a 2 step process e.g. armed… fire! Both approaches slow the user down so that it is harder for them to perform the action by mistake and give them an opportunity to change their mind.
Google recently introduced a feature to Gmail called “Mail Goggles” where if you try and send an email late at night over the weekend it assumes you are drunk and forces you to answer a series of mental arithmetic questions first! At first I found this quite funny, but the more I thought about it the more I liked it as an idea.
We’ve all sent emails we regret. Some of these are when you have been out at the weekend and returned home a little worse for the wear. Of course, the software can’t tell that you’re drunk but by introducing a 2 step process it means you can’t just send the email without reflecting upon it. By making the second step a mental arithmetic test, they hope that your lessened mental capacity will be unable to perform the calculations and you’ll give up – or at least recognise you aren’t in the clearest frame of mind!
There aren’t many systems that should go so far as to test their users state of inebriation; but it is worth considering how you can compensate for a users state of mind when they are using your products: will they be under stress, working in a hurry or not giving your product their full attention?
- Use your system knowledge to check unusual or unexpected data – e.g. if the “Quantity” field on your order form averages less than 10, verify the user meant it if they enter 100
- When the user is performing a critical step – slow them down by making then perform multiple steps – it will force them to pay more attention and prevent accidents
- Consider delays on some operations and provide an option to cancel e.g. “Your computer will reboot in 5…4…” – this will slow them down if they are in a hurry
- Can you be like Google and take the time and day into account to infer anything? Maybe your software could act differently at lunch time or last thing on a Friday?
I think Mail Goggles is a great feature and something we should learn from. It shows a high degree of attention to usage patterns and an innovative solution that could save a user’s blushes. Imagine how relieved you’d be the next day when this feature prevented you sending the email where you told your boss what you really thought of him!