SYSK 6: Summary of agile methodologies

Agile Manifesto (http://AgileManifesto.org):
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan

“While there is value in the items on the right, we value the items on the left more.”

Here are some of the agile methodologies:

Scrum - Ken Schwaber and Jeff Sutherland
“Scrum is superimposed on top of and wraps existing engineering practices”, Agile Software Development With Scrum
- Requirements managed through project backlog
- Short fixed iterations called “sprints”, typically one month
- Daily 15 minute “scrum meetings”
- Daily schedule updates, developing a “burn down graph” for each sprint
- Prescribes an open working environment with team sharing large room

Adaptive Software Development (ASD) - Jim Highsmith
- Defines three main phases: speculate, collaborate, and learn
- Designed to be managed “balanced on the edge of chaos”
- Iterative within the collaborate phase, time boxed
- Recognizes different levels of practice depending on project size
- Learn phase specifically addresses unrealistic “get it right all the time” mentality
- Variation tolerant – doesn’t insist that process be rigidly followed

Lean Development (LD) - Bob Charette, ITABHI
- Proprietary commercial product
- Like ASD, made up of three phases: startup, steady state, and transition-renewal
- Steady state is a series of short spirals
- Engages even top executives in the process via strategic risk/opportunity-based approach

Crystal - Alistaire Cockburn
“The project has two goals: to deliver the software and to create an advantageous position for the next game.” ,  Agile Software Development
- Family of methods: Crystal Clear, Yellow, Orange, Red
- Variants address size of team and criticality in terms of less (comfort, discretionary money, essential money, life)
- Cockburn advocates lighter is better as long as it lasts approach
- Crystal processes do explicitly demand documentation

eXtreme Programming - Kent Beck, Ward Cunningham (MSFT), Ron Jeffries
Most well-known agile methodology
- Customer continuously present
- Story card planning game
- Short cycle time, no more than three 3 weeks
- Collective ownership, anyone can work on anything
- Emergent design through refactoring
- Test-first TDD with continuous integration
- 40 hour work week

Feature Driven Development (FDD) - Jeff De Luca

Dynamic Systems Development Method (DSDM) - Consortium-driven
- Five phase approach: feasibility, business study, functional model iteration, design and build iteration, and implementation
- Strong project management emphasis with planning inherent in each phase
- Plans evolve based on increments and their results
- Scripts help define management activities throughout the life cycle
- Now being commercialized with supporting products and tools
- More structured like RUP, yet risk management helps achieve greater agility

Microsoft Solutions Framework (MSF) - Microsoft, Randy Miller, Paul Haynes
- MSF 3.0 was more formal, but a new agile template is being introduced
- Personas are defined first, more important first
- Scenarios are defined for each persona, scenario list is main “to do” list
- 3 week staggered iterations
- Unit tests checked in with code, targeting 100% code coverage
- Integration, testing generate metrics about tests being run, overall code coverage
- MSF plugs into MOF (Microsoft Operations Framework)

Quarterly Release Model (QRM) - Dennis Cronin (MSFT)
- Release every three months
- Be agile, but avoid "ready, fire, aim!"
- Plan to be cancelled
- Demo weekly
- Testability Driven Development
- Pipeline the planning
- Build always
(Developed at MSFT but no longer used – Dennis’ team now uses Scrum)

Agile at Microsoft
- Exchange Build Tools Team – XP
- MSBuild – TDD & Scrum
- MapPoint – XP & Scrum
- MBF (Fargo) – Scrum, TDD
- MS Broadband Networking – Scrum

Source: PPT from Patrick Bristow (sorry, no link available)