The iterative design model is a fairly new model when compared to the waterfall model, however it is growing in popularity for a number of reasons. Firstly, what exactly is the iterative design model?
The iterative design model is a dynamic model of design that involves multiple iterations of the design process, rather than just one (such as in the Waterfall model). The iterative design model implies repeated design, implementation and evaluation of a system. An aspect which is often feature in and works well with iterative design is prototyping, in the form of rapid prototype development. Iterative design also lends itself to User Centred Design (UCD).
Rapid prototype development has multiple benefits and as many prototypes as can fit into the allocated project time should be created.
The first benefit of iterative design is that it allows initial design mistakes to be overcome. It is rare in any project that a design is right the first time – in fact, it is usually hard to know the exact requirements of a project before implementation has started. In a linear model, after the design stage is over, it’s over. There’s no going back and modifying the design during the implementation stage. Whether your design decisions were good or bad, you are stuck with them and this can impact the final system you create. With an iterative approach, this problem is solved (partly). You set out your requirements, design the system, produce a prototype and then evaluate the prototype. You can then use what you have learnt from that prototype to redesign the system and produce another prototype. The idea is that the system improves with each iteration.
Secondly, as previously mentioned, during the requirements phase of a project you are unlikely to know the exact requirements of the system. As you realise more requirements or changes to your requirements later during the iteration, you can make modifications to the design on the next iteration.
Another benefit is that, in many cases, you will be working for and with a non technical customer (and possibly non technical users). They may not necessarily understand complex design documents or technical specifications. However, they do understand prototypes that they can play with!! It’s a lot easier for them to test a prototype, see it in action, and see the implications of decisions made during the requirements and design phases.
One thing that does have to be noted though is, as with any other design model, this isn’t perfect. And you most certainly can’t make huge errors due to carelessness and expect their to be no implications. Sometimes, initial bad design decisions cannot be overcome due to design inertia – basically some decisions made in the early stages of the project can have such drastic consequences or be so fundamental that it cannot be changed significantly enough to negate the initial bad design decision.
Overall, the iterative design model is a good design model, that is currently underused. Some businesses have become aware of its potential and have started using it with their software products with some promising results. The iterative design model is likely to increase in popularity in the future, but there will also be a place for the Waterfall model as well.
When choosing a design model for a project it is always important to consider which design model best suits the project and the circumstances surrounding it. There isn’t one model that is good for every project – some models benefit some projects better than others!