Wednesday, May 21, 2008

Murals and Skyscrapers

I think that everyone knows that the "like building a skyscraper" metaphor is thoroughly wrong for describing the process of building software. However, it doesn't seem to stop it being used again and again (and often clueless project managers are the worst offenders). I have a hunch that attachment to this metaphor might have something to do with why the same project managers have such a love affair with Microsoft Project. But that's another story altogether.

However, today I heard a thoroughly great metaphor for software, one that I haven't heard before, and it really resonated with my experiences building software. I really wish I could claim credit for coming up with this, but sadly, it was a colleague at my current consulting engagement. Tip o' the hat to Andrew. Nice work.

Anyway, the metaphor is a simple one and it goes like this: Software is like a bunch a people painting a mural. You all stand around for a while, maybe pencil out a rough outline, maybe mix some colours and sample how they look on the wall. Then you split up, and some of the team works on one part, and some on others, perhaps individually or in small teams. You come together regularly to assess progress and decide where to go next. There's generally someone in charge, in some form or other (or maybe not), and they might work on their own section, perhaps one of the most challenging bits. Every now and again, you take a step back, and there are some parts that you have to rub out, paint over and redo. It's collaborative and non-linear. Sure, you need an outline and some sort of plan to start, but the way it ends up is very much influenced by the process.

Not only is this a good metaphor for software in general, I think it's an espescially good metaphor for agile software development because it emphasises collaboration and iteration. I will be sure to use it next time I am trying to explain to someone why traditional project management tools are such crap for managing software development.

M@

No comments: