Steve Jobs On The Payoff Of A Great Employee
Steve discusses how the typical difference between the average of something and the best of something is typically 30%-50%. The example he uses is the difference between the average New York cab ride and the best New York cab ride. Maybe the best cab ride is 30% better than average. But the difference between an average programmer and the best programmer is more like 25:1. I think that’s exactly right and it’s certainly been borne out in my experience writing software for a living.
The comparison I like to use is poets. In high school, a class is asked to write a poem. To a person, what’s produced is mediocre garbage. Maybe there’s 1 or 2 people in the class that submit something not outright vomit-inducing, but that’s about the best you’re going to get. There are only so many Shakespeares in this world. The difference between a great programmer and a mediocre programmer is like the difference between Shakespeare and the frat boy who sat next to you in high school English.
Most non-programmers don’t get this, and tend to assume the variability among programmer ability isn’t very much, and that programmers are fungible, much like swapping out hard drives. The difference between companies that make great software and those that just make software can in a lot of cases be traced to the quality of their programmers. And the difficulty of writing software, and the associated dearth of good programmers, is why so few software companies produce anything worth anything at all.