The key observation is that, in most things in life, the dynamic range between average quality and the best quality is, at most, two-to-one. For example, if you were in New York and compared the best taxi to an average taxi, you might get there 20 percent faster. In terms of computers, the best PC is perhaps 30 percent better than the average PC. There is not that much difference in magnitude. Rarely you find a difference of two-to-one. Pick anything.
But, in the field that I was interested in – originally, hardware design – I noticed that the dynamic range between what an average person could accomplish and what the best person could accomplish was 50 or 100 to 1. Given that, you’re well advised to go after the cream of the cream. That’s what we’ve done. You can then build a team that pursues the A+ players. A small team of A+ players can run circles around a giant team of B and C players. That’s what I’ve tried to do.
Steve Jobs on the value of great engineers. This is an old quote, but an essential one.
I’m still surprised on a regular basis how poorly understood this is. The advantages of building a team of great developers are so numerous and pervasive that it’s difficult to overstate: one great engineer can do a better job than two or three mediocre engineers; one great engineer can do things that are simply impossible for other engineers to do; great engineers reduce the amount of bugs that end up in the code, reducing costs for both QA and project managers; great engineers blow deadlines less frequently than average engineers; and most importantly, great engineers want to work with other great engineers, so both hiring and retaining great people is much easier.
And, amazingly and against all notions of fairness or justice, great engineers are paid only fractionally more than average engineers. There are exceptions of course, but at most companies, the salary gap between a typical mid-level engineer and a great engineer isn’t even close to the exponentional difference in ability.