at XP Day France today we debated whether software is or should be an industrial process or an artesanal one. It's always interesting to explore new analogies for software development. Car manufacturing was mentioned frequently.
Just for fun, I came up with some more. Sofware is like:
- Evolution of Species
- Stock Trading
I'm not sure where any of these fit in the industrial-artesanal dichotomy. What they all have in common is competition. The software industry is a whole bunch of memes competing for space in your brain. Competing methodologies, platforms, frameworks, approaches, languages ...
We - developers, users, IT departments, corporate clients - feed software memes with our brains. We take a bet on who will win - object/functional, java/c#/ruby, eclipse/intellij, windows/linux/mac. And our gamble affects the outcome. Kind of like voting. Or trading. Or evolving.