Sunday, September 6, 2009

Programmer profitability

How profitable are you as a programmer? Have you ever asked yourself that question? This is a tricky question, so let me give you a hint: it would be more profitable for you as a programmer to be better at what you do? I don't say if it would be good for you to be better programmer, but it would be more profitable? OK, enough with the questions.

It is accepted by everyone that programmer productivity varies by a large margin (by 10 times or more, but the numbers are debatable). So let's say you are twice as productive as the average programmer. Are you paid twice as much? Probably not. So a programmer's pay is not directly proportional with the value he is providing. Probably if you're twice as productive as the average programmer you'll be paid with let's say x% more, where surely x is smaller than 100. This sounds wrong, but it's true. And it's true because the work a programmer is doing is extremely hard to quantify. A programmers work cannot be quantified like a manufacturing task for example, where you could be paid by the number of items produced. But a programmer doesn't produce items by the number, even if there is an old practice to measure programmer’s productivity by the line of code they've written. But this is the worst measure of a programmer. A programmer could solve a problem in half the code and twice as elegant than another one, and that doesn't mean he is less productive, quite the opposite. But this is another story.
Not to mention another tricky aspect, a good programmer can come up with solutions to problems that the let's say the average programmer couldn't crack at all. And that's invaluable.
So from an economical point of view you're less profitable if you are a better programmer. So how can a programmer be motivated to be better at his job? We could blame this aspect for the ever decreasing level of competency in our industry, yet another story.

If being a better programmer isn't profitable for you, this means it is more profitable for the employer. And it is, because you get twice the value at less than twice the price. So it's a bargain for the employer to get the best programmers out there. But unfortunately usually most of the companies hire on number of programmers, not on value. You usually hear 'we need x more programmers', not 'we need y programmers with that level of skills or z with another level of skills'.

In the end I have a small advice for you: be a better programmer for yourself, because it feels good to be one of the best, and not because it gets you more money, because it doesn't scale up.