Iterative Waterfall Model – Software Engineering
What is the Iterative Waterfall Model?
The Iterative Waterfall Model is a software development approach that combines
the sequential steps of the traditional Waterfall Model with the flexibility
of iterative design. It allows for improvements and changes to be made at each
stage of the development process, instead of waiting until the end of the project.
The Iterative Waterfall Model provides feedback paths from every phase to its
preceding phases, which is the main difference from the classical Waterfall Model.
1. When errors are detected at some later phase, these feedback paths allow for
correcting errors committed by programmers during some phase.
2. The feedback paths allow the phase to be reworked in which errors are
committed and these changes are reflected in the later phases.
3. While the feasibility study phase often doesn’t involve frequent feedback, the
iterative nature of this model allows for revisiting earlier stages, including
feasibility, if new requirements or changes arise during later phases.
4. It is good to detect errors in the same phase in which they are committed.
5. It reduces the effort and time required to correct the errors.
6. A real-life example could be building a new website for a small business.
Process of Iterative Waterfall Model
Following are the phases of Iterative Waterfall Model:
1. Requirements Gathering: This is the first stage where the business owners and
developers meet to discuss the goals and requirements of the website.
2. Design: In this stage, the developers create a preliminary design of the website
based on the requirements gathered in stage 1.
3. Implementation: In this stage, the developers begin to build the website based
on the design created in stage 2.
4. Testing: Once the website has been built, it is tested to ensure that it meets the
requirements and functions properly.
5. Deployment: The website is then deployed and made live to the public.
6. Review and Improvement: After the website has been live for a while, the
business owners and developers review its performance and make any necessary
improvements.
This process is repeated until the website meets the needs and goals of the business.
Each iteration builds upon the previous one, allowing for continuous improvement
and iteration until the final product is complete.
When to use Iterative Waterfall Model?
1. The prerequisite of being well-defined and comprehended.
2. The development team is gaining knowledge about new technologies.
3. Certain characteristics and objectives carry a significant chance of failure in the
future.
Application of Iterative Waterfall Model
Below are some application of Iterative Waterfall Model:
1. The essential needs are established, but as time passes, the finer points may
become relevant.
2. Programmers have a learning curve to climb when they utilize new technology.
3. The resources needed to complete a large project are constrained, hence on a
smaller scale, the automation is more temporary.
4. Very high risk as the project’s objective may occasionally alter.
Why is iterative waterfall model used?
The main reason behind using iterative waterfall model is feedback path. While the
feedback loop in the iterative waterfall model primarily focuses on later phases, it’s
still possible to revisit the feasibility study if changes in requirements or technology
emerge, ensuring the project stays aligned with its goals.
Advantages of Iterative Waterfall Model
Following are the advantage of Iterative Waterfall Model:
1. Phase Containment of Errors: Errors are detected and fixed as close to their
source as possible, reducing costly rework and delays.
2. Collaboration: Continuous collaboration between business owners and
developers ensures the product meets business needs and improves with feedback
at each iteration.
3. Flexibility: The model allows for easy incorporation of new requirements or
features in subsequent iterations, ensuring the product evolves with the business.
4. Testing and Feedback: Regular testing and feedback cycles help identify and fix
issues early, improving the product’s quality and relevance.
5. Faster Time to Market: Incremental development allows parts of the product to
be delivered sooner, enabling user feedback while further improvements are
made.
6. Risk Reduction: Continuous feedback and testing help identify risks early,
reducing the likelihood of costly errors and delays.
Drawbacks of Iterative Waterfall Model
Following are the disadvantage of Iterative Waterfall Model:
1. Difficult to incorporate change requests: The major drawback of the iterative
waterfall model is that all the requirements must be clearly stated before starting
the development phase. Customers may change requirements after some time but
the iterative waterfall model does not leave any scope to incorporate change
requests that are made after the development phase starts.
2. Incremental delivery not supported: In the iterative waterfall model, the full
software is completely developed and tested before delivery to the customer.
There is no scope for any intermediate delivery. So, customers have to wait a
long for getting the software.
3. Overlapping of phases not supported: Iterative waterfall model assumes that
one phase can start after completion of the previous phase, But in real projects,
phases may overlap to reduce the effort and time needed to complete the project.
4. Risk handling not supported: Projects may suffer from various types of risks.
But, the Iterative waterfall model has no mechanism for risk handling.
5. Limited customer interactions: Customer interaction occurs at the start of the
project at the time of requirement gathering and at project completion at the time
of software delivery. These fewer interactions with the customers may lead to
many problems as the finally developed software may differ from the customers’
actual requirements.
The RAD (Rapid Application Development), Spiral, and Waterfall models are different
software development methodologies, each with its own approach to planning, design, and
development. Here's a comparison of the three:
1. RAD (Rapid Application Development)
Overview: RAD focuses on rapid prototyping and user feedback, aiming for quick development
cycles.
Approach: Iterative and Incremental.
o RAD is designed to deliver working software quickly and emphasizes frequent
user feedback.
o Prototypes are built early in the project, allowing for adjustments based on user
feedback.
Process:
o Initial requirements planning.
o Prototyping and user feedback loops.
o Final implementation based on user feedback and iterative improvements.
Advantages:
o Fast delivery of working software.
o High flexibility and adaptability to changing requirements.
o Close collaboration with users.
Disadvantages:
o Can be difficult to manage with large teams.
o May not be ideal for large, complex systems.
o Risk of scope creep due to frequent changes and lack of clear documentation.
Best suited for: Small to medium-sized projects with well-defined requirements and
when speed is crucial.
2. Spiral Model
Overview: The Spiral model combines iterative development with systematic risk management.
It focuses on iterative development, with a focus on planning, risk analysis, and prototyping.
Approach: Iterative and Risk-Driven.
o The process is broken down into phases (or "spirals"), with each phase involving
planning, risk analysis, prototyping, and testing.
o Every cycle in the spiral addresses risk and allows for reevaluation.
Process:
o Determine objectives and constraints.
o Identify and resolve risks.
o Develop prototypes.
o Refine the product through iterative cycles.
Advantages:
o Strong focus on risk management.
o Flexibility and iterative development.
o Allows for frequent assessment of progress and adjustment of direction.
Disadvantages:
o Can be complex and expensive to manage.
o Requires skilled project managers.
o Can lead to extended timelines if not properly controlled.
Best suited for: Large, complex projects with high uncertainty and a need for continuous
risk management.
3. Waterfall Model
Overview: Waterfall is a traditional, linear and sequential software development methodology.
Approach: Sequential (linear).
o The project flows in one direction, much like a waterfall, moving through clearly
defined phases like requirements gathering, design, implementation, testing, and
maintenance.
o Each phase must be completed before the next one begins.
Process:
o Requirements definition.
o System and software design.
o Coding and development.
o Testing and debugging.
o Deployment and maintenance.
Advantages:
o Clear structure with well-defined stages.
o Easy to understand and manage.
o Good for smaller projects with well-defined requirements.
Disadvantages:
o Inflexible; difficult to go back to previous phases once they are completed.
o Doesn't handle changes in requirements well.
o Slow delivery of usable software, as all phases need to be completed before
testing.
Best suited for: Projects with well-defined and stable requirements (e.g., government or
regulatory projects, construction software).
Criteria RAD Spiral Waterfall
Iterative,
Approach Iterative, Risk-driven Linear, Sequential
Prototyping
High flexibility, High flexibility, risk
Flexibility Low flexibility, rigid structure
frequent feedback management
Risk Strong focus on risk
Low focus on risk Minimal risk management
Management management
Development Moderate, iterative
Fast, quick delivery Slow, due to sequential stages
Speed cycles
Low, users are involved only
User High, constant Moderate, feedback in
during requirements and testing
Involvement feedback each spiral
phases
Criteria RAD Spiral Waterfall
Small to medium- Large, complex Well-defined, low-complexity
Best For
sized projects projects with high risk projects
Medium (due to High (due to multiple Low (simple and predictable
Cost
frequent iterations) iterations and planning) process)
Minimal, as Moderate, as risk Extensive documentation at each
Documentation
prototypes are key analysis is involved stage
RAD is ideal for projects that need rapid delivery with user involvement and flexibility.
Spiral is best for large, high-risk projects where continuous risk management and
iterative development are essential.
Waterfall is suitable for smaller, well-defined projects where requirements are clear and
unlikely to change.
Each methodology has its strengths and weaknesses depending on the project's complexity, size,
risk level, and timeline.