When people ask me to explain the difference between agile and waterfall methodology I usually give an analogy based on the construction industry:
The Construction Industry as “Waterfall Heaven”
Construction Site for The Oaks High School Retford
© Copyright B Hilton and
licensed for reuse under this Creative Commons Licence.
- When you are building a home it is often quite possible to know in advance exactly which steps to take and in which order. You simply cannot start with the roof, continue with the walls and finish with the basement. You cannot apply the wall paper before the walls. Furthermore, you can easily predict how much time is required for applying X square meters of wall paper, or Y roof tiles etc. There are manuals available for project managers containing a wealth of data on standard work and its cost etc. In effect, it is possible for a competent construction project manager to create a plan for a project like this and to follow it with no small chance of success.
- In software engineering on the other hand, things are a lot more difficult to predict. You cannot know in advance how long it will take to implement requirement X. This is because you are not assembling house number 1000 in a long line of identical houses. The whole idea of software engineering is to take something which is more or less unknown and transform it into something well known. So while designing the software is not really a predictable process impressing it on a CD and shipping it is.
Risks Levels Have Increased
Well, it turns out that the construction industry is not all that predictable anymore either. According to Everts et al. a lot has happened in the construction industry in recent decades. Where there used to be 70% of construction taking place on virgin land at the edge of the city with relatively predictable conditions there is now 70% of construction taking place in already built-up areas with of course a much higher level of unpredictability. Also, at least 50% of construction work is not new buildings but repairs, remodelling and the like. Working with old buildings is naturally much more prone to surprises, just like working with old software…
Meeting with Finnish Linux User Group people in WilliamK bar.
© Copyright Arto Teräs and
licensed for reuse under this Creative Commons Licence.
Tightening the Waterfall or …
So far, the response of the construction industry have been to increase bureaucracy by generating more paper work for incident reports, change requests etc. If you are in the software industry, you will recognize this instantly…
… Move to Agile
Everts et al. takes things one step in another direction by surveying which skills would be needed and/or are lacking among construction project managers and building project managers in order to be able to work in a more agile way. They lists skills such as:
- Negotiation skills
- Cultural awareness
- Conflict management
Conclusion – Not a Waterfall any Longer
Skills which are equally useful for a software engineer or manager! And that’s not all. With smart buildings the software component of the construction work is increasing. Intelligent building of intelligent buildings will be a new and major challenge for the construction industry. I guess I will soon have to switch to another example when I want to explain under which circumstances a non-agile project management style is most appropriate.
References
[bibtex file=http://www.citeulike.org/bibtex/user/greger/tag/20110831b?fieldmap=posted-at:posted-date&clean_urls=0]
Interesting. I wrote about Agile construction earlier this week.
Construction projects can be Agile! http://agilescout.com/lean-agile-in-construction-…
Hey! That's a really interesting article you wrote there. What do you think about the surmise that construction project managers lack certain social skills to help make them more agile?
Pingback: Waterfall, Agile and the Construction Industry | Smart Engineering Management
Pingback: 4 myths about software development productivity - Greger Wikstrand