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)


Comments (0)