YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Agile Planning an Iteration How To

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.

Page 2: Agile Planning an Iteration How To

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

Page 3: Agile Planning an Iteration How To

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

Page 4: Agile Planning an Iteration How To

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

Page 5: Agile Planning an Iteration How To

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:

Page 6: Agile Planning an Iteration How To

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)

Page 7: Agile Planning an Iteration How To

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?

Page 8: Agile Planning an Iteration How To

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.

Page 9: Agile Planning an Iteration How To

9

Sorowiecki,James.TheWisdomofCrowds.NewYork:AnchorBooks,2005.Tabaka,Jean.CollaborationExplained:FacilitationSkillsforSoftwareProjectLeaders.Boulder:AddisonWesley,2006.


Related Documents