It’s a truth seemingly universally acknowledged in software that the user is stupid. Hang around in an office of developers for a while, and you’ll hear it. It starts as a sigh or a condescending chuckle, followed by a widely announced proclamation that yet again a user has done something so completely stupid that it surely defies explanation. “They can’t even work out how to search.” “They’re expecting it to save when there’s a save button right there and they’re not clicking it.” “They’re putting the customer phone number in the other details field again.”
The inconvenience of having users
These particular examples aren’t from real life, I’ve conjured them from my imagination, and yet still they feel familiar. What it boils down to is a developer having built something so incredibly obvious, so blindingly foolproof, that no one could possibly mess it up. And yet still the user comes back for the third time this week to ask exactly the same question again. This situation is made even more frustrating, because under the hood what the poor software developer has built is amazing. It solves some difficult data look up problem that if programmed the obvious way, would take twenty seconds to return a result set. But through sheer talent and determination, the plucky engineer has the results returning in less than a second. Except the user still hasn’t worked out that they have to click the button to actually kick off the search - they can’t just press enter. There’s also no obvious indicator of search progress, so they don’t work out that nothing is happening, and instead report back that the search isn’t working again. Now this is bad enough. How stupid do you have to be to not realise that you need to click the big obvious button labelled ‘Search’ to actually start the search? What’s more beguiling still, is that this is what was asked for. It’s right there in your notes from the planning meeting - a search box with a button. This may be a slightly contrived example, but what it represents is all too real: a disconnect between the end user experience, and how the technical person perceives that experience. But it’s more than a disconnect. It’s a smarmy, self-righteous, high-horse contempt. There’s no stopping to consider why the disconnect might exist. No. The user is just wrong. And don’t forget stupid. A PEBCAK, or “problem exists between chair and keyboard”. What’s even more shameful about this state of affairs is that it isn’t some inside joke, some secret that’s maintained amongst close colleagues. Instead, the user is stupid is practically a mantra by which some technical people live, and there’s no attempt to shield the user from this belief system. It’s truly endemic to the industry. I know this, because not only have I been witness to it in the workplace, I also have client users who regularly apologise, tell me they’re stupid, shower me with praise for how patient I am with their constant stupid questions. These are users that I value professionally. Not only would I not tell them that I think they’re stupid, but it simply wouldn’t occur to me. After all, I’m building products expressly for their use. If they can’t work out how to use it, who’s the stupid one?
The customer isn’t always right
This contempt for our users is wrong. It has to stop. It’s time to stand up and acknowledge that when a user does something wrong (or can’t work out what to do at all), whether it be for the first time or the tenth, we are the ones to blame. We built software for them that they can’t work out how to use. We’re making their lives more difficult than necessary, and yet still they’re the ones who invariably come apologising to us. Modern times have quite rightly shown us that the customer isn’t always right, and there are plenty of examples out there of customers behaving badly and expecting the world from some innocent shop attendant, but let’s be perfectly clear: we are not shop attendants, and usually our users are not our customers. Remember the user from back up the top who keeps putting the contact’s phone number in the “other” field rather than in the phone number field? That’s Joe over in Sales. Joe over in Sales didn’t pay for the software that automatically splits the area code in the phone number field, even when he’s trying to enter a South African contact number. He didn’t write the spec, didn’t sign off on the project, didn’t pay you to build the product. But he has to use it. Every day of his working life he’s using that thing that you created. Damn right he’s going to put the South African number in the “other” field if it stops it splitting out the area code incorrectly. He doesn’t care that this muddies the data model. He’s never even heard the term “data model”. It’s not his job to know this stuff. It’s his job to bring in the money that the business uses to pay you to build the software that he struggles with every day.
We exist to make the user’s life easier
The problem with technology is that none of us chose it. We got it whether we wanted it or not. People who are technically inclined are living in a golden era. We’re in high demand and rightly so. But it’s important to remember what our role is, and the role of technology. We exist merely to make the lives of non-technical people easier. We build products that make people richer, help them communicate easier, help them access the data they need to finds cures for cancers, and automate whole sectors of industry, allowing them to fire a thousand other non-technical people because they’re no longer required. There’s a strange parallel that can be drawn here between software developers and politicians. Both are brought in to serve the people, and both can easily become lost in a sense of natural entitlement and delusions of grandeur. It’s not only in the workplace that this attitude is prevalent. Let’s face it - who hasn’t scoffed at someone using Internet Explorer with four different toolbars installed? We blame the user for being stupid. It’s natural, but it’s wrong. We created this mess. We have a duty of care to help people through it.
Less technology, more empathy
Brief aside: If you glossed over that last link, please go back and read it if you have time. It’s important. None of this is difficult to solve. It’s not an insurmountable problem, or a bridge too burned to travel back across. But these problems can’t be solved with technology. They require an ability far more human and far more important: empathy. Let’s stop berating our users, but instead make renewed efforts to understand them. And I’m not talking some superficial level of understanding where we change the search field to submit on enter, and modify the phone number field not to presume the contact is in the same country as us. That isn’t empathy - that’s just fixing a broken thing. We’re already good at that. Let’s instead try to go beyond just fixing technical problems and talk to our fellow human beings. Because our users are the same as us. They probably eat out at the same places as us, buy their groceries from the same places as us, do the same things at the weekend. But despite our work being perhaps the only thing that we have in common, it is likely to be the place where we have the least in common, and therefore presents the best opportunity for understanding each other’s needs better. And if we can do that, we’ll not only stop seeing the user as stupid, but head in a direction to intuit what it is that they really need from technology, when no one else can.