Agile is a major buzz word in the project management world right now, especially in the software industry. My previous post on the Waterfall and Modified Waterfall methods outlined the nature of the most traditional project management models. Agile is the relative new comer on the scene.
The story goes that one day a group of software developers, dissatisfied with the low success rate of managing projects with the traditional project management methodologies, decided to scrap the old process and design a brand new method all their own. This collaboration resulted in what is known as the ‘Agile Manifesto’:
Manifesto for Agile Software Development
We are uncovering better ways of developing
Individuals and interactions over processes and tools
That is, while there is value in the items on
- Agile shifts much of the responsibility for determining how things will get done to the team members and away from the project manager and managers. Managers do not rely on status reports and reams of documentation. Instead managers rely on a steady stream of delivered, finished products as an indicator of project success.
- Much of requirement gathering and communication is done through user stories. These stories are concise and illustrate in a meaningful way what is to be accomplished to meet the requirement. This requires more user involvement with the development process than usually occurs in traditional methods.
- Their is a lot of flexibility in Agile as the process is intensely iterative (in Scrum an iteration is known as a Sprint).
- There is a focus on trust and openness in communication about work done, obstacles and issues. These are usually communicated during daily stand up meetings with the rest of the team. They are stand up to keep them short and to the point.
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight & visual
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test early and often
10. A collaborative & cooperative approach between all stakeholders is essential
Agile is an umbrella term for more specific methodologies such as DSDM, Scrum and XP (Extreme Programming). While agile seems magical, it is not a magic bullet. It does not seem to be a good fit for company cultures that are very traditional and bureaucratic. It also may not be good for projects that are very well defined and therefore do not need an intensely iterative process.