Task
Watch the video (3:49) about Waterfall and Agile. We'll compare the two approaches, looking at the similarities and differences.
Transcript of video
In this video, we’ll compare 2 popular approaches to deliver services. These are Waterfall and Agile.
First up is Waterfall. The Waterfall model has its origins in traditional engineering and manufacturing processes. It was the method used for software development in the 1970s. Waterfall follows a linear and sequential approach. A team completes each phase, before moving on to the next.
A Waterfall project will often have a requirements document. This outlines the scope and requirements of the project. A team may then write project plans, to submit for approval. A change control board may be set up, to manage any changes to requirements. This aims to achieve 2 things. First, it protects the team from building something that users don't want. Second, it aims to prevent any changes that could lead to scope creep.
Lets look at the stages of the Waterfall delivery cycle:
- Plan and analyse: Teams gather requirements and perform a thorough analysis.
- Design: Teams create the architecture and design of the system.
- Build: Developers write the code and build the system.
- Test: A team tests the system for defects.
- Correction: They correct any issues found during testing.
- Launch: They release the final product to users.
In Waterfall, each stage relies on the completion of the previous one. This makes it straightforward but less flexible to change.
Next up is Agile, which is a more flexible and iterative approach.
Here, teams often start with an initial set of product requirements. But they consider these as more dynamic. They expect and embrace change as they receive feedback. As a result, this list of requirements is always changing and evolving. It's up to the team to prioritise these, to inform what they work on first. Teams often work in short cycles. This approach enables them to deliver something of value to users early. It also means they can more adapt to change with greater ease.
Here are the stages of an Agile delivery cycle:
- Analyse and plan: The team plans the delivery cycle, focusing on the items of highest priority.
- Design: The team designs the solution.
- Build: They then build the features.
- Test: and test them with users.
- Deploy: Finally, they deploy the tested features.
- Review: The team reviews this and gathers feedback.
- Launch: Once they has developed enough features for the product to be usable, they can launch it.
Agile follows a cyclical approach, where each iteration includes all these stages. After deployment, teams review the results and gather feedback. This informs the analysis and planning at the start of the next cycle. This means Agile teams are more responsive to user feedback and changing requirements. They can focus on ensuring continuous improvement and delivery of value to users.
To summarise, Waterfall is linear and sequential. It does not encourage changing the process once it has started. This is ideal for situations where:
- there is certainty
- requirements are well-defined and agreed
- there is stability and minimal change
Agile, is iterative, flexible, and embraces changes throughout the process. It’s ideal for situations where:
- there is uncertainty
- requirements may evolve
- there is instability and things are likely to change
Extension
Reflect on how this applies to your context. Thinking about your current products or services, consider the following questions:
- Which approach does your team currently use?
- What are the benefits of working in this way?
- What are some of the challenges?
- Would a different approach address some of these? How?