Agile versus Traditional development
Traditional Development
The traditional Waterfall approach assumes:
- All requirements are known before starting the development
- Nothing will change during the development
- Only start a phase of development after the previous phase is complete
- Start testing the system after it has been developed
- Only deliver the software once all the requirements have been completed
Consequently problems are discovered late, resulting in:
- Significant rework
- Significant impact on the schedule
- Significant increase in costs
- Reduced quality
- Low confidence
Agile Development
The Agile approach starts from quite a different position:
- Appreciate that not all requirements are known at the start
- Accept that things will change during development
- Find the problems as soon as possible
Mechanisms for Agile Development
- Frequent delivery of a functioning ‘product’
- Incremental introduction of functionality
- Prioritise ‘product’ functionality to meet a Timebox
- Start testing the ‘product’ as soon as possible
Consequently problems are discovered early and lessons learned, resulting in:
- Reduced rework effort
- Reduced impact on timescales
- Increased confidence in the end product
- Good quality
- Continuous improvement