I just read "Linked" by Albert-Laszlo Barbasi and he talked about different kinds of networks. One example is the number of inbound/outbound links you find on a highway map versus a map showing links between airports. The highway map gives rise to a normal statistical distribution with only a few towns having so many or so few roads in/out that they fall far from the mean.
The airport map is a different story. There are many airports with just a few connecting flights and there are just a few airports with a large number of connections. When you make a plot that shows number of connections on the x-axis and the number of airports having that many connections on the y-axis it shows a power law. The graph is very high near the y-axis and drops off as you move to the right. Finally you get to the large airports like LAX, Chicago, and New York.
I bring this up here because I think the issue of programmer pay and productivity has similar properties. The salaries are distributed normally with a mean and the vast majority earning within 2 standard deviations. If you could measure productivity of each programmer and make a graph that showed the productivity level on the x-axis and the number of programmers working at that level on the y-axis then I don't think the graph would look like a normal distribution. Rather I think it would follow the power law just like the graph of airport hubs.
I know this is somewhat speculative on my part but I think it could also be that the top programmers are so productive because they are highly connected in terms of programming concepts and techniques. The article mentions their ability to come up with alternative solutions. I think they get like that by working on different projects over time. This is also how the power law networks (also called 'scale free' networks) are thought to form in other areas according to the book.
If that is true then I don't think you would expect to see people who are 10X more productive than the average. The tails of the normal distribution fall off very quickly. I think most people who have worked in the industry can think of at least one programmer that they have worked with who was 10X more productive than the average.
yes there are points under the curve out at 10X the mean but they are very, very rare. The normal distribution falls off a cliff. I don't have the reference in front of me but something like 99.6% of the population will fall within 2 standard deviations of the mean. This same issue comes up when people try and predict something like the daily fluctuation of the Dow Jones Industrial average using a normal curve. They think that there are random swings up and down but that large swings of 500 points are more are very unlikely. Then those large swings come along and show everybody that it isn't smart to use the normal distribution to try and model the absolute change in the closing price.
The main point here is that programmers who are 10X more productive than the average coder seem to be not so rare. Many people have stories about having worked with guys like this. Therefore I don't think you should use the normal distribution to model the distribution of productivity in programmers. I think there are many guys at the low end of the scale and it drops off slowly as you move into the higher productivity. And NO you can't include the negative x-axis to get a symmetric, "normal-like" distribution. In this model the negative values on the x-axis don't mean anything.
I would have to disagree on two counts. The first point is pedantic, but, in the standard normal distribution, half the curve is over ten times greater than the mean. Of course, that's cheating, since the mean is zero, but it's not impossible for the relationship between the mean programmer productivity and the standard deviation to allow for large number of programmers with 10x the mean productivity.
The catch is that any normal distribution which allows for large numbers of 10x programmers requires large numbers of programmers with negative productivity. However, I disagree that those values are meaningless. Rather, it simply indicates a programmer who makes code worse. I would readily argue that, for every 10x programmer, there's at least two who create more bugs than they solve.
Ok, I spent way more time thinking about this than I should have :)
When we measure human attributes they are almost always normal distributions, I see no reason that programming ability is any different. But, maybe tools allow good programmers to magnify their ability more than poor programmers. If that's the case then we'll have a lopsided normal curve, and that sounds plausible. But, I'm highly skeptical of the idea of "productivity" being a simple metric and that 10x means much of anything.
However, I'm quite certain it's not a power law :)
So you think it's meaningful to talk about working programmers with negative productivity. But competent management would fire or re-task such workers. Perhaps negative management skill is also meaningful, then.
The airport map is a different story. There are many airports with just a few connecting flights and there are just a few airports with a large number of connections. When you make a plot that shows number of connections on the x-axis and the number of airports having that many connections on the y-axis it shows a power law. The graph is very high near the y-axis and drops off as you move to the right. Finally you get to the large airports like LAX, Chicago, and New York.
I bring this up here because I think the issue of programmer pay and productivity has similar properties. The salaries are distributed normally with a mean and the vast majority earning within 2 standard deviations. If you could measure productivity of each programmer and make a graph that showed the productivity level on the x-axis and the number of programmers working at that level on the y-axis then I don't think the graph would look like a normal distribution. Rather I think it would follow the power law just like the graph of airport hubs.
I know this is somewhat speculative on my part but I think it could also be that the top programmers are so productive because they are highly connected in terms of programming concepts and techniques. The article mentions their ability to come up with alternative solutions. I think they get like that by working on different projects over time. This is also how the power law networks (also called 'scale free' networks) are thought to form in other areas according to the book.