Software Productivity: The Only Two Things That Matter

Joel Spolsky's review of Dreaming in Code makes the point that Chandler is yet another high-quality data point that, contrary to the initial exhortations, Open Source is not a significantly-more-productive development methodology. It turns out that Open Source is an interesting business model (somewhat to my surprise) and that free-as-in-beer is a killer competitive strategy (Eclipse or, for that matter, IE and not surprising to anyone).

This is not to bash Chandler's ultimate deliverable: the Mozilla project would be a similar datapoint and Firefox is a great piece of software (and my choice of browser). OSS can certainly be high-quality (Apache being another exemplar). But at this point it's clear that open-source development is not inherently fast. Joel fingers lack of analysis and design as Chandler's shortcoming, but veterans (should) know that promoting A&D as inherently speedy is laughable.

I'm all for spending vast amounts of energy debating the incremental issues of languages, tools, development methodologies, design paradigms, and so forth, but let's be clear that of all the things we know about software development, there are only two things that we know to be inherently highly productive:

  • Well-treated talented programmers; and
  • Iterative development incorporating client feedback