90/10 programming principal

On a newsgroup recently someone said: “Half of all programmers are below average.” I responded that that was not necessarily true. Certainly half are below the median, but it is remotely possible that only one programmer is above average. (I’ll leave you to decide who I was thinking of.)

I said this flippantly, but I was partially serious. It seems to me that 90% of the code that gets written in the world is written by 10% of the programmers. The other 90% of the programmers write the remaining 10% of the code (and the 10% then fix it.)

OK, this is snobbery. I know it. And maybe my numbers are a little skewed. Perhaps it’s not 90/10. Perhaps it’s 80/20 or even 70/30. But it sure isn’t 50/50!

I once consulted for a company that had 50 developers working on a simple GUI. This GUI was a flat panel touch screen upon which several dozen dialog boxes could be made to appear. These 50 developers worked on this project for five years or more. That’s 25 man-decades, 2.5 man-centuries! COME ON! Three guys could have done this in three months! My buddies and I used to joke that they had one developer per pixel and that each developer wrote the code for his pixel.

OK, so the manager was empire building. Some managers measure their worth by the number of people they manage rather by how much they can get done with how little. Still, I find this problem is not isolated. It seems to me that a large fraction (perhaps a majority) of all software projects are overstaffed by a huge factor.

I wonder if we’d get a lot more done in this industry if 90% of us quit.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: