Monday, December 05, 2005

Darwinian Software Development

One of my old bosses scared the hell out of me. She described the first release of the software we were working on as like a shiny new car rolling out of a garage that runs perfectly first time. Needless to say the project failed and it completely dot-bombed. Why? She was managing the software development yet didn't understand the fundamental nature of the beast.

Software must be malleable. If we're looking for metaphors I'd say it has more in common with genetic engineering than mechanical engineering. Software needs to survive in harsh environments and must adapt quickly. The adaptation process in nature is cruel but effective: survival of the fittest.

If our software is going to thrive in its environment we need lots of ideas (mutations) to be generated but only the best survive - until the environment changes again - and the process repeats.

0 comments: