But if it were true that there is such a vast programmer productivity/competence variance (you know, "10X"), there should be a lot more room for distinguished engineers or whatever you want to call them. Sure, if you assume a leadership hierarchy then the top is always going to be narrow. But do distinguished engineers (or whatever the best term is) have to necessarily have large hierarchy of less experienced programmers beneath them?
Or maybe "10X" is true, but it isn't realized due to whatever non-technical reasons (political, etc.)?
It depends on the work mix. I know at my current job, I am MUCH more effective at writing actual new code than the offshore team (for one thing, I actually like doing it, whereas they seem to put it off for days in favor of other make-work activity the company generates).
OTOH, I'm no better at filling out random paperwork than they are, maybe even less effective, since they will readily gamble that a sketchy answer in a form won't bounce back for clarification.
So, if there is a lot of low level busy work, you might as well hire entry level workers. Just don't let them build stuff that perpetuates more busy-work, or it can become a tough pit to climb out of ... and now I'm off on a tangent.
10x or 100x or whatever is probably only true along a certain dimension. I don't doubt that there are programmers who are both 10x and 100x above the median at writing a high performance journaling filesystems, or fast, stable, multidimensional PDE solvers for example. But If you average it out over every conceivable programming task you probably won't find many 10x programmers.
The other aspect is that just being good and fast doesn't make you money. You have to be good and fast at solving the right problem in the right way and then convince people to give you lots of money for that solution. If you can't do those last bits, you'll always end up working for someone earning more than you, no matter how good you are.
> But even if we assume it is not, it can't be measured which is why it is difficult to reward
But isn't it more measurable than what an MBA in a senior/executive position does? If being part of writing a large software system is complex and hard to get right, and hard to measure progress on (technical debt v.s. features, for example), I can't imagine that running or managing a system of people - which are much less predictable than system components - is less complex, and in turn easier to measure when you factor in all external factors and things that an executive can't really do anything about (even though he might be responsible for it on paper).
But I don't really know anything about the management world.
Or maybe "10X" is true, but it isn't realized due to whatever non-technical reasons (political, etc.)?