6.17. Waterfall vs Agile Project Management#
Project management methodologies guide software development teams in planning, executing, and delivering products efficiently. Two foundational approaches are the Waterfall and Agile methodologies.
6.17.1. Waterfall#
Waterfall is a linear and sequential software development process. The project is divided into distinct stages—such as requirements gathering, design, implementation, testing, deployment, and maintenance—where each phase must be fully completed before moving to the next. This method hinges on detailed planning at the start, with changes later in the process often proving expensive or time-consuming.
The roots of Waterfall trace back to Winston W. Royce, who discussed a sequential approach for software development in a 1970 paper titled “Managing the Development of Large Software System”. The methodology became popular throughout the 1970s and 1980s due to its simplicity and alignment with established manufacturing workflows.
Waterfall is commonly used in projects with well-defined requirements and relatively stable goals—such as government contracts, financial systems, or traditional engineering projects. Organisations with strict regulatory constraints or documentation requirements also favour Waterfall, as it provides clear milestones and sign-offs.
6.17.2. Phases of Waterfall#
Requirements: Stakeholders and the development team document the functional and non-functional needs that the software must fulfil.
System Design: The team creates a detailed technical blueprint, defining the software’s architecture, components, interfaces, and data flow.
Implementation: Developers write and integrate the code according to the design specifications.
Testing: The software is evaluated against the requirements to identify and resolve any defects or inconsistencies.
Deployment: The software is released to end-users.
Maintenance: Maintenance addresses ongoing support, bug fixes, and updates to keep the software secure, stable, and relevant.
6.17.3. Advantages#
Clear structure: Each phase has a defined start and end, making progress tracking straightforward.
Extensive documentation: The comprehensive planning and design documents help with knowledge transfer and maintenance.
Predictability: Since scope is typically fixed from the beginning, budgeting and timeline forecasts are more stable.
6.17.4. Disadvantages#
Inflexibility: Significant scope changes or requirement shifts late in the project are costly and complex to manage.
Delayed feedback: Clients or end-users only see the working software near the end, increasing the risk that the final product may not meet evolving needs.
Long development cycles: The sequential approach often elongates time-to-market, especially if the project is large or complex.
6.17.5. Agile#
Agile is an iterative and incremental approach that focuses on collaboration, flexibility, and customer feedback. Work is divided into short development cycles called “sprints,” each delivering a potentially shippable product increment. The Agile Manifesto, published in 2001, emphasises individuals and interactions, working software, customer collaboration, and responding to change.
Agile suits dynamic environments where requirements evolve rapidly—such as tech startups, e-commerce platforms, and digital product companies. Many large enterprises are also adopting Agile to innovate faster, though they often face challenges scaling Agile practices across multiple teams.
6.17.6. Phases of Agile#
Project Planning: The team establishes the project’s vision, goals, and constraints at a high level to guide future iterations.
Product Roadmap Creation: A broad, time-based plan is laid out to visualise major features or themes.
Release Planning: The team creates milestones that group features together and estimates timelines for delivery.
Sprint Planning: In sprint planning meetings the development team commits to a specific set of high-priority tasks and clarifies how to achieve the sprint’s goal.
Daily Stand-ups: Short daily checkpoints where team members share progress, reveal impediments, and adapt plans as needed to stay on track.
Sprint Review and Retrospects: At sprint’s end, the team presents the new functionality to stakeholders for feedback, then reflects on successes and areas for improvement to enhance future sprints.
6.17.7. Advantages#
Flexibility: Agile embraces change, allowing teams to pivot quickly when new information arises.
Continuous feedback: Stakeholders review increments regularly, ensuring the product aligns with user expectations.
Fast time-to-market: Delivering features in short sprints helps release valuable functionalities sooner.
6.17.8. Disadvantages#
Less predictable: Constant reprioritisation can make long-term budget and timeline estimates more fluid.
Requires strong team collaboration: Without effective communication and commitment, Agile can degrade into ad-hoc chaos.
Scope creep: By continuously adjusting the requirements, the size of the project can increase over time.