9
1 Successful Agile Planning: An Iteration How‐To Agile development practices, when performed correctly, are lightweight and inexpensive, avoid wasted cycles, and ensure that just the right features are built. In this article you will find successful ways to make and meet iteration commitments, techniques for leading a team or teams through an effective iteration planning meeting, and tips on how to establish priorities, size your stories, and plan your iterations better. Those Who Do the Work, Plan the Work I am very fortunate as an Agile Coach with Rally to constantly be around teams who want to become leaner and more agile. Those who do the work, plan the work is a principle I hold dear, yet it is a struggle for many to create such a self‐organizing, self‐managing team. I was reminded of this in July of this year (2009). I was invited to give a webinar on Agile Planning. I expected perhaps a few dozen attendees yet 1400 people registered and 3 months later I was still answering questions. The content of that webinar is the inspiration for this article and my target audience is the team that is new to agile and lean concepts. The Mechanics of an Agile Iteration Most of today’s agile teams use iterations to maintain a constant tempo. The iteration begins when the team selects the product features to be delivered at the end of the iteration, identifies the tasks needed to complete those features and commits to the iteration. During the iteration the delivery team meets each day to plan that day. At the end of the iteration the team produces a potentially shippable product increment.

Agile Planning an Iteration How To

Embed Size (px)

DESCRIPTION

Agile Planning

Citation preview

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.