Sitting down and trying to present a balanced view of Agile methodology over a Waterfall or Iterative Waterfall methodology isn’t an easy thing. Agile addresses some of the core problems of waterfall based approaches that are down-played by those who practice waterfall:
- Product Owners are asked to describe in detail exactly what you want the system to do when the project finishes.
- What the requirements of a project become and how much it actually costs really isn’t know until the end of the project.
In Agile a Product Owner only has to commit to the detail of a subset of stories, that make up a project, at the start of each sprint. During the sprint the development team is able to seek clarification from the Product Owner. At the end of the sprint the Product Owner gets to see what they have described as a complete set of functionality. Based on what the Product Owner sees they can then be feed into what they would like completed in the next sprint. This feedback loop between the development team and the Product Owner is a key to the success of agile.
Agile isn’t a guarantee of success so the following details some of the reasons you would adopt an agile methodology, but also some things that need to be managed to ensure that it is a success:
- There is a constant two-way feedback loop between the development team and the Product Owner.
- The Product Owner is empowered to adjust the product backlog to incrementally tune what is developed.
- A completed story is production quality and can be defined to include automated unit and system tests, documentation etc
- It is easier to track what is complete, what is on the product backlog and how quickly we are developing (velocity)
- Requires appropriate business involvement in the prioritisation and elaboration of stories
- A team requires enough seed people with the necessary skills to start the project
- When multiple teams are involved there needs to be a concerted effort on coordinating the teams
- Because agile isn’t prescriptive it is hard to know if it is being executed correctly (Pro: feedback is at the end of each sprint)