(Disclaimer: I have not always followed what I have written below, as my co-workers would attest. I’ve learned and changed over time. People do that sometimes ::smile::)
Tech blogger Ellis Benus just posted a link to a post about programmer compensation entitled, predictably, Compensation. While an entertaining, obviously impassioned read, the overall sentiment is not one that I can agree with. And since that sentiment seems to be so common in IT, I thought I’d address some of its elements.
First, there’s this:
Most of [the software managers] are your average Econ 101 bean counting weenies. I can hear them now, “We can only afford to give three to five percent raises each year, because if we paid everybody what they deserved, then we would be spending too much. And what is it that these programmers do anyways?”
If most software managers are, in fact, “your average Econ 101 bean counting weenies”, how are they supposed to know what a programmer “deserves”? In my experience, the overwhelming majority of people simply do not understand what goes into software development and I think most developers (including the author obviously) would agree. However, if that’s true, how could they EVER pay someone what they deserve? What would they base it on? (See next paragraph for the answer!)
What’s the criteria for this “pay me what I deserve” scale? If it’s truly someone without a programming background determining the progammer’s worth, the only possible way they could pay him/her fairly is by trial-and-error, i.e. go through the experience of having both GOOD programmers and BAD programmers. This scale is necessarily relative in nature. After all, if you only ever had good programmers, how would you know they were good? Without sufficient experience, I don’t believe it’s possible.
And then there’s this:
A more likely scenario is that this bright young coder will finally break down and take a call from one of the bottom feeders, I mean head hunters, and he will land a job, somewhere else, making what he asked for, and taking all the things that you’ve taught him over to someone else. [. . .]
Oh no! Poor guy – he’s making what he asked for. Seriously, I get a little tired of the “poor me” approach some developers take. “The users are asking for something stupid” or “They’re making me do this”. So? You readily admit they have no idea what’s involved in your job. Does complaining about it serve a purpose? Unless your goal is to waste time and irritate folks who have constructive things to do, I don’t think it does.
We’d all do well to keep in mind that ANY relationship, work or otherwise, is made up of 50% one party and 50% the other. You each have responsibilities and options. In this scenario, the programmer exercised his right to better his situtation. The system worked as intended. End of story.
Next:
And guess what. In order to replace him, you are going to have to pay the new guy as much money as he was asking for in the first place. Plus that nice 15% fee to the head hunter. And now, because you were trying to be cheap, you have to spend even more than what you should have spent in the first place. And God knows, you’ll probably screw it up with this guy too, and thus the circle of life continues.
Maybe managers aren’t trying to be cheap. Maybe they’re trying to be fair and they’re just missing the mark. Hopefully, the manager will learn from experience, do some research, and offer better compensation in the future. When did managers stop being people? When did they become immune to making mistakes? Being afforded the opportunity to learn from mistakes? And growing as individuals? Why are people so quick to forget that managers are people, too? They have bad days. And they do dumb shit sometimes. You may not realize it, but so do you. Every day.
So managers don’t know what developers are worth? Well, neither does anyone else. If you don’t like it and don’t understand human nature well enough to deal with it, find a shop where you are satisfied or do something else for a living.
The rest of us developers will keep writing code and being nice to users. And we’ll be fine without you.