This approach is so common because so much of what we do in software projects is exploration – we don’t know what we don’t know and we’re finally acknowledging the uncertainty that surrounds much of software development. This is far from a new approach, over 20 years ago the Barry Boehm coined an acronym “IKIWISI” – it stands for “I’ll Know It When I See It” – normally preceded by “I don’t know what I want”.
Critics of software development frequently ask why software engineering can’t be as predictable as civil engineering. The reality of civil engineering is often very different, as I learned on an airline flight a few years ago. I sat next to an award-winning Australian architect and we got talking about the differences between civil and software engineering. He described what happened with a property he designed:
The building had been carefully planned, detailed designs produced and virtual walkthroughs prepared and agreed to. The placement of the building on the section and the position of the doors and windows were carefully worked out to provide the best possible view. Once the foundations had been poured and the ground floor framed up he walked through the skeleton of the building and checked the view from every window and door space. He noticed that the placement of a large sliding door gave a good view out to sea, but if he could move the door about two meters to the left the view would be fantastic. The change was made (over the objections from the builder) and when the building was finished it won an award as an architectural masterpiece. IKIWISI in the building industry!
For a concise discussion of the differences between Software Engineering and other engineering disciplines see http://www.knowledgerush.com/kr/encyclopedia/Software_Engineer/
Another Agile practice that has a mirror in civil engineering is Adaptive Reuse – refactoring buildings for new uses. See http://www.infoq.com/news/2010/01/adaptive-reuse
Another IKIWISI story in home construction can be found here: http://devdaily.com/blog/post/best-practices/ikiwisi-software-development-story
Posted by Shane Hastie