There are many ways to achieve pleasant user experience as there are ways to make it unpleasant. We can achieve the former by minimizing the latter. In another words, by eliminating the unpleasant experience, we can automatically gain pleasant without even trying. So maybe we should shift our mental motto to “eliminate the unpleasant” instead of the far too ambiguous “make it pleasant.” Identifying the unpleasant is far easier than trying to create the pleasant out of thin air. This may seem like silly play on words, but it really isn’t. Let’s focus on one unpleasant experience – errors or user-errors as they say.
Would a more polite error message make things pleasant? No. It’s still an error. Instead, we should focus on how to eliminate the error altogether. In case of the user input errors, anytime a user is confronted with an error, basically, it’s the system telling users how stupid they are by not following the rules or by not knowing something so obvious. Does the system make things that obvious to the user all the time? No, most of the time they don’t. Required formats, prohibited characters, use of spaces, etc. are some of the things that many websites and apps fail to identify upfront. Yet, the system is happy to call the user stupid for not knowing them. How rude!
Imagine having a conversation with a person. And let’s say you mispronounce a word, stutter, or use improper grammar. Most of the time the conversation itself is fully comprehensible and can move on. But how would you feel if that person tries to constantly correct you every time? You’d be annoyed and punch that person in the face.
When we design an application, we need to think about ways to make the system smarter so that it can parse variety of human responses. The system should not make fuss over some trivialities arising from human interactions. We can design the system to foresee possible human responses and provide resolutions instead of throwing errors.
If A needs to be done before B, we should design the system so that it’s difficult or impossible to get to B before A. Alerting user that they did something wrong or relying on instructions is bad design that leads to unpleasant experience. It’s always better to guide the user to the path that results in less errors than alerting them when errors occur. Best error message is no message at all.