Samuel Chiltern answered
The Iterative Model is, basically, an underlying approach used in software development.
It aims to develop a system by moving through distinct stages in a cycle - each of which can be returned to later, as problems occur which need to be re-worked.
Contrast and Comparison with other Approaches
By comparison with the older Waterfall software development methodology, the Iterative Model is less rigid.
It focuses more on the process of planning, developing, and testing software - and then returning to revise the plan. Further development would then take place in the light of what has been learned.
By contrast, the Waterfall model steps through each phase in turn, in a linear fashion - and once the product has been developed, there is no provision to return to the planning phase.
The Waterfall model has been superseded by the trend for more responsive software development methodologies, which are all based upon the Iterative model in some way.
The Advantages of the Iterative Model
The key advantage is that this approach allows developers to break down the task of developing a system into a series of smaller tasks. These can then be completed separately, evaluated, and subsequently re-worked until the system performs adequately.
Knowledge gained from developing and testing these small sections can then be incorporated back into the development of other parts of the project.
Managing a project using this approach is easier too, since not every consequence and permutation has to be considered at the outset, before the project can get off the ground.
Another advantage of this approach is that, as issues are discovered, they can be fed back to the rest of the team, and solutions found whilst the project is still in development.
Disadvantages of the Iterative Model
Since the model is a cycle, the potential for iterative development to spin out of control and exceed its budget is immense. The cost-benefit of solving new problems that arise must therefore be closely-managed, and timescales and deliverables will still need to be defined and monitored.
Unlike the Waterfall model, where strict documentation of the entire development process is a design requirement, many iterative approaches favour lighter documentation.
This can reduce project overheads. However, there is a risk that under-documentation could lead to needless duplication of effort, and time wasted developing within a task with a poorly-defined scope.
It aims to develop a system by moving through distinct stages in a cycle - each of which can be returned to later, as problems occur which need to be re-worked.
Contrast and Comparison with other Approaches
By comparison with the older Waterfall software development methodology, the Iterative Model is less rigid.
It focuses more on the process of planning, developing, and testing software - and then returning to revise the plan. Further development would then take place in the light of what has been learned.
By contrast, the Waterfall model steps through each phase in turn, in a linear fashion - and once the product has been developed, there is no provision to return to the planning phase.
The Waterfall model has been superseded by the trend for more responsive software development methodologies, which are all based upon the Iterative model in some way.
The Advantages of the Iterative Model
The key advantage is that this approach allows developers to break down the task of developing a system into a series of smaller tasks. These can then be completed separately, evaluated, and subsequently re-worked until the system performs adequately.
Knowledge gained from developing and testing these small sections can then be incorporated back into the development of other parts of the project.
Managing a project using this approach is easier too, since not every consequence and permutation has to be considered at the outset, before the project can get off the ground.
Another advantage of this approach is that, as issues are discovered, they can be fed back to the rest of the team, and solutions found whilst the project is still in development.
Disadvantages of the Iterative Model
Since the model is a cycle, the potential for iterative development to spin out of control and exceed its budget is immense. The cost-benefit of solving new problems that arise must therefore be closely-managed, and timescales and deliverables will still need to be defined and monitored.
Unlike the Waterfall model, where strict documentation of the entire development process is a design requirement, many iterative approaches favour lighter documentation.
This can reduce project overheads. However, there is a risk that under-documentation could lead to needless duplication of effort, and time wasted developing within a task with a poorly-defined scope.