Agile Development is Doing Things We Already Know Differently
It’s a project management framework that emphasizes…- High performing teams, not high performing individuals
- Getting started when “just enough” detail is available
- Responding quickly to change
- Customer engagement & feedback
- Frequent delivery of the software that is of the highest business value
Our customer assessments have offered some interesting metrics around the results of small, medium and large software projects:
- %90 of small software projects are delivered on time and on budget
- %60-70 of medium software projects are delivered on time and on budget
- %50 of large software projects are delivered on time and on budget
Agile Development is High Performing Teams Not Individuals
Project teams are self-organized, self-directed, cross functional, work collaboratively and meet often. In a self-organized, self-directing team, the team members estimate work effort for tasks and they choose which tasks they will work on. No one is looking over their shoulder or ensuring they are “being productive”. There is however, a highly visible metric on the progress the team is making towards the commitments they made “as a team”, it’s the Burn Down Chart. Also, the daily agile stand-up meeting provides the entire team with insight into one anothers progress. This peer-to-peer visibility is a strong motivator. The cross functional aspect of the team means the team is made up of a group coming from what could potentially exist today across different business units. The team would include a combination of business analysts, developers, quality testers and business and client representation each performing their various chosen tasks and responsibilities within the project iteration.s (e.g. three week periods). The entire team commits to the work and goals together. When they complete the goals successfully they succeed together and when they don’t… it’s together too. Since a project includes multiple iterations, the team learns from each experience, finds efficiencies, reuses approaches that worked, scratches those that didn’t. After a few iterations, the team starts working like a well oiled machine, with each component running at peak performance.Agile Development is Getting Started
Whereas more traditional project management approaches gather “all” the requirements up front, we call this BRUF – Big Requirements Up Front (and we all know they are usually wrong), agile says if you have enough information to start building and finish the iteration with working software, then go for it! Thus, potentially reducing the ramp up time of a project and delivering business value earlier.Agile Development is Responding to Change
Each iteration of an agile software development project involves a feedback component and review of the priorities. This gives the project the ability to respond to change. Here is an example:- At the end of the iteration the team schedules a demonstration of their “working software” and collects feedback. One key stakeholder who attends the demo say’s “well, now that I see it, I think it should look like…” The team captures the feedback to be prioritized before the next iteration starts.