Tuesday, December 11, 2007

Programmers significantly underpaid

I met a friend the other day, an excellent programmer who told me he was going to law school and the main motivation for that was apparently money. It made me ask myself the question: “are the programmers underpaid? “.

I started recalling all the IT groups I have been involved with in the last 15 years and then I also spent a bit of time looking at job boards to see what kind of compensation is being offered for programming positions. After spending a couple of hours thinking about it I concluded that the answer to “are the programmers underpaid?” is both YES and NO and the reason for that is the word programmer which is not specific enough.

In the real World there are two groups of programmers:
- the real programmers – those who have a solid knowledge of the theoretical foundation of the computer science, the ones who truly understand “the stuff”, the ones who get it done quickly and efficiently and do it right the first time, the ones who represent only 20% of any IT department out there but carry 80% of the load - in short those guys and gals are the ones who know what they are doing;
- the pretend programmers – those are the ones who lack understanding of basic principles, who tinker around for weeks with projects that should take hours, ones who usually master the art of “pretending to be” and are capable of presenting themselves as being highly knowledgeable to an audience that is not capable of probing deeper than the thin layer of knowledge that they have. Those are the fortunate ones who have gotten a “lifetime scholarship” on the IT department of some organization.

After coming up with this classification the answer to my question became crystal clear: the real programmers are significantly underpaid (see the argument below), while the pretend programmers are overpaid. In total as a big group of programmers they are apparently fairly compensated – after all it is the free market that has dictated the levels of compensation we see today.

So why do I think real programmers are underpaid? Well, here is my simple calculation: let’s take an average salary of $80K / year and divide it by 52 weeks that rounds to about $1.5K per week. Now, a real programmer, as I am sure you all know, puts in an average of 60 hours of work per week (not accounting here for the fact that even after those 60 hours he/she is still thinking and reading about how to deal with a challenge, how to more efficiently handle a process etc.) – that translated to a pitiful $25 / hour. Some may disagree with me on the “pitifulness” of the $25 / hour considering that the minimum wage posted on our office hall says $5.85 / hour, but, I can bring plenty of examples to support my statement – examples like my cousin who just started working for a railroad company on the maintenance and makes $27 / hour (mind you no experience and no education) or my next door neighbor (lawyer with experience and education) who won’t start talking for less than $300 / hour. So, where does a real programmer fall in this wide spectrum of abilities and compensations – what I know is that if you consider the intelligence, the education, the sheer amount of work they have put into gaining that education the real programmers are at the top of the spectrum but unfortunately, when it comes to compensation they are between the McDonalds kids flipping burgers and skilled laborers! Sad!

So, what is wrong with this picture and what can one do to correct it? Well, I will leave that for another day – for now, I will go ask for a raise :)


Hans-Eric Grönlund said...

Interesting post! But, it's not as easy as to say that the elite programmers are underpaid.
It's all about business value. The systems and the applications we produce must in the end bring back more than they cost to produce, and we should be paid accordingly. But as you indirectly point out: Our business is currently overpaid, and I've seen many "great" programmers, with all the right education, not pulling their weight.
We must either become more efficient, or accept a decline of salary.
I think we're on the right track though, with agile and all.

I wrote more on this subject on my weblog some time ago: http://www.hans-eric.com/2007/11/28/the-firepower-of-teams/


Steve said...

Perhaps the reason is that the first group is disproportionately tied to increasingly obsolete languages and platforms.

Nick said...

I don't disagree that there are times in which software engineers work 60 hours a week or even more. But if your average week (including vacation and holidays) is that busy, you need to have a talk with your manager about your schedule. If every week is a crunch week, someone needs to do a better job planning.

And regarding your neighbor the lawyer, are you suggesting that lawyers don't do any work when they are not on the phone? Plus a good portion of that fee probably goes to the firm (I'm thankfully not that familiar with a law firm's billing practices though, so I could be wrong). Anyways, I'm sure the average lawyer doesn't make 12 times the average programmer (especially since they often work much longer hours), as that would put them making close to a million a year.

sal said...

you can remove the word "programmer" since this 80/20 rule is in place for most jobs in most organizations.

Carl Rosenberger said...

Some misconceptions in this posting:
- Working more ( 60 hours ) is not a sign of a good programmer. Very strong people work less because they know it makes them do smarter stuff. Pair programming is very strenous and it doesn't work to pair for 60 hours a week. I dare say that If I pair for 30 hours a week, I produce more than anyone else in 60 hours. If you do a lot of pair programming: You can have a life too.
- The world is not black and white. We have a couple of very good people, clearly in the top 20% and some superstars. Superstars can give the entire company a new kick.
- Superstars at delegating can make affordable young talented people ( you call them "not programmers", but they may just be less experienced and frustrated from the work they get ) become superstars themselves (from being worse than average in the beginning).
- Life is not only about money. It can be very rewarding, to start your own company, to get paid very little and even to fail with your own company.
...if you lead your life your way and are aware of the privilege to do that.
...in comparison to one billion people on this planet who have problems to get fresh driking water every day.