27 May 2009

Incompetence is the Most Powerful Force in Software Development

Incompetence is the most powerful force in software development. It's like dark matter. It makes up the vast majority of the observable software development universe but nobody has discovered how to harness its power - for either fun or profit. This doesn't stop people constantly trying.

In the many software development shops I admire, it is universally avoided. For example, at Atlassian, we concentrate on how to profit from software development using the best people we can find. I think we're resigned to the intractability of utilising incompetence.

For some, however, the allure of the ready availability of incompetence is too much to resist, and besides, it accumulates like lint or administratium. Only the good people leave. So why not harness the immense power of this abundant natural resource? Unfortunately incompetence is a force that can only be used for evil.

To a businessperson, incompetence is such an "obvious" business potential. It's tantamount to turning lead into gold. There is a desperation in business to believe that it can work and that there isn't some inherent value missing from that raw material. The rule applies for all skilled specialists, especially of newfangled, esoteric or otherwise incomprehensible arts.

In software development there's a long legacy of tools vendors preying on this desperation as they sell software that purports to make it possible for muppets to perform like competent professionals. No clue required. I have some future posts lined up on this topic, so stay tuned for some bile.

This post continues my apparent pattern of physics metaphors for software development:

The Laptop Law of Relativity
Quantum Mechanics and Unit Testing
When a Team Gels: a Motorcycle Powerband

So unless you've worked out how to turn lead into gold, avoid it or risk it all. Everyone knows, like a misconfigured hadron collider, incompetence can cause your project's universe to implode.


  1. Heh heh. You could just get the incompetent developers to write the documentation ;)

  2. Ha! I'm sure that would be a disaster.

  3. unfortunately, the only good documentation people I've met were also good developers. bad developers make for even suckier tech writers.