Waterfall model is sequential design process used in software development. lt has the following phases in sequential order:
1. Requirements / Analysis
2. Design
3. Coding
4. Testing
5. Maintenance
Waterfall has rigid phases with gate control between phases. Once a phase is completed, it cannot be revisited. The team works on one phase at a time. Business product is delivered at the end of the project.
Advantages of Waterfall
- easy to understand and control
- at any given time, everyone know where they stand in terms of their work
- more resistant to scope creep
Disadvantages of Waterfall
- inflexible with changing requirements
- requires good requirements and stable product definition
Waterfall is a good fit if the project has good requirements documented clearly, uses mature technology, and stable product definition. It is not suitable for projects requiring progressive elaboration, changing or unclear requirements.
Agile model is an iterative, team-based approach for rapid delivery of an application with complete functional components. The project is divided into phases called sprints. In each sprint, a set of deliverables are completed (planned, coded, tested, documented). Deliverables are prioritized based on the nature of the work and based on business requirements. Once a sprint is completed, the completed deliverables are reviewed and evaluated by the customer. Agile requires high level of customer involvement throughout the project.
Advantages of Agile
- Customer has many opportunities to evaluate the project progress and make changes if necessary
- Generally, the development is faster
- User-focused development
Disadvantages of Agile
- Requires customers interest and participation
- Works best with a team dedicated to the project
- Scope creep can extend the project
- Local focus can lead to losing sight of the global project
There is a misconception that Agile is somewhat better than Waterfall or Waterfall is an outdated methodology. Both methodologies are effective and have their strengths and weaknesses. You should use the methodology that is fit for your purpose.