SlideShare a Scribd company logo
Agile is as Agile DoesClint EdmonsonEvangelist, Microsoft
Got process?
Businesses live or die bytheir repeatable processes.
Capability Maturity Model Index
Defined vs. Empirical ProcessesHow would you code an algorithm to keep this room at a constant temperature for the entire day? (What variables would you consider?)Defined processes try to predict the futureEmpirical processes adapt to the futureFrequent inspection Just in time planning
Lean
Eliminate wastePoor requirementsUnnecessary functionality, code, documentationDelays in the development processSlow or poor internal communicationBureaucracyEmpower the team to recognize and eliminate it!
Amplify learningAccept that software development is a continuous learning processIterate to learn and adaptFail early and fail often!
Decide as late as possibleChange happensDon’t fight itAccept it and adapt to itEach iteration should still have an explicit planning phase.
Deliver value as fast as possibleEmbrace continuous deploymentKeep iterations short, short, short!Relish feedback and evolve with the next iteration
Empower the teamAvoid command and control management styleAvoid rigidly defined rolesTeam should have direct access to the customerTeam is responsible for “done done”Give them responsibility and accountability and they will take ownership.
Build integrity inBuild in integrity checks – unit tests become regression testsRefactor aggressively to retain emergent architectural integrityThere should be NO code you’re afraid to touch.
See the wholeUnderstand the whole domain and problem spaceSegregate along functional boundaries instead of cross cutting technical concernsCultivate high value communicationProvide the team with a higher purpose to work towards
Agile
What is Agile?AgileAgile is a movement…represented by a set of methodologies…comprised of a set a best practices.ScrumXPFDDOthersCITDDBDDStandUpsBurn-downDomain ModelProductBacklogRefactorPairwise ProgrammingSprintBacklogFeature Team
Agile ManifestoWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
Agile principlesCustomer satisfaction by rapid delivery of useful softwareWelcome changing requirements, even late in developmentWorking software is delivered frequently (weeks rather than months)Working software is the principal measure of progressSustainable development paceClose, daily co-operation between business people and developers
Agile principlesFace-to-face conversation is the best form of communication (co-location)Projects are built around motivated individuals, who should be trustedContinuous attention to technical excellence and good designSimplicitySelf-organizing teamsRegular adaptation to changing circumstances
Agile Practices(by priority)
Business ValueCustomer representation on teamEvocative vision documentUser storiesUse casesPrioritized backlogFeature teams
Time to marketIterative developmentContinuous integrationRelease often
Quality to marketTest driven requirementsTest driven development (Red, Green, Refactor)Done Done statePair programming
FlexibilityEmergent/evolutionary architecture and designRefactoring (Green code only)Self-organizing teams
VisibilityInformation radiators Project backlogDaily stand-up meetingsCustomer demos
Cost reductionCross-functional teamsCo-located teamsSimple design (YAGNI)
Product lifetimeCollective code ownershipCoding standardsAutomated functional testingRetrospectivesSustainable pace
Supporting practicesTrainingCoaching & mentoringWorkshopsReading circlePlanning poker2 pizza teamsEngaging the community
Success factorsFreedom to changeEnergized teamCommunication with customerCollaborationAttention to qualityIncrementalismAutomationContinuous improvement
Anti-patternsNo definitive processGuestimating & estiquotesHuge casesTechnical debtEgosScrummerfallScrumdamentalismLarge, complex, high risk projects
Agile Adoption“Agile processes have not only gained increasing adoption levels; they have also rapidly joined the mainstream of development approaches.”a “Agile Development:  Mainstream Adoption Has Changed Agility – Jan 2010”, Forrester
Agile Adoption“In the past five years, Forrester has seen a growing interest in the adoption of Agile processes. This interest is slowly changing to adoption. In 2008, even shops that weren’t moving immediately to Agile processes began to take baby steps in that direction.”aa “Make Agile Lean – Dec 2008”, Forresterb “Microsoft ALM Consulting Day – Mar 2009”, Forrester presentation; c “State of Agile Development – July 2008”, Version One
Scrum
SCRUMSimple and lightweight framework for lean and agile practicesTime-boxed events to control chaosSimple, straight forward roles for accountabilityTransparent artifactsEmpirical inspection and adaptation to reach goalsSimple rules that facilitate complex emergent behavior
EventsSprintIterative development period not to exceed one monthSprint planning meeting8 hoursPrioritize product backlog and select items for the sprint backlogDaily stand up meeting15 minutes, What was accomplished since last meeting?What are you doing today?Do you have any impediments?Sprint Review meeting4 hoursReview what was completed and not completed during springDemo the completed work with stakeholdersSprint retrospective3 hoursWhat went well?What could be improved?
RolesProduct ownerTeamScrum master
ArtifactsProduct backlogSpring backlogBurn down chart
ReferencesAgile in a Flash – Langr and OttingerAgile Adoption Patterns - ElssamadisySucceeding with Agile – CohnAgile Project Management with Scrum – SchwaberThe Agile Sumurai – RasmussonUser Stories Applied – Cohn
Clint Edmonsonhttp://www.notsotrivial.netclinted@microsoft@clinted

More Related Content

Agile is as Agile Does

  • 1. Agile is as Agile DoesClint EdmonsonEvangelist, Microsoft
  • 3. Businesses live or die bytheir repeatable processes.
  • 5. Defined vs. Empirical ProcessesHow would you code an algorithm to keep this room at a constant temperature for the entire day? (What variables would you consider?)Defined processes try to predict the futureEmpirical processes adapt to the futureFrequent inspection Just in time planning
  • 7. Eliminate wastePoor requirementsUnnecessary functionality, code, documentationDelays in the development processSlow or poor internal communicationBureaucracyEmpower the team to recognize and eliminate it!
  • 8. Amplify learningAccept that software development is a continuous learning processIterate to learn and adaptFail early and fail often!
  • 9. Decide as late as possibleChange happensDon’t fight itAccept it and adapt to itEach iteration should still have an explicit planning phase.
  • 10. Deliver value as fast as possibleEmbrace continuous deploymentKeep iterations short, short, short!Relish feedback and evolve with the next iteration
  • 11. Empower the teamAvoid command and control management styleAvoid rigidly defined rolesTeam should have direct access to the customerTeam is responsible for “done done”Give them responsibility and accountability and they will take ownership.
  • 12. Build integrity inBuild in integrity checks – unit tests become regression testsRefactor aggressively to retain emergent architectural integrityThere should be NO code you’re afraid to touch.
  • 13. See the wholeUnderstand the whole domain and problem spaceSegregate along functional boundaries instead of cross cutting technical concernsCultivate high value communicationProvide the team with a higher purpose to work towards
  • 14. Agile
  • 15. What is Agile?AgileAgile is a movement…represented by a set of methodologies…comprised of a set a best practices.ScrumXPFDDOthersCITDDBDDStandUpsBurn-downDomain ModelProductBacklogRefactorPairwise ProgrammingSprintBacklogFeature Team
  • 16. Agile ManifestoWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
  • 17. Agile principlesCustomer satisfaction by rapid delivery of useful softwareWelcome changing requirements, even late in developmentWorking software is delivered frequently (weeks rather than months)Working software is the principal measure of progressSustainable development paceClose, daily co-operation between business people and developers
  • 18. Agile principlesFace-to-face conversation is the best form of communication (co-location)Projects are built around motivated individuals, who should be trustedContinuous attention to technical excellence and good designSimplicitySelf-organizing teamsRegular adaptation to changing circumstances
  • 20. Business ValueCustomer representation on teamEvocative vision documentUser storiesUse casesPrioritized backlogFeature teams
  • 21. Time to marketIterative developmentContinuous integrationRelease often
  • 22. Quality to marketTest driven requirementsTest driven development (Red, Green, Refactor)Done Done statePair programming
  • 23. FlexibilityEmergent/evolutionary architecture and designRefactoring (Green code only)Self-organizing teams
  • 24. VisibilityInformation radiators Project backlogDaily stand-up meetingsCustomer demos
  • 26. Product lifetimeCollective code ownershipCoding standardsAutomated functional testingRetrospectivesSustainable pace
  • 27. Supporting practicesTrainingCoaching & mentoringWorkshopsReading circlePlanning poker2 pizza teamsEngaging the community
  • 28. Success factorsFreedom to changeEnergized teamCommunication with customerCollaborationAttention to qualityIncrementalismAutomationContinuous improvement
  • 29. Anti-patternsNo definitive processGuestimating & estiquotesHuge casesTechnical debtEgosScrummerfallScrumdamentalismLarge, complex, high risk projects
  • 30. Agile Adoption“Agile processes have not only gained increasing adoption levels; they have also rapidly joined the mainstream of development approaches.”a “Agile Development: Mainstream Adoption Has Changed Agility – Jan 2010”, Forrester
  • 31. Agile Adoption“In the past five years, Forrester has seen a growing interest in the adoption of Agile processes. This interest is slowly changing to adoption. In 2008, even shops that weren’t moving immediately to Agile processes began to take baby steps in that direction.”aa “Make Agile Lean – Dec 2008”, Forresterb “Microsoft ALM Consulting Day – Mar 2009”, Forrester presentation; c “State of Agile Development – July 2008”, Version One
  • 32. Scrum
  • 33. SCRUMSimple and lightweight framework for lean and agile practicesTime-boxed events to control chaosSimple, straight forward roles for accountabilityTransparent artifactsEmpirical inspection and adaptation to reach goalsSimple rules that facilitate complex emergent behavior
  • 34. EventsSprintIterative development period not to exceed one monthSprint planning meeting8 hoursPrioritize product backlog and select items for the sprint backlogDaily stand up meeting15 minutes, What was accomplished since last meeting?What are you doing today?Do you have any impediments?Sprint Review meeting4 hoursReview what was completed and not completed during springDemo the completed work with stakeholdersSprint retrospective3 hoursWhat went well?What could be improved?
  • 37. ReferencesAgile in a Flash – Langr and OttingerAgile Adoption Patterns - ElssamadisySucceeding with Agile – CohnAgile Project Management with Scrum – SchwaberThe Agile Sumurai – RasmussonUser Stories Applied – Cohn

Editor's Notes

  1. Lean & AgilePhoto credits: Flickr creative commons - http://www.flickr.com/photos/randysonofrobert/340282243/
  2. Agile is as Agile Does Level 100Lately that the terms Agile and Lean have been thrown around casually with little disregard for what they truly mean and how they can be applied correctly. Join us in this session for a lively, interactive discussion about what it means to be lean and agile and how we can incorporate the principles and practices from each of these industry movements to help us build world class software.
  3. State of Agile Development – July 2008, 3,061 respondents from 80 countries.* “Which of the following do you employ within your Agile methods?”
  4. Definition: A framework within which people can address complex problems, and productively and creatively develop products of the highest possible value