I will start by clarifying the meaning of the two terms “Waterfall” and “Agile” and their concepts.
Table of Contents
Waterfall model
What is the Waterfall model?
A waterfall model is a linear approach to project management, in which the requirements of stakeholders and customers are determined and collected at the beginning of the project, after which a consistent plan is created to meet these requirements.
The model of the waterfall is so named because each phase of the project passes into the next, following steadily downwards and consistently as a waterfall. Reference: “Agile vs Waterfall Methodology – What are the differences“, https://www.islandjournal.net/agile-vs-waterfall-methodology-differences/
This is a thorough, structured methodology that has been used for a long time because it works well. Some of the industries that regularly use the “waterfall” model include construction, IT, and software development.
Gantt charts are a favorite tool of project managers working on the “waterfall” model. Using a Gantt chart allows you to plot subtasks, dependencies, and each phase of a project as it moves through its life cycle.
Advantages of the method:
1. Uses a clear structure
Compared to other methodologies, Waterfall focuses on a clear, defined set of steps. Its structure is simple – each project goes through these steps:
Collection of requirements and documentation
System design
Execution
Testing
Delivery/deployment
Support
Teams must complete the entire step before moving on to the next, so if there are obstacles to completion, they are revealed immediately. As well as being clear, Waterfall’s approach is intuitive.
Unlike Six Sigma or Scrum, Waterfall does not require certificates or special training for project managers or employees.
2. Early determination of the final goal
One of the defining steps of Waterfall is the commitment to the final product, goal, or result at the beginning and the teams thus avoid deviations from this commitment.
For small projects where the goals are clear, this step makes the team aware of the overall goal from the beginning and is less likely to get lost in the details as the project progresses.
Unlike Scrum, which splits projects into separate sprints, Waterfall maintains a focus on the end goal at all times. If the team has a specific goal with a clear end date, Waterfall will eliminate the risk of failure.
3. Transmits information well through all stages
Waterfall’s approach is extremely methodical, so it’s no surprise that the methodology emphasizes clean communication at every step.
When applied in a software environment, each new step involves a new group of people, and although this may not be the case in our company, we should still strive to document the information throughout the life cycle of the project.
Whether you submit projects at every stage or unexpected staff changes occur, Waterfall gives priority to available information so that new additions to the team can enter the work quickly if necessary. Reference: https://projectmanagers.business.blog/
4. Testing and manufacturing documentation, such as instructions for use and user manuals, maybe written in parallel with the code.
5. Adequate documentation limits possible points of failure in communication and facilitates the transfer of project knowledge.
6. The highly structured process leads to specific stages that management and the client can follow.
7. A small amount of client involvement is required, except at the beginning, which again limits possible gaps in communication.
8. The user interface can be improved because early design requirements that will affect the user experience will be subject to troubleshooting and resolution before coding.
Disadvantages of the method:
1. Change is hard
“Waterfall” is based entirely on following a set of steps that make teams always move forward. Reference: https://www.businesspad.org/agile-vs-waterfall-difference-between-methodologies/
In its traditional form, the methodology leaves almost no room for unexpected changes or revisions.
If the team has faithfully followed Waterfall’s steps almost to the end of the project but then encounters an unplanned obstacle that requires a change in scope or goals, change will not be easy.
A significant amount of work will already be invested in the project under very specific, strict assumptions.
A sudden change in the parameters of the project can make useless much of the work that has already been done so far, which can confuse the whole schedule. Reference: Agile vs Waterfall management methodology, https://www.kosovatimes.net/agile-vs-waterfall-management-methodology/
2. Excludes the customer and/or end-user
As an internal process, the Waterfall methodology focuses very little on the end-user or the client involved in the project. Reference: Waterfall and Incremental model in project management, https://wikipedia-lab.org/waterfall-and-incremental-model-in-project-management/
Its main goal is to help internal teams go through the project phases more efficiently, which works well in the software world.
However, in the case of industry other than software, clients often want to participate in the project by adding opinions and clarifying what they want as the project progresses. Reference: Agile vs Waterfall Project Management, https://agileprojectmanagement.home.blog
If projects have clear, unchanging goals from the start and are not responsible for updating end-users or customers in the development process, then Waterfall is likely to work well. Reference: Agile, Scrum and Waterfall project management, https://ossalumni.org/agile-scrum-and-waterfall-project-management/
3. Postpones post-completion testing
Postponing the testing phase for the last half of the project is risky, but Waterfall insists teams wait until the fourth step of a total of six to test their products.
Outside of the software industry, the testing phase may mean displaying a new website design to a client, A / B testing the content, or taking any steps to obtain empirical data on project viability.
At this stage, the project has probably taken considerable time to implement, so major revisions can lead to significant delays. Reference: http://teachers.wikidot.com/agile-versus-waterfall-project-management
Agile model
The Agile methodology is a way to manage projects by dividing them into several phases. It includes continuous cooperation with stakeholders and continuous improvement at every stage.
Once the work begins, the teams go through a process of planning, implementation, and evaluation. Ongoing collaboration is vital, both with team members and project stakeholders. Reference: Comparison of Agile, Scrum and Waterfall project management, https://eduwiki.me/comparison-of-agile-scrum-and-waterall-project-management/
Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches.
Instead of betting on the “big bang”, a flexible team provides the work in small but usable steps.
Requirements, plans, and results are constantly evaluated, so teams have a natural mechanism for rapid response to change. Reference: Waterfall or Agile? What methodology to choose for your project?, https://pm.mba/posts/waterfall-vs-agile/
Unlike the traditional “Waterfall” approach, where activities are transferred to the next participant after completion, the flexible approach requires cooperation between functional teams.
Open communication, cooperation, adaptation, and trust between team members are at the heart of a flexible approach.
Although the project manager or product owner usually prioritizes the work to be done, the team takes the lead in deciding how the work will be done, self-organizing around detailed tasks and assignments. Reference: Waterfall vs Agile Project Management, https://projectmanagers.joomla.com/12-waterfall-vs-agile-project-management.html
Agile is not determined by a set of activities or specific development techniques. Rather, it is a group of methodologies that demonstrate a commitment to short feedback loops and continuous improvement. Reference: What is Kanban methodology, https://wikipedia-lab.org/what-is-kanban-methodology/
The Agile development process usually looks like this:
- Establish several initial requirements
- Design
- Development
- Testing
- Implementation
- Evaluation of the micro-result obtained (ie product characteristics)
- Gather feedback on what has been presented so far
- Defining new requirements for the next step based on the feedback and repeating the cycles of micro-results until the final desired product is achieved
Advantages of the method:
Flexibility
The most significant advantage of the flexible methodology is its adaptability to changing development environments, requirements, and even teams.
The emphasis of the Agile methodology is on taking care of the tasks that are important when they are needed. Thanks to a well-defined set of requirements, an “Agile” team of developers is usually aware of the tasks that need to be performed and the order in which they are important.
Such a system ensures that customers are the center of attention and that problems that need to be addressed first are given priority. Stakeholders also benefit as development is progressive.
Therefore, they are less likely to suffer losses and are much more likely to remain significant in the market space.
Acceptance of uncertainty
A derivative advantage of its flexibility (but still a significant advantage) is the fact that the Agile methodology recognizes the fact that the outcome of a particular project is essentially unknown until it is completed.
Thanks to this unbiased feature, the Agile methodology is always open to discovery.
Sometimes other solutions to a problem can be found and implemented that fit better into the project, and in other cases, developers can find a major problem on an already defined problem.
The advantage here is that each problem is solved optimally, as the developers ensure that each omission is taken into account before committing to a specific solution.
Developers also have the advantage of discovering new ways to solve problems while dealing with existing ones.
Immediate feedback
In some flexible methodologies, such as Scrum, development is usually in cycles, with each cycle providing a module ready for launch.
This state of readiness for commissioning is achieved through constant testing and feedback from customers and stakeholders.
Once a module has been developed, these individuals usually participate in the evaluation of the module by providing developers with comments and suggestions.
The developers then collect these ideas and questions and determine which changes are viable and can be made in the module. Through this cycle, the final module is usually a finished product.
Fewer defective products
The main advantage of the Agile methodology is that the final product is usually efficient and reliable compared to other development methodologies.
This reliability is achieved thanks to the amount of work involved in the development, implementation, testing, and feedback.
Debugging is also a significant part of the development cycle and this ensures that the final product works in the best way.
Disadvantages of the method:
Lack of documentation
Perhaps the most significant shortcoming of the Agile methodology is the lack of documentation during the development process.
This is usually due to the ever-changing scope of the project in terms of requirements and problem definition.
The documentation of a module may be outdated due to both large and small changes made to it.
Therefore, the emphasis is not always on the documentation and sometimes small changes fail to be added to the final documentation.
Shrinking the range
Due to the flexibility of the Agile methodology, some members of the development team, especially customers, may require more and more from the system each time it is improved.
Project managers who are inexperienced or in-depth may find themselves in poor project management by failing to streamline user requirements.
.
Time
Agile methodologies spend a lot of time on projects in general, as well as on their modules.
The whole cycle of defining, developing, testing, feedbacking, refactoring is a cumbersome process that requires time and many other resources in abundance.
In addition, the various members of the development team must be available almost always, which leaves little time for other commitments and this can become a problem in the later stages of development.
Lack of predictability
While the uncertainty of the future provides an excellent learning unit for any group or team member, it can also be stressful when it comes to the reality of providing solutions to the public.
Fact that customers, stakeholders, and even developers are not sure of the outcome of the various decisions made during production, some of them may decide to abandon the projects.
This can become a problem, especially when these entities decide to leave at crucial stages of production.
Withdrawal of entities means that time must be spent searching for other members, or in the worst case, that the whole project is terminated.
In conclusion, I will clarify when it is more appropriate to use one methodology and when the other.
References
Waterfall and Agile project management
The methodology of this model, which is also known as the sequential linear life cycle model. The waterfall model follows in sequential order, so the project development team only moves on to the next phase… https://phron.org/waterfall-and-agile-project-management/
Agile Project Management
Agile Project Management includes different subjects and many Agile and Scrum practices as well, but we will discuss here several major topics… https://agileprogramming.org/agile-project-management/
How to become a Scrum Master?
To become a Scrum Master some may tell you that you need nothing more than Scrum Master certification and a few days of preparation on certain topics related to the Scrum framework and… https://brightonbot.com/how-to-become-a-scrum-master/
Can you get a project management certification without a degree?
Obtaining a project management certification without a degree is a frequently asked question by young professionals… https://www.polyscm.com/project-management-certification-degree/
When to choose “Waterfall” and when “Agile”?
When to use the Waterfall methodology?
The methodology of the waterfall works well in the following circumstances:
When the client’s wishes are clearly defined at the beginning of the project we are sure that the agreed requirements will lead to an acceptable end product.
When the client wants to have a certain schedule and budget from the beginning.
If the client will be minimally involved in the development process.
If the team members are numerous or will change frequently. (The waterfall methodology offers uncomplicated knowledge transfer for smoother progress in personnel changes).
Ideally, the Agile model should be used in the following circumstances:
The organization wants to benefit from quick feedback.
There is not enough understanding of the value and significance of what is being built.
If we have an enthusiastic team to work on the project, or a coach/mentor to help the team.
There may be large differences in the decline/payout curves.
The project could be complex in the absence of the necessary experts.