It is currently the vogue for executives to tell their IT groups to “Go Agile.” The IT manager then skims through the Agile book that they were handed, then goes about trying to implement some of the Agile best practices. Once that fails, they either give up, or bring in someone to help.
This is where I usually come in. At this point, people aren’t excited to hear about another Agile push. I don’t really blame them; if what they had seen to date was Agile, I wouldn’t be too excited, either.
What is the Agile Methodology?
A number of methodologies were formed to address the failures of Waterfall, which included analysis paralysis, long waits to get return on investment (one big release at the end of the project), locked in plan that resisted change at all costs, etc. They also addressed problems with the RUP methodology, which although iterative, was, at the time, heavy on documentation and process. The new methodologies shared a number of best practices, and the general movement became known as Agile.
Some of the better known Agile methodologies are XP, Scrum, DSDM, AUP, ASD, and Crystal. Although each has its own spin, they agree on many points. The Agile movement was solidified when representatives from a number of Agile methodologies met in 2001 and produced the Agile Manifesto. The groups also agreed to the shared principles behind the manifesto.
One of the best aspects of Agile is that it is not a dogmatic approach, but rather a collection of best practices that should be used as they make sense for each project.
Agile Best Practices
The best approach to implementation of a new methodology such as Agile is one best practice at a time, with 1-2 teams at a time. Get a win or two under your belt, and people start to see the light. Here are some of the best practices that are generally accepted by the various Agile methodologies.
- Agile Project Planning – User story requirements gathering that avoids heavy documentation, plus prioritization, estimation and overall project planning.
- Iterative development – Deliver value early and often. Includes iteration planning and an iteration review.
- Daily team interaction – Enable daily face-to-face communication between developers and the business.
- Daily stand-up meeting ("scrum") – Short daily meeting to clear roadblocks and keep everyone on the same page.
- Welcome changing requirements – Even late in development, changing requirements should be welcomed.
- Sustainable development pace – A reasonable, sustainable work pace and avoid the death marches that lead to burnout and turnover.
There are some additional Agile practices that have less universal support but are nevertheless closely associated with Agile.
- Test-driven development – Developers create their tests before development. Development is complete when they pass their tests.
- Pair programming – Developers are paired for an iteration to work together.
No comments:
Post a Comment