Software Development Like Building a House?

I am sure that I read somewhere years ago that software development was like building a house. You get an architect to design it based on your needs (2, 3 or 4 bedrooms, lounge here, indoor outdoor flow etc…). At this stage you can be agile, change things around to suit you better, change your mind on things. You talk with an interior designer to help you choose the right colour scheme, kitchen and other bits and pieces so that the style fits with what you want. If they are good, they will offer advice about the architecture to make sure it is usable. I liken this to the job of a BA and the Designers (not an exact match but you get where I am going…)

Next you hire experts (builders, plumbers, painters…or developers and integrators in the case of a website) to build the house based on your designs. This is how I see the build process of a project. You have  a project manager, you are the tester (making sure things are built how you expected) and then you have a house.

You move in and it doesn’t stop there. You keep it clean, repaint when it needs it, fix the taps when they start dripping. Just like you need to support an application. If your needs change (for example you have another child) you enhance the house by adding another bedroom. Eventually the house will no longer fit your needs, so you buy a new one.

So, I understand this metaphor well. But how does agile software development fit? I’m not sure, and no one has ever explained this to me using a metaphor that makes sense to me. I am sure there is one out there some where. Does agile development work for all projects, or just some and not for building houses?

I will do a little research over the next wee while and see if I can answer any of my own questions. If you have any great metaphors, I would love if you could point them out to me :)

Comments:

3 Responses to “ Software Development Like Building a House? ”
  1. I believe the metaphor is that agile and traditional construction projects are NOT the same. Software development is by nature less repeatable than construction work - or else there is already a packaged software a la MS Office.

    Having said that I can only tell from my experience that applying agile principles like continuous feedback will improve the results in construction projects. You will actually get the house you want rather than what the architect had in mind ;)

  2. Thanks for the feedback :) have you got a better metaphor for me? It could be the content for my next post :)

  3. A lot of people have tried to come up with metaphors and I can’t say that any of them is extremely compelling. Try this one: Running a restaurant (http://iface.wordpress.com/2006/07/22/software-development-is-like-running-a-restaurant/)

Leave a Reply