Have you ever felt like users are intentionally trying to piss you off?
This feeling has happened to me more than once. It isn't a rare occurance for my team to get angry emails from our users saying something doesn't work, only for us to point out something simple that they forgot to do, or the instructions they totally didn't read, and then the error magically goes away. Over time I became resistant to helping them, since they always seemed to be back later with a different issue they could have solved themselves if they'd only thought about it a little. It was like they were trying to make us developers angry by not doing what is so blatantly obvious. Why should I help them if they're not willing to help themselves?
What I forgot was that developers and non-developers think very differently. The users weren't trying to piss me off; they were just trying to learn.
Death by Annoyance
Because I rather like being employed, when these kinds of situations would pop up, I would make my best efforts to be civil. I would respond to these users kindly, asking them "would you please consider reading the text just above that form" or "please click that button first" and willing myself to not scream at them to read the friggin manual!. I walked them through each of the necessary steps, holding their hands, showing them what button to push and what links to click, until they finally comprehended what to do. All of these steps were obvious to me, and it was the biggest mystery at the time why they were not obvious to them.
This feeling, for me, was very real; sometimes, the users seem like they're intentionally not doing what I want them to do, and I got deeply annoyed with them, though I did my best to not let that annoyance show. But their stupidity persisted. They did things that were so wacky they boggled my mind (like putting a credit card number in with spaces between each number), they didn't read the instructions, ever; and they acted like they were hell-bent on breaking my beautifully-designed, well-written application just to prove they could. It wasn't just one of them either, it was all of them, they're all together in this, obviously my code is correct, they're wrong and just trying to get me to do their job for them...
Right. The whole world was out to get me and my perfect code. Sounds reasonable.
There's a phrase that goes something like this: "If drama follows you wherever you go, maybe you are the drama." That was my problem whenever I had the thoughts above; I was assuming that I was right and that they were wrong, and that they were trying to piss me off because, well, I didn't exactly have a reason why. Maybe they just liked to annoy people. But that wasn't the issue at all. The issue was that I live and breath code, and they don't.
Every time I went to a user's desk to help them with a problem, especially if the problem turned out to be a minor one, they would almost always say, "Oh, I didn't realize I could do that" or "Oh, that's how that works?" and then be very thankful that I showed them how to use the tool. The stuff that was so obvious to me was so foreign to them. One person didn't know they could click on a link to reveal some info they were missing; they thought (because of its positioning) that it would take them to a different tool. Another person didn't realize they could search for an address with the city, state, and zip in a single box; they didn't see separate boxes labeled for these, and just assumed that we'd removed this search feature. They didn't know what they could and could not do, and they needed someone like me to explain it to them. When someone came along and offered that explanation with no judgment and no bad attitude, they were very grateful, repeatedly thanking me for explaining this very complex tool to them.
I was stunned at their responses; I had expected them to be sullen, unwilling to learn, since they had kept pestering me with their inane questions. This stuff wasn't hard, right? The problem was that it wasn't hard for me, but it was much more difficult for them. They didn't have the level of familiarity with the app that I did, and I couldn't expect them to. They really did want to learn how to use the app so they could do their job.
The Beauty of Hanlon's Razor
That was the big realization. They weren't trying to make me angry, they were trying to learn. I was expecting them to understand how to do certain things that, because I live and breath code, I knew how to do instinctively. But it wasn't second nature to them, and I couldn't expect it to be. They just wanted to be able to use this tool I'd built for them so they could do their job. They figured, correctly, that since I built the application I ought to know how to use it, and so they went to me with questions. It was my own inflated ego that was making me think they were trying to annoy me, when in reality they just needed a little help, a little nudge in the right direction.
What I should have kept in mind was Hanlon's Razor: "Never attribute to malice that which is adequately explained by ignorance." It's not that the users were trying to make me angry; it's that they were ignorant of how to make the app do what they want. They were trying to learn how to use this tool to do their job, and they needed my help to do that, because I knew the app better than they did.
So we all (including me) need to calm down. Users are not trying to piss us off, they're just trying to learn. Take a few deep breaths and then help them do whatever they were trying to do. At the very least, they'll get a sense that you are willing to help them without taking offense at their ignorance, and that'll make them feel good about working with you. Be as helpful as you can; you are the one with the knowledge, and it is your right, even responsibility, to make sure that knowledge gets wherever it needs to go.