History of Waterfall Model
History of Waterfall Model
History of Waterfall Model
A project is delivered through a set of ordered stages and until all activity
within the current stage has been completed and approved, advancing to the
next stage or any later stages is not possible.
2. Analysis
3. Design
4. Coding
5. Testing
6. Operations
Since then, there have been variations on the model depending on project
context and requirements. The most common model used is the following:
1. Requirement analysis
The first phase is about collecting information that pertains to the project’s
requirements. The purpose of the product and its function is defined.
Conducting brainstorming sessions are a common way to ensure the scope
and requirements are understood by everyone on the team. The result is
typically a requirements document that defines what the application should
do, but not how it should do it.
2. System Design
This next phase involves creating the design according to the requirements of
the first phase i.e. using technical design requirements, such as programming
language, data layers, services, etc. The purpose of this phase is to select
hardware and system requirements, and to also make clear of the overall
system architecture. This is also when the software code that is written in the
next stage is created.
3. Implementation
This phase is where the programs (actual source codes), which are known as
units, are finally written. They are individually developed and tested for their
functionality, a process that is known as Unit Testing. They are then integrated
into the following phase.
4. System testing
By this phase, the software has been designed and needs to go through
testing to determine any errors or issues within the application that needs to
be resolved. The testing phase of Waterfall model is imperative as it can
ensure the customer is not confronted by any difficulties during the
installation of the software. It is not uncommon for this phase to cause a
“necessary repeat” of the previous coding phase, in order for previous bugs to
be properly squashed.
5. System Deployment
Once the product has been tested, it is then distributed into the customer
environment.
6. Maintenance
Pros:
Progress measuring
With clearly defined start and end points, measuring progress can be rather
straightforward in Waterfall model. The full scope of work is known in advance
which also helps.
Simple structure
When compared with other project management methodologies, Waterfall is
rather intuitive. There are six phases to follow which are set in sequential
order. There are specific deliverables and a review process. This
methodological approach offers a simple structure for any newcomers to
follow. While some argue this is a burden rather than a benefit, the fact
remains that the waterfall model forces the project, to be extraordinarily
disciplined in its design and structure.
Cons:
High risks involved
Because testing the product design or architecture happens at the end of the
development process, there’s a greater chance of technical risks happening.
When a test in stage five reveals a fundamental flaw in the design of the
system, it not only requires a dramatic leap backward in stages of the process,
but in some cases, can be often lead to a devastating realization regarding the
legitimacy of the entire system.
The Waterfall methodology is best suited for projects that are clearly defined
and require structure and strict deadlines. The project scope and requirements
should be set, the product is solid, and the technology used is well understood
by the project team members. As it leaves little room for changes, it makes it
unsuitable for project that involve unexplored territory and uncertainty.
In other words, it’s great for projects that have been done many times over
where the prospect of surprises during development are slim.