Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Overcoming Waterfallacies & Agilephobias

655 vues

Publié le

Publié dans : Business, Technologie
  • Soyez le premier à commenter

Overcoming Waterfallacies & Agilephobias

  1. 1. Transitioning to Agile:Overcoming Waterfallaciesand AgilephobiasMike CohnMay 15, 20071
  2. 2. © Mountain Goat Software, LLC1. Why transitioning to agile is hard2. A framework for transitioning3. Overcoming waterfallacies andagilephobiasTopics today...2
  3. 3. © Mountain Goat Software, LLCWhy Transitioningto AgileIs Hard3
  4. 4. © Mountain Goat Software, LLCThree reasons1Change is not top-down orbottom-up; it’s both3The transition process mustbe congruent with thedevelopment process2 We fall into the predictabilitytrap4
  5. 5. © Mountain Goat Software, LLCTop down or bottom up?Two simplistic views of transitioning to agile:Top downPowerful leader shares a visionBottom-upnew approachBut, transitioning to agile is neither top-downnor bottom-upIt’s everywhere, all together, all-at-once15
  6. 6. © Mountain Goat Software, LLCHow we traditionally view our organizationsBehavior is highly predictableOnce set in motion, will continue in motionPredictableAn organization change strategy can bemapped out:And we’ll end up right where I predictDispense with predictability26
  7. 7. © Mountain Goat Software, LLC“This machine imagery [Newtonian view]leads to the belief that studying the parts isthe key to understanding the whole.Thingsare taken apart, dissected literally oris that the more we know about theworkings of each piece, the more we willlearn about the whole.”~Margaret Wheatleyin Leadership and the New Science7
  8. 8. © Mountain Goat Software, LLCWhat we do on projectsOn projects we learn we cannot precisely anticipate:our users’ requirementshow long it will take to develop a feature or entire systemwhich design will be bestthe set of tasks necessary to develop a featureSo we devise alternative approachesRather than ask for upfront specs, we deliver partialsolutions, solicit feedback, and repeatRather than design the whole system, we designincrementally and adjust based on what we learnWe need to do the same for the transition effort8
  9. 9. © Mountain Goat Software, LLCUse a congruent approach3Part of the move toagile is a move toself-organizing teamsMoving to self-organization requiresself-organization“You will self-organize!”9
  10. 10. © Mountain Goat Software, LLCA FrameworkforTransitioning10
  11. 11. © Mountain Goat Software, LLCAn agile processCancelGift wrapReturnIteration2-4 weeksReturnIteration goalIterationbacklogPotentially shippableproduct incrementProductbacklogGift wrapCouponsCancelDaily.........Transitionbacklog...IterationmonthlyWeeklyAlteredorganizationAn agile transition process11
  12. 12. © Mountain Goat Software, LLCActivitiesto supportthe goalsQuarterly Monthly3-4 goalsDecide how pervasive to gowith agile—developmentonly or full companyAllIdentify which issues agilecan solve or help with.DFTransitionbacklogWeeklyDiscussprogressRemoveimpedimentsMeet weekly to execute,monthly to plan,quarterly to strategize12
  13. 13. © Mountain Goat Software, LLCTreat the transition as a projectEstablish an “Agile Transition Team” (“AgileAdoption Team,” etc.)Who?Sponsor—senior person responsible for successArea managers or leads who can make it happenMeet weeklyRun monthly iterations managing work from aTransition BacklogRun a quarterly cycle like the release cycle on an agileproject13
  14. 14. © Mountain Goat Software, LLCOvercomingWaterfallacies14
  15. 15. © Mountain Goat Software, LLCWaterfallacynoun.mistaken belief or idea about agile thatstems from prolonged exposure towaterfall projects15
  16. 16. © Mountain Goat Software, LLCand a commitment to what willbe in the product.1Is the answer just to under-commit and then deliver morethan expected?16
  17. 17. © Mountain Goat Software, LLCKnowing the scope and dateIt’s always been impossible to know both the scopeand the date of a projectThe vast majority of waterfall projects get this wrong, tooso by either padding or lyingIf we acknowledge the impossibility of guaranteeingfunctionality and date17
  18. 18. © Mountain Goat Software, LLCKnowing the scope and dateIt’s always been impossible to know both thescope and the date of a projectThe vast majority of waterfall projects get thiswrong, tooAnd then end up delivering too little of the wrongfunctionalityboth do so by either padding or lying18
  19. 19. © Mountain Goat Software, LLC1. acknowledge the impossibility of guaranteeingfunctionality and date2.risk managementIf we...And use the same principles on non-contractedprojects that have a similar need for a low risk ofdropped scope or schedule overrunThen we...19
  20. 20. © Mountain Goat Software, LLCFixed-date planning: an exampleDesiredrelease date30 JuneToday’s Date 1 JanuaryNumber ofsprints6 (monthly)Lowvelocity15Highvelocity206×156×20Will haveMight haveWon’t have20
  21. 21. Fixed-date contracting6×156×20Will haveMight haveWon’t haveYou won’t likely win the contractBut you’ll probably make moneyif you doIf you write a contractfor just the will haves:You will likely win the contractBut probably not make moneyon itIf you write a contract thatincludes the might haves:It’s a risk issueWhere do you want to be?21
  22. 22. © Mountain Goat Software, LLCFixed-scope planning: an exampleTotal story points desired 120Low velocity 15High velocity 20120÷20=120÷15=22
  23. 23. Fixed-scope contractingYou’ll likely win the contractBut may not make any moneyIf you write a contractfor the short duration:You probably won’t win thecontractBut will make money if youIf you write a contractfor the long duration:It’s a risk issueWhere do you want to be?23
  24. 24. © Mountain Goat Software, LLCThe value of customer feedbackprojects harderBecause it acknowledgesthe importance of customer feedbackand the existence of emergent requirementsSequential processes treat these as changes ofscope24
  25. 25. © Mountain Goat Software, LLCAgile requires our testers to beinvolved and testing right fromthe start. But they’re tied up onother projects.2We can’t move to agile becausewe can’t move testers fromthese other projects.25
  26. 26. © Mountain Goat Software, LLCAgile is not a silver bulletDoesn’t solve a single problem you have, onlyexposes the problems you do haveHopefully exposes these problems to thosewho can solve themBy repeatedly solving the problems youidentify, things improveAgile is hard workThere will be days you wonder why you’re doingthis26
  27. 27. © Mountain Goat Software, LLCDigging out of this problemdo soPerhaps just enough to move some small number of testers(1?) to the new projectHave the new project run cross-functionallyWhole team does whatever it takes to pay off the testingdebtRule from day one: On new projects don’t allow anynew debt to build up27
  28. 28. © Mountain Goat Software, LLCAgile requires everyone to bea generalist.3That isn’t cost-effective anddoesn’t make sense for myproject. Some of what we dois highly specialized.28
  29. 29. © Mountain Goat Software, LLCEveryone must be a generalistoutWhy can’t we?Not everyone needs to be a generalistpeople;“generalizing specialists”This happens naturally on most agile teams becauseof their cross-functional compositionSome domains require specialistsbioinformatics, video game development, etc.29
  30. 30. © Mountain Goat Software, LLCWe work in distributedenvironment, frequently withsome team members in India,China, or the Ukraine. Self-organization seems to clashwith some cultures.4How will agile developmentwork in these environments?30
  31. 31. © Mountain Goat Software, LLCSelf-organization around the worldI suspect it’s true that that self-organizing teams inthe different countries will organize differentlyorganizationSelf-organization relies onContainer (in which to organize)Differences (among people)Transforming ExchangesSelf-organization leads to more creativity, ownership,productivity, engagement31
  32. 32. © Mountain Goat Software, LLCAgile relies primarily on face-to-face communication. Ourprojects are distributed acrossmany time zones.And manypeople choose to work fromhome.5How does this work withagile?32
  33. 33. © Mountain Goat Software, LLCMulti-site agileWe rarely choose to highly distribute a project forWe do it for cost or because of mergers and similarreasonsWorking from home is detrimental to the short-term progress of the projectBut may be necessary for the long-term success (e.g.,it’s a recruiting tool)Experiment: Is it better to all be at home one day perweek or all on different days?33
  34. 34. © Mountain Goat Software, LLCEncourage face-to-face communicationDo whatever you can to have as much face-to-face communication as possibleVideoconference > phone > emailFly people together at the start of the projectSend three people from one to the otherGet people together for iteration planningmeetings and reviews34
  35. 35. © Mountain Goat Software, LLCI’m afraid I’ll have nothing to doI’m afraid I’l lose my jobI’m afraid people will see how little I actually doI’m afraid I wont be able to keep upI’m afraid I won’t be able to learn the new softwareI’m afraid this will mean hard workAgilephobianoun.strong fear or dislike of agile, usually due tothe uncertainty of change35
  36. 36. © Mountain Goat Software, LLCMore agilephobiasI’m afraid I won’t get raises or promotions anymoreDrat! There go my 3-hour lunchesDrat! This means I can’t mosey in at 10:30 anymoreDrat! This means I’ll have to actually think nowDrat! This means I’ll actually have to talk to people nowIt’s just so much easier and safer when someone else tells meexactly what to doIts just so much easier and safer when I can tell them exactlywhat I want them to do36
  37. 37. © Mountain Goat Software, LLCOvercoming agilephobiasBeing aware of what people fear is half thechallengeAcknowledge these agilephobias and over timework to have solutions for themOver time people will lose their fear of losingtheir jobBut will likely still need revised job descriptions inan agile enterprise37
  38. 38. © Mountain Goat Software, LLCMike Cohn contact infomike@mountaingoatsoftware.comwww.mountaingoatsoftware.com(303) 810-2190 (mobile)38
  39. 39. © Mountain Goat Software, LLCAgile puts a lot of emphasison unit testing. I’m notworking on a legacyapplication (yet!) but we arenine-months in and haven’tmade automated testing apriority.6Can we still be agile?39
  40. 40. © Mountain Goat Software, LLCAgile without a lot of tests in placeTwo most important principles of agile:1. Inspect and Adapt2. IterateStart where you are, do something, seehow you didAnd then do it again until you get towhere you want to be40
  41. 41. © Mountain Goat Software, LLCA three-step process1We end this iteration with less manual testing thanwe started.Go after the “low-hanging fruit” by automatingsome easy-to-automate tests of great value.2All new features come with automated tests.3Everything (maybe, we hope) has an automatedtest.41
  42. 42. © Mountain Goat Software, LLC2003004005001 2 3 4 5 6 7Months (Iterations)HoursofManualTesting42
  43. 43. © Mountain Goat Software, LLCMike Cohn contact infomike@mountaingoatsoftware.comwww.mountaingoatsoftware.com(303) 810-2190 (mobile)43