Waterfall model

From apppm
(Difference between revisions)
Jump to: navigation, search
(Description of the model in phases)
(Comparison Waterfall / Agile)
Line 78: Line 78:
  
 
===Comparison Waterfall / Agile===
 
===Comparison Waterfall / Agile===
 +
 +
Because of the defects mentioned above, the Waterfall Model was criticized very early on (1970 [1]). In order to get rid of the model's defects, some people tried to modify or evolve it. This is the case of the W.W. Royce model [1], but also of the development of the V-cycle
 +
and other Unified Processes (needs a link to these two methods).
 +
 +
'''Agile methods'''
 +
 +
The values at the base of the agile method aim at prioritizing people and interactions [8], a functional product, collaboration with the customer and reactivity to change. This may be at the expense of processes, intelligible and detailed documentation, contract negotiation and a clear plan to follow from start to finish [9]. The principle is based on the iteration of
 +
short cycles with dynamic planning and prioritization.
 +
 +
'''When to use which'''
 +
 +
In his article The Waterfall Model and Agile Methodologies: A comparison by project characteristics [8], W. van Casteren gives the characteristics of the two methods to determine whether a project is better suited to an agile or waterfall method. The following points are taken directly from his article and are the most important points to determine
 +
whether a project should be structured according to a Waterfall Model or agile:
 +
Primary goals: the goals regarding Waterfall will always be "predictability, repeatability, and optimization"[8] while Agile has the essence of focusing on rapid value creation and
 +
responsiveness to change[5].
 +
* Customer: Agile adapts to cases where the customer is deeply involved in the development, which can be associated and knowledgeable, while the Waterfall Model
 +
requires adequately skilled customers.
 +
* Requirements : The formal expression of requirements independently of the solution is left to the Waterfall, the Agile is more prepared to the requirements that evolve quickly and
 +
change.
 +
* Culture: Generally speaking, the Waterfall Model will better adapt to a company
 +
cultivating values of order and rigor while Agile methods thrive on chaos.
  
 
==Conclusion==
 
==Conclusion==

Revision as of 15:14, 18 March 2022

Summary

Contents

The Big Idea

Description of the model in phases

The waterfall project management model is broken down into a series of consecutive stages. The classic model has six phases:

1- Requirements

This phase corresponds to the expression of needs [6]. First of all, the customer's requirements for the product are documented: the functions and the expected performances. The customer and the project team work together to establish a Requirement Specification Document [2].

2- Analysis

In some models, the analysis phase is included in the requirement phase [2]. In this second step, the requirements are analysed and the schemas and models for the product are defined.

3- Design

From the specifications, the functions and requirements are transformed into a feasible product. The product is specified and its architecture is designed [11].

4- Implementation

This step is the passage in a concrete phase of realisation of the product. While the first three phases are more about planning and mock-up, during this one, a first version of the product is developed [1].

5- Testing and Validation

The completed product undergoes a series of tests to compare it with the specifications and verify that it meets the requirements. During this phase, we identify the defects of the product. The quality of the final product depends largely on the efficiency of the testing phase [2]. At the end of this phase, if it passes all the requirements, the product is validated.

6- Release

Once a final product is approved, its commissioning is prepared. Then the product is installed and used [6].

A final maintenance phase is added, often in software development companies [11]. This seventh phase corresponds to the work of the company to make sure that the product works as expected once implemented and to intervene in the opposite case to solve problems that may arise. Like a waterfall, the different phases of this model follow each other consecutively and chronologically. One cannot move on to a new step without having validated the previous one and each step must be accompanied by solid documentation. The first person to theorise this model was W.W. Royce in 1970. In his article: Imagining the development of large software system, he represents graphically the phases of the model without using the name waterfall. In his article, Royce already criticises this model at the time [1].

Applications

Advantages of the model and when to use it

The Waterfall Model, by the triviality of its features, has many advantages that explain why it has been and still is massively used.

Simplicity

First of all, this method is quite simplistic in its architecture, which makes it easy to understand [2] for the various stakeholders of a project. It is also easy to use by project managers [2]. The management and implementation of a Waterfall Model as a project structure presents little challenge: the structure is clear and explicit and requires few resources and management knowledge to follow the model [11].

Consistency

In this model, the requirements analysis is rigorous and detailed. The requirements are deepened in the early stages of the project and are set in such a way that they are not modified once the requirements phase is closed [11]. This way, the basis of the requirements is solid and can be referred to continuously during the project [1]. In addition, the Waterfall Model implies the production of detailed project documentation that traces all the stages and architecture of the project and its development. This documentation is used both for the smooth running of the work and for future projects [2][6].

Control

Finally, a project following a Waterfall Model will be easy to control for both the client and the project management team. The client can control the progress of the project through the numerous reports and the comprehensive project documentation [11]. Stages and deliverables are defined in advance and it is easy to distinguish the different phases by their deadlines [2]. In this way the project is made predictable [6]. Furthermore the structure of the Waterfall Model is such that it is possible to determine the final cost of the product and to give a date of commissioning before starting the development which is a real advantage for the customer. Moreover, the management of a project following this model is facilitated: the fact that the phases are carried out one at a time and successively allows for departmentalization between these phases [2]. Finally, iterations and changes are only made between adjacent phases, which limits changes [1]. When to use Waterfall Model ? Due to its characteristics and advantages, it is preferable to use a Waterfall Model under certain conditions. In Software Development Lifecycle (SDLC), the Waterfall Model is often suggested for small projects with little development [2] [11]. N. B. Ruparelia adds that the Waterfall Model is the most efficient for software development "that provides back-end functionality". However, W. van Casteren defends more generally (outside the SDLC) that in very large projects the Waterfall Model should be chosen for its advantages [8].

Limitations

Problems encountered with the Model

The principles governing the Waterfall Model bring certain advantages such as simplicity, consistency and control, but these same added values of the model can be the source of fundamental problems widely criticized.

Fixity of requirements

One of the key principles of the model is the detailed and fixed definition of requirements from the very first phase of the process. The complete and detailed definition of requirements in the first phase implies that the teams involved in the project cannot work on the development steps until the requirement phase has been concluded [6]. Furthermore, the Waterfall Model will fail in projects where requirements are likely to evolve [2][11]. All subsequent phases of the project depend on this upstream requirements analysis and the requirements cannot be changed as the project progresses [1]. Generally speaking, the rigidity of the model is criticized, as Waterfall is ineffective in the face of change [6][8].

A high risk model

The Waterfall Model is very bad at reducing project risk. W.W. Royce said in it's 1970's article that the model "is risky and invites failure" [1] and the How to Kill the Scrum Monster guide shows that projects using Waterfall model had a failure rate of 29% (the numbers were sourced from The Standish Group 2015 Chaos Report). This high risk rate is explained by the difficulty of identifying risks at the beginning of the project, which also makes it difficult to develop an effective risk reduction strategy [11]. Furthermore, the fact that the customer is not involved in the development process leaves him with little opportunity for feedback [6], which can have the disastrous consequence that the customer's needs are not coordinated with the final product [8]. Similarly, the way testing is conducted in the final phase makes it difficult to identify problems during development [2]. This can lead to the identification of unexpected problems in the final stages of the project [6], "then invariably a major redesign is required" adds W.W. Royce [1].

High costs and efforts

Finally, the Waterfall Model is likely to cause various problems that increase the cost and effort of a project. The detailed documentation to be written and approved for each step as well as the step approval procedures are criticized as being effortful [8] and can also lead to project lengthening and time overruns [6]. Similarly, iterations and rollbacks of previous phases are costly in terms of team effort [6][11]. Finally, in the case of major substantive problems encountered in the final phase, additional costs are obviously to be expected, as well as an overrun of the planned dates [6].

Comparison Waterfall / Agile

Because of the defects mentioned above, the Waterfall Model was criticized very early on (1970 [1]). In order to get rid of the model's defects, some people tried to modify or evolve it. This is the case of the W.W. Royce model [1], but also of the development of the V-cycle and other Unified Processes (needs a link to these two methods).

Agile methods

The values at the base of the agile method aim at prioritizing people and interactions [8], a functional product, collaboration with the customer and reactivity to change. This may be at the expense of processes, intelligible and detailed documentation, contract negotiation and a clear plan to follow from start to finish [9]. The principle is based on the iteration of short cycles with dynamic planning and prioritization.

When to use which

In his article The Waterfall Model and Agile Methodologies: A comparison by project characteristics [8], W. van Casteren gives the characteristics of the two methods to determine whether a project is better suited to an agile or waterfall method. The following points are taken directly from his article and are the most important points to determine whether a project should be structured according to a Waterfall Model or agile: Primary goals: the goals regarding Waterfall will always be "predictability, repeatability, and optimization"[8] while Agile has the essence of focusing on rapid value creation and responsiveness to change[5].

  • Customer: Agile adapts to cases where the customer is deeply involved in the development, which can be associated and knowledgeable, while the Waterfall Model

requires adequately skilled customers.

  • Requirements : The formal expression of requirements independently of the solution is left to the Waterfall, the Agile is more prepared to the requirements that evolve quickly and

change.

  • Culture: Generally speaking, the Waterfall Model will better adapt to a company

cultivating values of order and rigor while Agile methods thrive on chaos.

Conclusion

Annotated bibliography

References

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox