Making software better for people that hate you
May 22, 2010
One of the most complicated things in life is working for people that don’t care for what you are doing. I’m not talking about working for a shitty boss; imagine playing for the last-place NFL team & getting booed off the field. That’s what I’m talking about.
As a software developer, my goal is to write great software that is useful and easy to use. I want to make people happy and I want them to be excited when I release something new because they know it will work right the first time.
For the most part, I accomplish this every day. Every now and then however, I run into someone who hates me. Not me as in Billy Coover the human, but me as in the IT guy who was sent from hell to steal everyones productivity and make them unhappy by moving their cheese every chance I get.
The type of person I’m describing is someone who bitches about something in your software (usually having nothing to do with any code of yours) that they don’t like and think you are an idiot for implementing. Sometimes they like to take little stabs meant to belittle you “I’ve been doing this for n years and I’ve never seen it done this way”. As if your entire purpose was to do it the exact opposite of what everyone is expecting.
Sometimes this person already has the solution and you just need to implement it. However, if you ask them to define the problem, they get angry, very very angry, as if you are telling them to piss-off.
They best part about this person is that once you do implement a new feature or bug fix that they ask for, you wont get a thank you. You’ll be lucky if you can escape without another complaint about something else, or even the new feature you just added “it’s about time this works the way I think it should have”.
They best way to handle this person is to ignore their attitudes, turn on the hate filter, and try as best you can to figure out the root of their problem. Once you do solve their problem, it’s best to keep the information exchange about the solution short and sweet. A simple email is fine. This way, if they respond back and have nothing nice to say you can quickly delete the email and move on.
Most software users are not this way. They might get excited when you move their cheese, but for the most part they are open to change as long as everyone understands that the change is intended to make the software better. Also, when you get to sit with users, hear the issues they are having, feel their pain every now and then, then solve their issues with some code, it really does feel good and it helps build trust with the users. They are typically happy and thankful that you came out from behind the big IT wall and actually helped them (I think all programmers at all software companies should do this by the way. It’s part of Behavior Driven Development).
Now, here is a bigger problem. Sometimes you’ll run across someone that hates you that has a lot of influence over other people. It is possible that they can get an entire department to behave they way I describe above. Maybe even a regional office, or the whole company… Watch out for this and try to squash it as soon as possible. You’ll be miserable if you don’t. There is nothing that will burn you out faster than working 80 hour weeks for a group of people that don’t give a shit that you did it for them. That you missed out on breakfast and dinner with your family because you put their needs in front of your own, not because you had to but because you wanted to. It will leave a bad taste in your mouth for a very long time.
The best thing to do is listen. You may not agree with the users. After all, they don’t always WANT you to solve their problems unless it is done on their terms. Never-mind that you are paid to solve problems. Sometimes solving the problem is not a solution they are looking for. Sometimes they just want to bitch and you just need to take it.
I’ve learned a lot about this from my marriage and from White Men Can’t Jump…
When I said I was thirsty, it doesn’t mean I want a glass of water.
It doesn’t?