There are many types of software development Waterfall Method or what is often called SDLC (Software Development Life Cycle). The waterfall method is one of the development models that is currently quite popular and is widely used by software developers.
For this article, we will discuss further about what the waterfall method is, along with its history, stages, and its advantages and disadvantages. Going forward, we hope that you can also try to apply the waterfall model in working on your IT business projects.
Table of Contents
Definition Of The Waterfall Method
The waterfall method is one type of application development model and belongs to the classic life cycle, which emphasizes successive and systematic phases. For the development model, it can be analogous to a waterfall, where each stage is done sequentially from top to bottom.
So, for each stage should not be done at the same time. Thus, the difference between the waterfall method and agile methods lies in the SDLC stages. This model also includes software development which is less iterative and flexible and processes that lead to one direction only like a waterfall.
The History Of The Waterfall Model
At first the waterfall method was first used and introduced by Herbert D. Benington who took place at the Symposium on Advanced Programming Methods for Digital Computers on June 29, 1956. The presentation also explained about how to develop software for SAGE (Semi Automatic Ground Environment).
In 1983, Benington presented again and explained about several phases in the software development process for SAGE. And in 1985, the United States Department of Defense also used this method with several stages used including 6 phases, namely: Preliminary design, Detailed design , Coding and unit testing, Integration, and Testing.
Stages Of The Waterfall Model
After knowing what the waterfall method is, then enter into a discussion of the stages of the waterfall method.
The first stage of the waterfall method is to prepare and analyze the needs of the software that will be done. The information and insight obtained can be in the form of interviews, surveys, literature studies, observations, and discussions.
Usually in a company, the team of analysts will dig up as much information as possible from clients or users who want the product and its system requirements. In addition, you can also know any limitations of the software to be made.
The next stage is making application designs before entering the coding process. The purpose of this stage is to have a clear picture of the appearance and interface of the software which will then be executed by the team of programmers.
For this process, we will focus on the development of data structures, software architecture, interface design, to the design of internal and external functions of each procedural algorithm. The team working on this stage usually uses a UI/UX Designer, or people who have skills in graphic design or Web Designer.
The next stage of the waterfall method is the implementation of the program code by using various tools and programming languages according to the needs of the team and company. So, at this implementation stage, the focus is more on technical matters, where the results of the software design will be translated into programming languages through a team of programmers or developers.
In the development stage, it is usually divided into 3 teams with different tasks. First, there is the front end (for the client side), the backend (for the server side), and the full stack (a combination of the front end and the backend). In addition, at this stage a more in-depth examination is also carried out regarding the modules that have been made, whether they are running properly or not.
4. Integration & Testing
The fourth stage, enters the process of system integration and testing. At this stage, the modules that were created in the previous stage will be combined. After the system integration process is complete, the next step is to enter the module testing.
Which aims to determine whether the software is in accordance with the design, and the functionality of the application whether it runs well or not. So, with the testing phase, it can prevent errors, bugs, or errors in the program before it enters the production stage. The person who is responsible for conducting testing is QA (Quality Assurance) and QC (Quality Control).
5. Operation & Maintenance
The last stage of the waterfall method is the operation and repair of the application. After testing the system, it will enter the product stage and the use of the software by the user (user). For the maintenance process, it allows developers to make repairs to errors found in the application after being used by the user.
So, in essence, this waterfall model in the process of use follows the principle of a waterfall. Where each job will be carried out sequentially from top to bottom. These are the characteristics of this SDLC.
We’ll also give a few examples of the waterfall model SDLC phase, according to experts :
A. The Waterfall Method According to Pressman 2015
B. The Waterfall Method According to Sommerville 2011
- Requirements Definition
- System and Software Design
- Implementation and Unit Test
- Integration and System Test
- Operation and Maintenance
The Advantages Of The Waterfall Method
The following are some of the advantages possessed by the waterfall method, including :
1. A Clear Workflow
By using this type of SDLC model, you have a clear and measurable set of system workflows. Each team has duties and responsibilities in accordance with their field of expertise. And can complete the work in accordance with the time allocation that has been determined previously.
2. The Results Of Good Documentation
Waterfall is a very methodical approach, where every information will be well recorded and distributed to every team member quickly and accurately.
With the document, the work of each team will become easier, and follow every direction from the document.
3. It Can Save Costs
The next advantage, of course, is in terms of resources and costs incurred by a company using this model. So, in this case the client cannot interfere with the affairs of the application development team. So that the expenses are less.
This is different from the Agile method, where the client can provide input and feedback to the development team regarding changes or additions to some features. So the company will incur costs that are greater than Waterfall.
4. It Is Used For Large Scale Software Development
This method is considered very suitable for carrying out large-scale application development involving a lot of human resources and complex work procedures. However, this model can also be used for small and medium-sized projects. Of course adjusted to the conditions and needs of the project taken.
Drawbacks Of The Waterfall Method
Following are some of the weaknesses of the waterfall method, including the following :
1. Need A Solid Team
To use this SDLC model, of course, requires support from every existing stakeholder. Each team must have good teamwork and coordination. This is because if one team is unable to carry out their duties properly, it will greatly affect the workflow of the other teams.
2. There Is Still A Lack Of Flexibility
All teams are required to work in accordance with the directions and instructions that have been set at the start. So, clients cannot issue opinions and feedback to the development team. Clients can only provide input at the initial stage of software system design.
3. Can’t see The System Description Dlearly
With the waterfall model, customers can’t see a clear system picture. In contrast to the agile model which can be seen well even though it is still in development.
4. Requires More Time
The work process using the waterfall is quite long when compared to other SDLC models. Because, the stages of working on the application that are carried out one by one make the time needed to be longer. For example, the developer team will not be able to do the coding process if the designer team has not displayed the design view of the application.
The waterfall method is a model of software development that is carried out sequentially and very systematically. For the process itself, it can be done with various project teams divided according to their respective expertise. At least, there are 5 phases in the waterfall method, namely needs analysis, design, implementation, integration & testing, and operation and maintenance.