User Error is Our Problem, Not Theirs! | January 17, 2007

I witnessed something happen on a web developer mailing list the other day which I’m not proud of, but which is all too common in our industry. A group of experienced users rounded on a group of less experienced users for making a simple error, and then proceeded to put them down in public for their “stupidity and laziness” in not learning the system.

Sadly this is an all too common event when the technically astute developer come in touch with user error. Rather than blaming the system they created, these developers are all too keen to blame the users for their error. This reaction is somewhat understandable, as the developers know the system inside out and understand how it works. There is a good chance they even created part of the system and imbued it with their world bias. Because of this domain knowledge they just don’t understand how another users can’t get what they find so easy.

The problem is, most people don’t want to master the system, they simply want to get their tasks done in the simplest way possible. Users don’t sit and ponder all the possible options before making a choice. Decisions are made in a split second and are usually based on the first best guess. Apart from being looked down upon by developers, this approach has a low cost of failure and makes a perfect coping strategy.

It is all too easy to blame users for their mistakes and has become a bit of an in joke in developer circles. I’m sure we’ve all heard the story about the user calling tech support because his computer wouldn’t turn on, only to realise later that he’s in the middle of a blackout. However, while funny, there stories help to create an us and them attitude of superiority. The truth is, we are all that “dumb” users at some stage in our lives and shouldn’t write off other peoples experiences just because of our own personal biases.

In most cases, it’s not the fault of the user for making an error. It’s the fault of the system for allowing the error to be made. Ultimate responsibility for the error lies with the developers of the system, the very people who are so quick to scoff at their users stupidity.

So I implore you, “don’t be that guy”. See every user error as a gift. An opportunity to exercise your problem solving skills and make the system smarter. After all the goal of technology should be to empower people, not to make them feel stupid and inferior.

Posted at January 17, 2007 2:57 PM

Comments

Angelo said on January 17, 2007 3:32 PM

so instead of ‘user error’, how about ‘developer opportunity’?

Bramus! said on January 17, 2007 3:48 PM

Whenever I start on a new project I always start from “users will try to do stupid stuff and will click on antyhing they can, even multiple times”.

With that in mind, “user errors” are minimal and above all the system is safer (viz. not being able to click a submit button 20 times for).

Good writeup!

Matt said on January 17, 2007 3:55 PM

I’m dying to to know which user group this was. (But I also know naming names is totally gauche.)

“The truth is, we are all that ‘dumb’ user at some stage in our lives and shouldn’t write off other peoples experiences just because of our own personal biases.”

So true. Nobody’s an expert at everything. It’d be just as accurate to say “we’ll all be ‘dumb’ users at some point today.”

Ross Boardman said on January 17, 2007 4:07 PM

So you mean the problem isn’t between the chair and the keyboard?

Nick Fitzsimons said on January 17, 2007 4:33 PM

Spot on, Andy. A friend of mine used to work in the field of usability research, and has published a list of usability rules of thumb rated in order of importance by leading researchers in the field. Ranked highest is “Know thy user, and YOU are not thy user.”

This is why user testing is so important: anybody involved in creating a system is by definition skilled in that system. Among other things, this means that one will subconsciously avoid doing things which lead to breakage, and tend to regard a normal person’s activities which lead to such breakage as somehow aberrant.

In my days as a games programmer I fixed an intermittent bug in an early version of a game and moved on. Several months later, that same bug popped up as the very first thing reported by the playtesters when they used the supposedly-finished version. I had been working on and testing that game for hours every day throughout those months, and had somehow avoided the behaviour that triggered it in all that time. Once I knew it was back, I triggered it in seconds, and was able to finally eradicate it.

The problem is that we invest so much time and effort in our creations that we become resentful when somebody breaks them, and project the fault onto that person. Every flaw found by a user is a reminder that we’re not quite as smart as we thought we were.

The only solution is humility: I now regard software develpment as being primarily an opportunity to be taken down a peg or two on an almost hourly basis. Once you accept that you screw up regularly, bug reports become an opportunity to improve towards that perfection you were once so arrogant as to believe you had already achieved. (And knowing that you’ll never actually get there is quite relaxing.)

Andy Budd said on January 17, 2007 5:02 PM

Spot on Nick, couldn’t agree more.

ralph said on January 17, 2007 7:29 PM

This attitude is really irritating. I know from the user tests I’ve conducted that when the user makes a “mistake”, they already feel stupid. Trying to make them feel worse is a really amateur response. I’ve always tried to make clear to users in testing situations (and production situations, for that matter) that when the site doesn’t work, it’s my fault, not theirs. It’s not how stupid they are; it’s how stupid I am. And it’s funny how glaringly obvious some of these errors seem once you watch a user confront them.

Dominic Mitchell said on January 17, 2007 7:47 PM

I saw the same thing going on. And I’ve seen it happen time and time again in the 15 years I’ve been using email.

Whilst I agree that the behaviour of the group was deplorable in this case (people on b3ta seem to behave far more nicely to new users), I question how much more obvious you can make the information in the email. The information was presented in as clear a manner as possible as far as I can see…

Ján Varhol said on January 17, 2007 8:58 PM

You’re right. I’m so tired telling that not everybody have enabled javascript or widescreen display etc. If that doesn’t work, it is programmers fault. Even if it is not reparable. - Just my opinion…

Scott G said on January 17, 2007 9:33 PM

Don Norman has a great book called, “The Design of Everyday Things” that covers this concept in great detail. It really opened my eyes to this concept that if a user feels stupid, then the designer has failed his/her task. Great post.

Rosie Sherry said on January 17, 2007 11:01 PM

I like these kind of posts and comments. It seems to justify my existence as a software tester.

Jay Caines-Gooby said on January 18, 2007 1:46 PM

No offence Andy, but I think you’re entirely mis-representing what happened.

It wasn’t a web application, it was an email list.

The list got moved from old host to a new server. The person moving the list wasn’t able to apply the new preferences (version differences in software too great), so people on no-mail or digest mode suddenly started getting individual messages.

They then started mailing the list saying “unsubscribe me”, followed by me toos, followed by more “unsubscribe me” messages. Ad infinitum.

The list has a very clear set of instructions in the footer explaining how to leave the list. Plus a URL that can be clicked to unsubscribe too.

The list members only started rounding on the “unsubscribe me” and the “me too” people once we got fed up with it.

Mailing lists have an accepted set of “netiquette” which facilitates communication in the list. Once this netiquette breaks down, then it all goes to pot.

The buck has to stop somewhere. A link with the word “Unsubscribe” next to it followed by a URL is about as useable as it could possibly be.

I appreciate that software should be intuitive and easy to use, but participation in some systems requires a level of responsbility.

Andy Budd said on January 18, 2007 1:57 PM

Yes, and then the discussion moved on to the topic of usability and user stupidity, which is what prompted this post.

Adrian Lee said on January 18, 2007 2:40 PM

There is a lot of user stupidity, or laziness about. I know a lot of people who, as soon as they see an error message, freeze up and call me for help. When I ask them what the rror says, they don’t know. When I tell them to go back and read the error, there are more than a few rare cases where they are able to then engage their brain and work out what went wrong.

However, there is also a lot of elitism around. People who put others down because they don’t know some obscure aspect of something. The advanced users know about it, probably fell into it’s traps themselves one or more times, and now have that experience to know how to deal wiht it. They aren’t quite so helpful to other people coming up against the same issues though. And lets face it, there’s a lot of badly documented stuff about.

When things are obvious, and clear instructions are given, and users are too lazy to try themselves, and expect someone else to do it all for them, that’s when the user is wrong.

When things aren’t so well documented, or if a user has tried following the instructions and has gotten stuck, that’s when the demeaning comments are elitest and annoying. I wouldn’t say that happened in most cases, though there are certain online communities that are bad for it.

When Orkut first started up and everyone was checking it out, I tried joining up to a PHP developer community. However, I quickly discovered it was very elitest, and silly things like if you didn’t use vim you were a ‘noob’ and didn’t know what you were doing, and were ripe for slagging of etc…
So I quickly left.

Other communities are not like that. I help run Cre8asite forums, and we try and be accomodating to new people and helpful to beginners.
It does get frustrating when people only ever come to the forums to ask questions, and the answers can easily be provided by searching on Google. In fact, in some rare cases, responses consist of links to Google searches.

That’s not being mean to the person, or elitest, that’s trying to stop them taking advantage of our good nature and make a bit of effort themselves. If they make some effort and get stuck, we’re more than likely to help where we can.

Andy Budd said on January 18, 2007 2:52 PM

But you’re still labouring under the assumption that users are being lazy, which is wrong. In all the usability tests I’ve run, I’ve never once come across a lazy user. Confused, frustrated and in a hurry maybe, but never lazy.

The point is, you need to design systems for the intended audience and how they use them. We all know that people multi-task these days, and the web is no different. Usually I have multiple tabs open, an email client, IM and a host of other apps vying for my attention. So it is very rare that somebody is devoting 100% attention to a given situation.

This is why people don’t read error messages correctly. You could take the easy route out and blame the user. Or you could write clearer, more obvious error messages. Better still, create a system that helps users avoid errors in the first place.

I’m not saying that all errors are avoidable, because that’s not the case. However a lot are, and the knee jerk reaction of blaming users is the defence of the lazy or ignorant.

Shaun Hare said on January 18, 2007 11:55 PM

I find sometimes that users say “I though it must be me” during the post error technical diagnosis when they have found a bug you have
missed.
Are they showing humility?

It is apparent that they try and get things to work (often by trying multiple times) is this stupidity?

If we had tested it maybe a few more times then we may have found the bug! Is this being lazy?

As you say Andy often people are not giving 100% attention and maybe in a hurry

I think time pressure has a big role to play in both sides.

The less time we spend on understanding/developing and testing the more likely the user is going to encounter problems. The less time they spend on concentrating on the task in hand the more likely they are to make mistakes which may highlight errors.

The bottom line in my opinion is neither side is lazy or stupid both sides more likely are trying to work at getting the job done in the shortest possible time.

Apportioning blame doesn’t make any difference it just wastes more time ..

Andy Budd said on January 19, 2007 9:41 AM

A agree with you to an extent Shaun, but we’re paid to build better web applications. Users arn’t paid to use the apps.

The point I’m trying to make is that it’s inexcusable for developers to moan about stupid users if they themselves haven’t put the effort in to prevent errors in the first place.