Upload
apple-orange
View
12
Download
0
Embed Size (px)
DESCRIPTION
Agile Planning
Citation preview
1
SuccessfulAgilePlanning:AnIterationHow‐To
Agiledevelopmentpractices,whenperformedcorrectly,arelightweightandinexpensive,avoidwastedcycles,andensurethatjusttherightfeaturesarebuilt.Inthisarticleyouwillfindsuccessfulwaystomakeandmeetiterationcommitments,techniquesforleadingateamorteamsthroughaneffectiveiterationplanningmeeting,andtipsonhowtoestablishpriorities,sizeyourstories,andplanyouriterationsbetter.
ThoseWhoDotheWork,PlantheWorkIamveryfortunateasanAgileCoachwithRallytoconstantlybearoundteamswhowanttobecomeleanerandmoreagile.Thosewhodothework,plantheworkisaprincipleIholddear,yetitisastruggleformanytocreatesuchaself‐organizing,self‐managingteam.IwasremindedofthisinJulyofthisyear(2009).IwasinvitedtogiveawebinaronAgilePlanning.Iexpectedperhapsafewdozenattendeesyet1400peopleregisteredand3monthslaterIwasstillansweringquestions.Thecontentofthatwebinaristheinspirationforthisarticleandmytargetaudienceistheteamthatisnewtoagileandleanconcepts.
TheMechanicsofanAgileIterationMostoftoday’sagileteamsuseiterationstomaintainaconstanttempo.Theiterationbeginswhentheteamselectstheproductfeaturestobedeliveredattheendoftheiteration,identifiesthetasksneededtocompletethosefeaturesandcommitstotheiteration.Duringtheiterationthedeliveryteammeetseachdaytoplanthatday.Attheendoftheiterationtheteamproducesapotentiallyshippableproductincrement.
2
TheProductBacklogisthelistofdesiredproductfeatures.Itisexpressedsothateachitemisvaluefocused.ItisownedandprioritizedbytheProductOwner.TheProductOwnerrepresents(oris)theuser/client.Theyactasonevoiceeveniftheyarenotoneperson(Roth2009).MostagileorganizationsuseUserStoriestodescribetheirProductBacklogitems.Storiesshouldbedescribedbrieflywithdetaildeferreduntilclosertothetimethatcommitmentsneedtobemade.Deferringcommitmentisaleanprinciplethathelpsusavoidthewasteofdetailingstoriesthatmayneverbeimplementedandalsoallowsustomakedecisionswiththemaximumamountofinformationpossible.ThelistoftaskstobecompletedintheiterationistheIterationBacklog.ThesetasksareperformedbyaDeliveryTeamconsistingof5‐9individualswhocommittotheworktheyselectforiteration.TheScrumMasterfacilitatestheteamandtheteam’srelationshipswithoutsideinterests.Theyenforceagilevaluesandpracticesanddon’tmakedecisionsfortheteamortimeandbudgetcommitmentsontheteam’sbehalf.
GroomingtheBacklogBeforeateamplanstheiterationtheProductBacklogneedstobegroomedtoensurethatthebacklogitemsarereadytobeworkedon.ThisisacollaborativeeffortinvolvingtheProductOwnerandtheDeliveryTeam.TheProductOwnerdetermineswhattheprioritiesareandensuresthateveryoneunderstandscriteriaforacceptanceofthebacklogitems.Theteamneedstoestimatethesizeofthebacklogitemsandthosethatarehighpriorityandtoolargetobe
3
completedinaniterationneedtobebrokendown.
AcceptanceCriteriaUserStoriesbydefinitionconsistofabriefdescription.Thisisnotenoughinformationtoestimatethestory,implementthestoryandtoverifywhethertheimplementationmeetsexpectations.Thereforebeforetheteamstartsplanningweneedtoensurewehaveclearandverifiableacceptancecriteriaforeachstory.Therearevariousformsfordocumentingacceptancecriteria.Asimpleformisjustabulletedlist.Identifyingacceptancecriteriacanoftenrevealnewstoriesthatmayaffectprioritiesfortheupcomingiteration.
PrioritizingtheBacklogTheProductOwnerprioritizestheProductBacklog.Astackrankingispreferredwherenotwoitemshavethesamepriority.ThiscanbeachallengewheretherearemultipleProductOwnersbutasimpletechniquesuchasdot‐voting(Tabaka2006)canhelp.WheretheProductOwnerisrepresentingalargeconstituencymorethoroughtechniquessuchasKanoAnalysisandRelativeWeightingcanbeemployed(Cohn2006).OftensizeestimatesaffecthowaProductOwnerfeelsaboutprioritiessoitisexpectedthatprioritieswillberevisitedafterestimation.
EstimatingtheBacklogEstimatingisakeycomponentoftheself‐organizing,self‐managingagileteam.Ifwecanbuildareliableestimationcapabilitywecancouplethatwithempiricalknowledgeoftheteam’svelocitytosetexpectationsandmakecommitments.Traditionallyinproductandsystemdevelopmentwearenotgoodatestimatingourtimetocompletework.Itturnsoutthoughthatweareverygoodatcomparingthings.Trybreakingachocolatebarintwoandaskingachildwhichisthelargerpieceandyou’llseewhatImean.Agileteamsbuildonthisabilityandestimatethesizeofworkbycomparingbacklogitemswitheachother.Forexample,letssayyouhavesomepilesoflogstobesplitbeforewinter.You’veneversplitlogsbeforesoyouhavenoideahowlongitwilltakebutyoudecidetodedicate2hrsadaySaturdaysandSundays.Beforeyoustartyoudecidetoestimatethesizeofthepilessoyoucanmonitoryourprogress.Youcouldcountthelogsineachpilebutthat’salotofworkanditwouldtakeawayfromyoursplittingtime.Insteadyoudecidetomakearoughestimate.Thereisonesmallpile.Asecondpileisroughlytwicethesizeandthelastpilehasmaybethreetimesasmanylogs.Youassignthenumbers1,2and3tothelogpilestoindicaterelativesize.Afterone
4
weekendyougetthesmallestpiledoneandyouestimateyouhaveabout5weekendsworthofworklefttodo.Agileteamsuseasimilarrelativeestimationtechnique.Justasweassignedunit‐lessnumbers1,2and3toourlogpilestoindicatetherelativesize,agileteamsassignstorypointstothebacklogitemstheyestimate.TeamswilloftenusethemodifiedFibonaccisequence(1,2,3,5,8,13)asagoodsequenceofnumberstouseforestimation.Ofcoursesoftwareisnotastangibleaslogsorchocolatebarshowever,wedohavealotofbuilt‐inexpertknowledgethatevenwearenotconsciouslyawareof(Sorowiecki2005)andusinganestimatingtechniquesuchasPlanningPoker(Cohn2006)canbeverypowerfulforcollectingthatknowledgeandbringingadiversityofexperienceandintellecttobearinproducingestimatesthatthewholeteamcanbuy‐into.Relativeestimationisquickerthanabsoluteestimation.Wheneverdaysandhoursenterthediscussionthedialogquicklygetsdowntotheminutiaeandthereistheaddedpressure(realorotherwise)togetitright.Alsowithrelativeestimation,ourestimatesdon’tdecay.Wemayspeedupandgetbetteratsplittinglogsbutthatsecondpileisalwaysgoingtotaketwiceaslongasthefirst.
VelocityAfterafewiterationsagileteamswillestablisharhythmwherethenumberofstorypointscompletedperiterationstabilizesandbecomespredictable.Thismeasureiscalledtheteam’svelocity.Velocitycanbeveryvaluableforsettingexpectationsandplanningreleasesanditerations.Intheexampleshownheretheteamshouldplanonbetween8‐10storypointsperiteration.
DefinitionofDoneBeforeiterationplanningthereneedstobeaclearunderstandingbetweentheteamandtheProductOwnerofwhat“done”meansfortheiteration.
TheRallyTeam’sDefinitionofDoneAlltaskscompleteAlltestsrunningandpassingManualwalkthroughscompleteonallfully
supportedbrowsersMigrationsandWebServicesupdatesreviewedOps&On‐PremiseimpactrecordedUsergesturetrackingaddedPerformancetestresultsreviewedAlldefectsclosedbytestersUXreviewcompleteAcceptedbyProductOwners
5
Thegoldstandardistodeliverapotentiallyshippableproductincrementbut,formostteams,theDefinitionofDonedefinestheverybestthingthattheteamcandoeachiteration.Thegapbetweenwhattheteamproduceseachiterationandwhatittakestoactuallyshipistechnicaldebt,workweneedtodobeforeweshipandthisworkneedstogobackonthebacklogtobescheduledbytheProductOwner.TheDefinitionofDoneshouldberevisitedandupdatedeachiterationasthedefinitionwilllikelychangeaswegainnewskills,knowledgeandtechnology.
PlanningtheIterationIterationplanningoccursonthefirstdayoftheiteration.Aguidingtenetis‐thosewhodothework,planthework‐soitisessentialthattheentireDeliveryTeamparticipateinplanning.Itisacollaborative(notdirected)exercisefacilitatedbytheScrumMaster.TheProductOwnerisakeyparticipantwhowillanswerthetoughquestionsabouttheProductBacklogthatariseduringiterationplanning.Attheendofiterationplanningtheteammakesacommitmenttodelivertheselecteditems.Thereisalsoareciprocalcommitmentthat(barringemergencies)theProductOwnerwillnotchangethescopeoftheiteration.TheteamonlyplanstheworktheyknowtheycancommittocompletingandthisdetermineswhattheypullfromtheProductBacklog.Theteam’svelocitymaybeenoughtohelpinthisdecision.However,newteamsontheirfirstorearlyiterationswilleithernotknowtheirvelocityorwillnothaveavelocitystableenoughtouseasabasisforcommitment.Fortheseteamswesuggestusingcapacitytomakecommitmentsandthenevolvingwhenreadytomorelightweighttechniques.Withthecapacitybasedtechniquewepullitemsoffthebacklogandplanthetasksneededtodeliverthoseitemsuntilwehavereachedtheteam’scapacity.Firstwedeterminethecapacityoftheteam.Simplymultiplyingthenumberofdaysintheiterationby8willnotyieldarealisticnumber.Weallspendtimeonunplannedandoverheadactivitiesandweneedtoallowforthis.Newagileteamsarequiteoftennotpartofamatureagileorganization,soexpectconflictingprioritiesandteammembershavingtosplittimeacrossmultipleteams.ForexampleSophie’steammayhavea2‐weekiteration.1ofthedaysmaybeallocatedforiterationplanning,thedemoandtheretrospective.Sophiedecidesthatonanygivendayshemanages6hoursofinterruptedimplementationwork.AlsoSophiestillhassomehandoffworktodoforherpreviousteamandthatoccupies20%ofhertime.Sophie’scapacityistherefore43hours(9*6*80%).Oncewedeterminecapacity,planningproceedsasfollows:
6
1. Theteampullsthehighestpriorityitemofftheproductbacklog2. Theitemisdiscussedinenoughdetailtoidentifytasksthatneedtobe
performed3. Teammemberssign‐uptoownthetasks.4. Tasksownersestimatethenumberofidealhourstheywillneedto
implementeachtask5. Theteamchecksthecumulativenumberoftaskhoursagainsttheircapacity
anddecidesiftheycancommittodeliveringtheproductbacklogitem6. Ifso,theteamcommitstotheproductbacklogitemandplanningcontinues
withthenexthighestpriorityitem(step1).7. Oncetheteamhasreachedfullcapacity,theteamcommitstotheiteration
andplanningiscompleteItisafundamentalofaself‐organizingteamthattasksarenotassigned.HowevertemptingitmaybefortheScrumMastertheyshouldnotsteerthisprocess.Tasksareestimatedinidealhours–theamountoftimetocompleteataskwithnodistractionsorwaiting.
TrackingtheIterationDuringtheiterationweperformallthetasksnecessarytodelivertheproductbacklogitemswecommittedtoandeverydayweholdadailystandup.Asimplemeetingwhereweanswerthreebasicquestions:
• Whatdidyouworkonyesterday?• Whatareyouworkingontoday?• Doyouhaveanyimpediments?
Wetrackprogressduringtheiterationusinganiterationburndownchart.TheX‐axisrepresentsdaysintheiterationandtheY‐axisrepresentsthenumberoftaskhoursremaining(leftside)andnumberofstorypointsaccepted(rightside)
7
Aniterationburndownisupdateddailybytheteam.Fromthisburndownchartwecanseethattheteamisonschedule(thebluebarsarebelowtheidealburndownline).
Converselyweseethatthischartrepresentsateamthatstruggledfromtheverystartoftheiterationandcompletedlessthan50%oftheirplannedworkandhadonlyafewoftheirstories(ordefects)acceptedbytheirProductOwner.Itisimportantthattheteam,nottheScrumMaster,updatethehoursremaining.Therearemanybenefitstobeingamemberofaself‐organizing,self‐managingteam,butwiththosebenefitsalsocomesresponsibilityandaccountability.
ClosingOuttheIterationAttheendoftheiterationwedemonstrateourproductincrementtotheproductownerandotherstakeholders.Everyone’sinvited,weprepminimallyandwekeepceremoniestoaminimum(noslidesordocuments).Inspectionandadaptionisthekeystoneofacontinuouslyevolvingandimprovingteam.Aftertheiterationreviewtheteamhasaretrospectivetodetermine:
• Whatdidwedowell?• Whatdidn’twedowell?• Whatdoweneedtochangetodobetter?
8
OtherPlanningApproachesOnceateamhasavelocitythatisstabletheymaychoosetomakeiterationcommitmentsbasedonvelocity.Tasksarestillidentifiedandestimatedasthisprovidestheneededgranularityfortrackingtheprogressoftheiterationandprovidescontextforthedailystand‐upmeeting.Abenefitwithmovingtothisapproachisthatlowerprioritytaskscanbeleftunassigneduntilreadytobeworkedwhichhelpsreducetheworkinprogressandprovidebetterthroughput.Ifstoriesaresmallenoughand/ortaskidentificationbecomesrote,tasksmaybecomeunnecessaryoverheadandtheteammayconsideromittingthem.Someteamstakethisastepfurtherandreduceestimationtoitssimplestformbymakingallstoriesthesamesize.Breakingstoriesdownistypicallyabigchallengeforteamsnewtoagilesothisapproachisbestattemptedbyamatureteam.
PlanningShortenstheFeedbackLoopThemechanicsofouragileiterationsprovideusaquickfeedbackloopwherewecanregularlyinspectandadapt.ThecapacitybasedplanningtechniqueIexplainherefurthershortensthefeedbackloopallowingteamstorealizebeforestartingworkwhethertheiterationisatriskornot.EarlierthisyearIwasworkingwithateaminChicagoandonthemorningoftheiterationplanningtherewasnoenergyintheroom.Iaskedtheteamwhatwaswrong.Theytoldmetheirplanwouldn’tmakeanydifferencetheyweregoingtohavetodoitallin2weeksregardless.Theteamstartedplanning,pullingitemsofftheproductbacklogandcreatingtheiriterationbacklog.WhentheteamhadcommittedabouthalfofwhattheProductOwnerhadoriginallyhopedfortheyhadreachedtheirfullcapacity.IbroughttheProductOwnerintothediscussion;helookedattheIterationBacklogthenlefttheroom.Hecamebackshortlythereaftertoannouncethathe’djustspokenwiththecustomerandtheyhadagreedtopushbackthereleasedatetoallowforanextraiteration.Theteamwasdelighted.Ifyouareabeginningagileteamconsiderstartingwithcapacitybasedplanningtoshortenyourfeedbackloop.Onceyouhaveestablishedaconsistentrhythmofsuccessfuldeliverythenitmaybetimetothinkaboutoptimizing.You’llknowwhenthattimeis.Asaself‐organizing,self‐managingteamyourreflectiononyourretrospectivedatawillpointtheway.
BibliographyCohn,Mike.AgileEstimatingandPlanning.Boulder:PrenticeHall,2006.Roth,Ronica."ItTakesaVillage:6WaysToFilltheProductOwnerRole."BetterSoftware.September2009.www.stickyminds.com.
9
Sorowiecki,James.TheWisdomofCrowds.NewYork:AnchorBooks,2005.Tabaka,Jean.CollaborationExplained:FacilitationSkillsforSoftwareProjectLeaders.Boulder:AddisonWesley,2006.