When I teach iterative approach in software development, I use to justify it with an analogy that I have borrowed from Kent Beck: managing software is like driving a car; you permanently need to adjust left and right if you don’t want to have an accident. That’s a fine analogy and it always worked for me. Being myself deeply convinced that iterative approach is a completely natural human behaviour I have added my own list of images, examples and stories to reinforce the concept. For instance, I often ask my audience in autumn, how many in the classroom know precisely what they are going to do for Christmas eve. At best I have a couple of people saying they do and all the other ones showing uncertain faces. If I ask how many have a rough idea of what they are going to do, most hands come up. And all in all, we all know that Christmas will come and that we’ll do something special on the 24th and 25th. Interestingly, you will notice that nobody is seriously contemplating the idea to postpone Christmas because we would not be ready. So, we deal with it!
I often use another example and ask my delegates to plan a year long trip around the world to start in 3 months time. To keep a long story short, we always end-up with at best a planned trip for the first weeks and a lot of unknown to adapt to the situation. I never had the case of someone describing week by week what they will be doing, visiting, and where they will be sleeping or what transportation they will use. But they can all assure that they [...]