Is user error even possible?
I believe there are two possible attitudes when it comes to user error. Either you believe it is possible for the user to make a mistake or you believe it is not possible for the user to make a mistake. I agree with the second of these, that the user can never make a mistake when working with a product that I created.
If this sounds crazy to you I will explain further. About a year ago, Jeff Atwood wrote a blog post about asking the question, “What’s the God algorithm for this?” In other words, “How would God build this algorithm”?
He goes on to discuss using the God algorithm as an ideal to strive for (but never reach). In his case he is looking at building the perfect login, but you can apply it anywhere. For example, what is the God algorithm for calculating pi? God simply knows pi and His function will return pi out to whatever digit you like.
What is the God user interface?
I like to expand it further and ask, “What is the God user interface?” For example, if we look at the form to pair your youtube.com account to a smart TV we can see this in action. If God built this user interface He would skip the interface and just make sure your TV is always paired correctly. Taking it down a notch we can aim for the goal of having a form that still requires the user to do something, but they will always understand what to do. See the user interface below.
Acting as a typical user I didn’t read the instructions and instead I did what I thought it wanted, which was to enter the serial number off the back of my TV. Now this didn’t work and I don’t know why because their error just tells me that it is the wrong code. To make matters worse, YouTube tells me to “try again later”! How much later? Should I simply try the same number again? Will it stop being the wrong code later?
Eventually I would find the instructions above and get this working, but not before rereading the serial number and trying a few more times. You could reduce the number of retries with a better error message. See my slightly improved user interface below.
Notice here that I give them a summary of the instructions in the error message since users are more likely to read red error text, especially when they are frustrated because things aren’t working the way they want.
We have been warned
Going back to the topic at hand, am I to blame if I read the serial number off of my TV and don’t read the instructions? I would argue that I am not. Developers know that many (or perhaps most) users do not read the instructions and just charge forward doing what feels intuitive. We have been warned about this in advance, so as developers we have no excuse for not dealing with it. We can’t build the God user interface and we usually can’t even build an interface intuitive enough to be perfectly understood. However, our challenge is to get as close to this ideal as possible. If your attitude allows for user error then you are allowing for a low quality interface.
It can be frustrating when users consistently type the wrong thing into an input that you thought was intuitive and well placed. Consider, however, that you are not the only one getting frustrated. The user is getting frustrated too because they don’t feel like they have control of your software. Nobody wants to feel this way, and your users won’t put up with it for long. The good news is that with a better attitude and some careful consideration you can make your interface easier to understand and deal with.