Steve Jobs argues the gap between good and great software engineers is roughly 50-to-1 in performance. He describes firing underperformers as one of the hardest parts of running a company, but says maintaining that talent level is essential to his job.
Questions this video answers
About 100-to-1 ("about 100 to 1 or more").
Approximately 25–50-to-1 (Jobs cites "probably 50 to 1, 25 to 50 to 1").
Chapters
I've always considered part of my job was to keep the quality level of people in the organizations I work with very high. That's what I consider one of the few things I actually, you know, can contribute individually myself versus the team that I work with, is to really try to instill in the organization the goal of having only a players. Because in the field that I'm in, like in a lot of fields, the difference between the worst taxicab driver and the best taxicab driver to get you across town Manhattan might be 2 to 1. Best one will get you there in 15 minutes. The worst one will get you there in half an hour. Or, you know, the best, the best cook and the worst cook, maybe it's three to one. You know, pick something like that. In the field that I'm in, in software in particular, the difference between the best person and the worst person is about 100 to 1 or more. The difference between a good software person and a great software person is probably 50 to 1, 25 to 50 to 1. Huge dynamic range. And therefore I have found, and not just in software, but almost everything I've done, it really pays to go after the best people in the world. It's painful. It's very painful when you have some people that are not the best people in the world and you have to get rid of them. But I found that my job has sometimes been exactly that, to get rid of some of the people that didn't measure up. And I've always tried to do it in a humane way, but nonetheless, it has to be done, and it's not ever fun. Is that the hardest and most painful part of managing a company, from your point of view? Oh, sure, of course.