The Waterfall Methodology
The waterfall methodology is the most commonly used method in software development and is instinctively the most obvious way to develop software. But, the waterfall methodology is not a practical model, as it cannot be used in actual software development projects. The unmodified or classical waterfall methodology, depicted in Fig. 1, is regarded as a hypothetical way of developing software. It offers the blueprint from which all the other life cycle models are fundamentally derived.
Fig. 1 The Waterfall Model
Like any process or tool, there are both advantages and disadvantages to the waterfall methodology. In the following section, the advantages and disadvantages of the waterfall model is discussed.
Advantages of the Waterfall Model
Although the use of the waterfall model has been slowly declining in recent years in favor of modern methodologies like the agile model, it still provides a number of benefits, mainly for projects that are not expected to change or need improvements during the project’s lifecycle. The following are the advantages of the waterfall model.
- Simple and easy to understand and use: The classical waterfall model consists of five major phases. Software development process using the waterfall model begin with the requirement phase, moves through design, implementation, verification before ending up in operation and then in maintenance as shown in Fig. 1. With the entire development process defined in a linear and sequential cycle with phases and expectations, it is easy for everyone involved in the project to understand the development process and get up to speed quickly. (Wikipedians, 2013)
- Easy to manage: The linear and sequential development cycle enforces discipline. Each phase has a clearly defined starting point and end point, which makes progress easy to track and manage tasks. This helps minimize or better yet, totally avoid any slippage from the agreed timescales.
- Outcome is clear: Before the software development starts, a detailed requirement document and software design are prepared and the intended outcome is clear to everyone including the clients. This ensures that the client gets exactly what was requested with no modifications to the expected end product.
- Early detection of development issues: The waterfall model is a design-heavy approach. This means that potential development issues and design errors can be spotted early in the design phase. The potential development issues and design errors can be researched and dealt with in the design stage. Therefore, alternative solutions can be planned for before any programming takes place. Consequently, saving time and resources. (Kienitz, 2017)
Disadvantages of the Waterfall Model
While some things essentially never change in the software development process, many others are often discontinued. Although, Dr. Royce’s initial proposal of the waterfall model was revolutionary when first published back in 1970, there are various limitations of the waterfall model including:
- Lack of flexibility: The most critical characteristic of the waterfall model is its intrinsic lack of flexibility across all stages of the development life cycle. In a situation where a test in stage four exposes an underlying defect in the design of the system, it will not only necessitate a substantial jump backwards in the phases of the process, but in some cases, it can result in an overwhelming realization of the invalidity of the entire system. An argument can be made that if the system was correctly designed in the first place, a jump backward to tackle a design defect will not be needed. But, not every possibility can be considered, particularly when the testing phase is delayed until the end of the process. (Powell-Morse, 2016)
- Overlooks Client Feedback: The strict phase by phase practice of the waterfall model leaves open another challenging issue to get around. Client feedback on the end product is usually not required during the development cycle but rather, is provided at the end of the development cycle. Clients may find it difficult to communicate their requirements in terms of functional specifications during the requirements phase. Therefore, in a situation where clients change their minds once they see the end product, it will be very difficult to address if the product needs to be reengineered to a large extent.
Although project managers can step back to a previous phase due to an unexpected requirement or change from a client, it will be both costly and time consuming, for both the development team and the client. (Powell-Morse, 2016)
- Longer delivery time: Since the requirement, design, implementation and verification phases of the waterfall model must be fully completed before ending up in operation, a working model of the software is not produced until late in the cycle. Also, since testing is delayed until later into the life cycle, most bugs or design defects will not be discovered until late into the process. This will in turn, lengthen the time for a delivery.
To conclude, in order for the waterfall methodology to function properly, the initial interaction between the developers and the client is of paramount importance and is key to a successful execution of this model. Developers involved in the process must guide and assist clients efficiently to avoid problems later. Based on the discussed advantage and disadvantages, the waterfall model is mostly suitable for small projects where requirements are unlikely to change and delivery times are short. Specific examples of projects where the waterfall model can be efficiently implemented are development of database related software and development of network protocol software. In these examples, a set of rules, standards and procedures are defined early in the process and are unlikely to change later.
- Wikipedians. 2013. “Modern Software Methodologies for Software Engineering” Retrieved from https://learn.umuc.edu/d2l/le/content/354997/viewContent/14199255/View
- Pal Kienitz. 2017. “The pros and cons of Waterfall Software Development” Retrieved from https://www.dcslsoftware.com/pros-cons-waterfall-software-development/
- Andrew Powell-Morse. 2016. “Waterfall Model: What Is It and When Should You Use It?” Retrieved from https://airbrake.io/blog/sdlc/waterfall-model
Cite This Work
To export a reference to this article please select a referencing stye below:
Related ServicesView all
DMCA / Removal Request
If you are the original writer of this essay and no longer wish to have your work published on UKEssays.com then please: