3 ms·
It never had meaning other than as a feel-good expression of "some programmers are much better than others." The original "scientific" basis was a paper in the
by jdlshore 7y ago
It never had meaning other than as a feel-good expression of "some programmers are much better than others."
The original "scientific" basis was a paper in the 60s (ish?) that found a 10x difference between the time taken by the best and worst programmers to complete a task. It excluded people who didn't finish the task at all.
The actual focus of the study was to study productivity differences between off-line (punch-card) programming and on-line (at a terminal) programming. Remember, this was the 60s.
The 10x finding was a side effect of a small study that has no applicability today. I'm not aware of any serious attempt to replicate the findings, probably because they're not very meaningful:
1) The 10x difference was between best and worst. This is a lousy metric. A better metric might be difference between best and median.
2) Productivity was defined as time for an individual to complete a small program to run on a single timeshare computing system. This doesn't tell us anything about modern real-world productivity, which involves working in teams, on distributed systems, with vastly larger development ecosystems.
In order for "10x" to be scientifically meaningful—to be anything more than another one of the stupid tribal wars programmers like to engage in—we would need to: Determine how to measure real-world productivity [1]. Use a better metric than best-to-worst. Pay for and conduct a non-trivial study.
Ain't nobody got time for that.
[1] https://www.martinfowler.com/bliki/CannotMeasureProductivity.html https://www.martinfowler.com/bliki/CannotMeasureProductivity...
- cgiles 7y ago> we would need to: Determine how to measure real-world productivity [1] I submit to you that we would be having the same arguments no matter what study was done, because it could always be argued that whatever small-scale thing would be measured, and whatever metric was used, doesn't reflect the full complexity of reality. We all know that some programmers are better than others. But actually quantifying that would not be in anyone's interests. For programmers, it would mean hard metrics to rate our performance, and people would be paid differently based on these metrics. "Bad" programmers, as defined by this hypothetical metric, would lose money and career opportunities. "Good" programmers would earn the wrath and envy of their colleagues. From a manager's perspective, hard metrics would encourage gaming the system and would generally not encourage team play. So it is better off where it is. People who write code slowly can argue that they are really more productive because they take time for testing and collaboration and making documentation and making things legible, and that people who write code quickly are making unmaintainable messes. And people who write quickly have a prima facie case.
- duxup 7y agoHumans are resourceful. Any metric can / will be gamed.