Yet Another Over-Reaching Software Development Analogy

Software development has been compared to construction and, more recently and compellingly, gardening.

I’m here to tell you friends that as usual, everybody’s wrong. Software development is like asteroids. Specificly, Asteroids the video game.

Early on in the “life cycle” of many software projects, money is spent on a bug database. Required fields generally include a brief symptomology, version information about the afflicted software, and a log date. Less generally they include steps that might be taken to reproduce the problem, the name of the tester who found it, and a severity rating necessarily relative to that tester’s own unique temperment.

The data field I have not yet seen, but bet would be really useful is the diameter of the bug.

As anyone who has spent time piloting a crudely-triangular spaceship beyond the orbit of Mars knows, asteroids don’t magically vanish upon contact with artillery. Instead, they break apart into multiple, smaller asteroids. It’s the same with software bugs.

The amount of time remaining in the wave/project is only loosely correlated to the initial number of asteroids. A really big asteroid might exceed a kilometer in diameter. Blasting it will only serve to increase the chance of a collision. Shooting an asteroid doesn’t actually help matters until it can be completely pulverized, or, perhaps more realisticly, knocked into an orbit that sends it out of the asteroid field (and hopefully not towards any planets you are friendly with.)

By way of analogy, any reliable estimate of the time remaining to complete a software project should involve a survey of not just the number and severity of outstanding bugs, but also their diameter.

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-Spam Image