Waterfall and Agile including Scrum and Kanban are popular terms associated with project management.
Although Scrum is not a project management methodology like BVOP, PMP, and Prince2, many people consider it as such.
What is Waterfall Project Management?
Waterfall or the “waterfall” model is the earliest developed methodology. In it, the project activities are structured in stages/phases flowing linearly and sequentially. Reference: “Waterfall and Agile methodologies such as Scrum“, https://wikipedia-lab.org/waterfall-and-agile-methodologies-scrum/ These phases are:
- Specification of requirements (Analysis of requirements)
- Software design (Software architecture)
- Implementation and integration
- Testing (Validation)
- Implementation (Installation)
It is not possible to move to the next phase/stage before the previous one has been completed. Reference: “Agile vs Waterfall Project management and software development with Scrum“
The processes are largely one-way and going back for correction to a previously completed phase/stage is not allowed.
This approach is used and is typical mainly in the manufacturing and construction industries, where changes in stages/phases that have already been completed are costly. Reference: Check website
It is useful and predictable in terms of results, when the requirements are fixed, well documented, and clear, the technologies used are well developed and enforced.
It can also be used in small and short software development projects, where changes in requirements and scope are unlikely and not critical. Reference: “Agile vs Waterfall project management“, https://pgov.org/agile-vs-waterfall-project-management/
Advantages of Waterfall project management
- Clear and understandable principle of operation
- The well-structured and consistent development process
- The ultimate goal is defined and clear from the beginning
- Project planning and implementation are easier
- Visible results at each phase/stage of the project Check source publications
Disadvantages of Waterfall project management
- Lack of flexibility and adaptability. It cannot meet the ever-changing requirements
- Going back to the previous stage and making changes is extremely difficult and expensive.
- The verification (testing) phase is at the end of the project, which increases the risk of failure. Problems and defects can go unnoticed until the last minute
- Criticized for the use of strict or excessive controls and rules (Read more project management articles)
Agile project management
Agile is a flexible methodology for developing software and software products, which aims to improve the efficiency of developers, teams, and organizations.
It is based on the cooperation of self-organizing teams of people with different functions and end-users from whom they can receive feedback based on which to adapt and change the product in the development process. Reference: “Agile vs Waterfall Project Management”, https://pgov.org/agile-vs-waterfall-project-management/
The fast and flexible response to changes throughout the development, the rapid entry of working products (prototypes) on the market, and their continuous improvement are encouraged.
Agile software development methods are defined by a group of software developers in the Manifesto, which reads as follows:
Based on our experience, we find better methods for developing software by practicing them and helping others to do so. In the process of work we came to the following important conclusions:
People and the interactions between them are above the processes and tools. Reference: “Agile vs Waterfall Methodology – What are the differences“, https://www.islandjournal.net/agile-vs-waterfall-methodology-differences/
Processes and tools are important, but it is more important to have competent people working together and effectively.
The working software is above the detailed documentation.
Good documentation is useful for people to understand how software is built and how to use it, but the main point in development is to create working software, not documentation.
The cooperation with the client is above the negotiations for concluding a contract.
The contract is important, but it cannot replace working closely with clients and understanding their needs
Responding to change is beyond following the plan. The Agile development methodology focuses on rapid response to change and continuous development. Reference: https://www.businesspad.org/agile-vs-waterfall-difference-between-methodologies/
The Agile Manifesto for Software Development
The Agile Manifesto for Software Development is based on twelve principles:
- Customer satisfaction through fast and continuous delivery of useful software
- Changes in requirements are welcome, even in the late stages of development
- Short iterations and frequent provisioning of working software (in weeks, not months)
- Close, daily collaboration between business and developers
- Projects are built around motivated people who are trusted
- Face-to-face conversations are the best form of communication
- Running software is the key to progress Reference: Agile vs Waterfall management methodology, https://www.kosovatimes.net/agile-vs-waterfall-management-methodology/
- Sustainable development that manages to maintain a constant pace
- Constant attention to technical excellence and good design
- Simplicity – the art of missing as much unnecessary work as possible is essential Reference: Waterfall or Agile? What methodology to choose for your project?, https://pm.mba/posts/waterfall-vs-agile/
- The best software architectures, requirements, and designs come from self-organizing teams
- Regular measures and efforts to increase the efficiency of the team.
The values and principles set out in the manifesto derive from and underlie many specific software development frameworks belonging to Agile methodologies. Reference: Agile, Scrum and Waterfall project management, https://ossalumni.org/agile-scrum-and-waterfall-project-management/
Most encourage development, teamwork, collaboration, and adaptability throughout the project life cycle. Some of the most used in practice are:
- Extreme programming
- Lean, Reference: Agile, Scrum and Waterfall project management, https://ossalumni.org/agile-scrum-and-waterfall-project-management/
Most Agile methods break down product development tasks into small steps, minimizing pre-planning and design.
Iterations (stages) take place in short periods (timeboxes), which usually last from one to four weeks. Reference: 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/
During each iteration, the team of people with different functions works on each of the functions: planning, requirements analysis, design, development, testing, and acceptance testing.
At the end of the iteration, the working software is presented to the stakeholders. Reference: Comparison of Agile, Scrum and Waterfall project management, https://eduwiki.me/comparison-of-agile-scrum-and-waterall-project-management/
This reduces the overall risk of failure and the project can be quickly adapted to change.
An iteration may not add enough functionality to justify marketing, but the goal is to have a workable solution (with minimal errors) at the end of each iteration. Reference: “Agile and Waterfall project management practices“, https://mstsnl.net/agile-and-waterfall-project-management-practices/
Multiple iterations may be required to complete software or feature.
Some of the practices of Agile methodologies are also used in other areas of ICT and business.