There have been some interesting posts lately asking the question, “if some programmers are 10 times as productive as others, why aren’t they paid 10 times as much?”. It’s a good question, though I don’t think the recent posts quite get to the heart of it.
Some have said that it’s a sociological thing — that we, as a culture, generally don’t accept great disparities in pay. Within a mediocre organization, that might be true. (James Kwak hypothesizes that the market price is set by these mediocre organizations.)
But markets tend to clear, which means that over time the value should accrue to the better performer. The 10x programmer at the mediocre company will have a great incentive to go out on her own; if her productivity allows her to take on 10 times as many clients, she will net 10x the pay.
The problem is that the original question is a fallacy. We don’t know, a priori, who these 10x programmers are. Simply asserting their existence, and then musing about their pay, puts the cart before the horse.
The 10x programmer doesn’t exist until they do. I agree with John Cook that measuring productivity is hard, but we do have a way. Call it Sherman’s Fairly Obvious Productivity Test: If our newly-independent programmer does not make 10x the money, we must admit that she is not the 10x programmer we thought she was.
The essence of my argument is this: “productivity” is a metric in a vacuum. It’s incomplete and unempirical. The definition of productivity must have a relationship to the value of what is being produced. And the only way to measure the value is market response.
This market response might be measured in money that accrues to the programmer; in the case of open source, it might be measured in the hard value derived by users of the software (e.g., the ROI of a company adopting Linux).
An expertly-prepared steak, served to a vegetarian, does not make one a great cook. Driving a Prius in the wrong direction is not fuel-efficient.
And so the ability to solve technical problems, with great wisdom and elegance, does not a “productive” programmer make. The productive programmer must prove the ability to deliver things of value to their customer, broadly defined. Anything short of this test is academic.
PS. In fact, I do think these 10x programmers exist: they create startups with the windfalls that you hear about. They go by the names of Bill Gates, Linus Torvalds, Paul Graham, etc.