Challenging the myth of individual programmer productivity
The article isn&#x27;t what I thought it might be.<p>The article doesn&#x27;t really challenge the existence of the 10x programmers but merely puts it in perspective from project management&#x27;s view.<p>It is mostly about not relying on the superprogrammers when it comes managing software projects because they are so rare and need highly complex free-form work field to execute their magic. Just merely hiring the best programmers and subjecting them to a working schedule and distribution of tasks designed to accommodate average programmers doesn&#x27;t improve overall productivity much and certainly doesn&#x27;t give you 10x or even 2x productivity improvements. This all makes sense and is probably known to people who manage software engineers and software projects.<p>The article does mention the high differences between the worst and the best programmers and says that it doesn&#x27;t make much sense to compare the best to the worst. But the 10x has always been used to underline the whole scale itself, or that order-of-magnitude differences exist in the first place. The best-to-worst can even be higher, from 10x to 50x, but 10x is the illustrative reference point. But that&#x27;s not the shocking property.<p>What&#x27;s really unsettling in this phenomenon is that if you take a seriously good programmer and compare him&#x2F;her to the near-magical best programmers, there&#x27;s still easily a 2-3x difference and that&#x27;s just unbelievable. For example, take the best programmer at your workplace and compare how much better people like Fabrice Bellard are? In other words, what&#x27;s the Bellard ratio of your co-worker? 2x? 3x? Are five fingers enough or do you need another hand?<p>Then take an established, skilled professional of any other more traditional field and make a comparison to the very best individuals on the same field: what&#x27;s the max skill factor you can find? The best race car driver to a good race car driver? The best golf player to a good, successful golf player? One point...what?<p>Higher multiples can be seen in fields that tie together more dimensions of skills into a more complex domain, such as stem fields. The best mathematicians or the best physicists are likely to be a lot, lot better than just good mathematicians or physicists. But in my experience the differences in programming are even greater. I tend to think that it&#x27;s because of the field of domains computing appears in the sweetspot where it is both bound by practical, physical limitations of hardware and unbounded, abstract theory and imagination together form a huge <i>complexity rabbit hole</i>. If computer science could proceed without the limits of processing capability and the speed of electrical circuits it would converge with mathematics to a closer degree, and things would be less complex. And if computer science would only focus on few simple things at a time like early relay computers it would resonate more with electronics and physics. But throw in a few million lines of code that has to do something useful instead of just being highly theoretical or something complex enough that a simple, practical approach is out of the question, and you&#x27;ve got the essence of programming.<p>In other words, it&#x27;s very easy to have things get very complex in computing and because we&#x27;re still bound by the limitations of cpu and i&#x2F;o we can&#x27;t allow ourselves to go too deep in that complexity just to be able to even run any of our programs within a meaningful time, it becomes a jungle of tradeoffs and to navigate that jungle you basically have to be able to considered everything that&#x27;s involved in it. That gets complex. And because handling complexity is <i>hard</i> it only makes sense that the very skill of handling behaves very exponentially: if the best decile is close to ~10x better than the worst decile, the best in that the best decile are likely to be close to ~10 better than the worst in the best decile.