Hacker News new | ask | show | jobs
by hga 5774 days ago
The variation in productivity between programmers is somewhere from 1 to 10 to 1 to 100 (although I like to point that for a certain level of problem difficulty there's a cutoff below which productivity is 0 (ADDED:) ... and then there are those who's contribution to the organization is negative, but that's a different problem...).

If it were the case that "salaries reflect the value you provide to your employe" we'd see some people making 10, 25, 50 times as much as "average" or below programmers. And I'm sure you can figure out a bunch of reasons why that would never fly in addition to the other replies to your query.

3 comments

> The variation in productivity between programmers is somewhere from 1 to 10 to 1 to 100

I agree with your sentiment, but I think you're missing something important: it is possible (and, unfortunately, quite realistic) for a low-level programmer to be "negatively productive". For difficult problems, it may simply not be possible for someone without the required skill and experience to find a solution. Even for easy problems, though, it's possible that the solution found by a weak developer will in the long run cost more than the benefits it offers, for example, because they reduced the overall design quality of the system and later a stronger developer has to spend their valuable time fixing the design to clear the technical debt.

You're very correct and I added a note to that effect apparently while you were composing your reply. And your point about the easy problems is really important to highlight (and wasn't one I was thinking about).
The question I have about these 100x (or 10x) productive programmers is why they wouldn't jump ship on employment and sell their 100x productivity on a project basis? Presumably they would make multiples of their salary if they are really multiply productive.
Some of us did. As a contractor, you certainly can earn a significant multiple of the hourly rate you would make as an employee in most companies. If you set up your own business and build your own stuff, then you have almost astronomical potential: the software development business has low barriers to entry, and the right idea can scale from a small team to serving thousands or millions of customers.

However, it's not as simple as that: you absolutely must have a broader set of skills to work effectively in these ways. There are many management and communication skills that you wouldn't need much working in a technical role as an employee that are quite simply essential to working independently, and more still if it's not just your own work to be organised but a whole team/company. Also, you are operating without the safety net that being an employee provides: you typically bear all of the risk if you're on a high-margin fixed-price contract that overruns by a year, or if you put your own money into starting a company and your idea just doesn't work out.

A lot of us including myself just don't have what it takes to work on a multi-client consulting basis. Plus at least back before the net became really big Gerald Wienberg said that the correct hourly basis to set is 5-6 times what you want to earn because of all the overhead and downtime that comes with this business model. That's still a factor if you're charging on a project basis, which is extraordinarily dangerous in our field due to the inability of our customers and ourselves to correctly scope a project before it starts.
> we'd see some people making 10, 25, 50 times as much

Ha, I hadn't thought about this aspect at all, thanks. But would you necessarily need to assume the pay should be directly proportional to performance? Perhaps earning double as much when you're 10x more effective is more reasonable, and then triple at 100x - say, a logarithmic scale? Also, productivity and hours spent are both only partially reflecting the total value someone brings.

Well, in any case, I was thinking about _some_ kind of system where your value would be expressed and not some irrelevant metric like age.

I think it depends how you define "effective" and "performance."

For reasonable definitions, I think compensation would have to be directly proportional to effectiveness, such that being twice as effective results in twice the compensation.

That would be the case if "effectiveness" meant "your responsibility for the firm's revenue." Otherwise, what are you measuring, such that you can be "10, 25, 50 times" as effective? Efficiency of coffee making?