• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Experiencing Agility From Requirements to Planning
 

Experiencing Agility From Requirements to Planning

on

  • 371 views

 

Statistics

Views

Total Views
371
Views on SlideShare
371
Embed Views
0

Actions

Likes
2
Downloads
37
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Experiencing Agility From Requirements to Planning Experiencing Agility From Requirements to Planning Presentation Transcript

    • Experiencing Agility:From Requirements to PlanningNovember 10, 2008Mike Cohn1
    • ® © 2003–2008 Mountain Goat Software®Founding member anddirector of Agile Allianceand Scrum AllianceFounder of MountainGoat SoftwareRan my first Scrumproject back in 1995Typical programmer tomanager etc. progressionMike Cohn - backgroundAgile coachand trainer2
    • ® © 2003–2008 Mountain Goat Software®Course agendaUser stories and the productbacklogEstimating product backlog itemsRelease planningThe boss wants it allThe boss wants it in 8 weeksAgenda3
    • ® © 2003–2008 Mountain Goat Software®User Stories Onthe ProductBacklog4
    • ® © 2003–2008 Mountain Goat Software®The product backlogThe requirementsA list of all desired work on the projectIdeally expressed such that each item hasvalue to the users or customers of theproductPrioritized by the product ownerReprioritized at the start of each iteration5
    • ® © 2003–2008 Mountain Goat Software®A sample product backlogBacklog item EstimateAllow a guest to make a reservation 3As a guest, I want to cancel a reservation. 5As a guest, I want to change the dates of areservation.3As a hotel employee, I can run RevPARreports (revenue-per-available-room)8Improve exception handling 8... 30... 506
    • ® © 2003–2008 Mountain Goat Software®Sample user storiesAs an account holder, Iwant to check my savingsaccount balance.As an account holder, Iam required toauthenticate myselfbefore using the system.As the primary accountholder, I can grant accessto additional users sothat they can seetransactions.7
    • ® © 2003–2008 Mountain Goat Software®Non-functional user storiesAs one of 10,000concurrent users, I wouldlike the system toperform adequately.As a first-time user, Ican complete commonoperations without usingthe help system.8
    • ® © 2003–2008 Mountain Goat Software®The product backlog icebergSprintReleaseFutureReleasesPriority9
    • ® © 2003–2008 Mountain Goat Software®Stories,themes and epicsUser StoryA description of desiredfunctionality told from theperspective of the user orcustomer.ThemeA collection of relateduser stories.EpicA large user story.10
    • ® © 2003–2008 Mountain Goat Software®An exampleAs aVP Marketing, I want toreview the performance ofhistorical promotionalcampaigns so that I canones.As aVP Marketing, I want toselect the timeframe to usewhen reviewing theperformance of pastpromotional campaigns, sothat I can identify and repeatAs aVP Marketing, I can selectwhich type of campaigns(direct mail,TV, email, radio,etc.) to include whenreviewing the performance ofhistorical promotionalcampaigns.Clearly an epicEpics??11
    • ® © 2003–2008 Mountain Goat Software®An exampleAs aVP Marketing, I want tosee information on directmailings when reviewinghistorical campaigns.As aVP Marketing, I want tosee information on televisionadvertising when reviewinghistorical campaigns. As aVP Marketing, I want tosee information on emailadvertising when reviewinghistorical campaigns.12
    • ® © 2003–2008 Mountain Goat Software®Conditions of SatisfactionAdded when story is small and is ready to be worked onThese are essentially testsAs a VP Marketing, I want to seeinformation on televisionadvertising when reviewinghistorical campaigns.Number of viewers by age rangeNumber of viewers by income level13
    • ® © 2003–2008 Mountain Goat Software®Story-writing workshopsIncludes developers, users, customer, othersBrainstorm to generate storiesGoal is to write as many stories as possibleSome will be “implementation ready”Others will be “epics”No prioritization at this point14
    • ® © 2003–2008 Mountain Goat Software®Start with epics and iterateAs a product owner, Ican work withmultiple projects.As a product owner, Ican see variousreports.ProductownerAs a product owner, Ican add, edit anddelete backlog items.As a product owner, Ican sort the productbacklog.As a product owner, Ican split a large iteminto many smalleritems.As a product owner, Ican manage theproduct backlog.15
    • ® © 2003–2008 Mountain Goat Software®ProductVisionYour new company, AgileTool Builders, is consideringdeveloping a tool for agile teams to use in managingtheir product and iteration backlogs.Use this template“As a <user role>, I want <goal>so that <reason>.”1.Identify the main users of such a tool.2.Write 20 or so epic user stories covering thebreadth of functionality you anticipate in the product.An example: As the product owner, I can manage the productbacklog.16
    • ® © 2003–2008 Mountain Goat Software®Estimatingthe InitialProduct Backlog17
    • ® © 2003–2008 Mountain Goat Software®How long will it take......to read the latest Harry Potter book?...to drive to Minneapolis?18
    • ® © 2003–2008 Mountain Goat Software®Estimate size; derive durationSize Calculation Duration300kilogramsVelocity=20300/20 =15 sprints19
    • ® © 2003–2008 Mountain Goat Software®Story pointsThe “bigness” of a taskHow hard it isHow much of it there isRelative values are what is important:A login screen is a 2.A search feature is an 8.Points are unit-lessAs a user, I want to beable to have some but notall items in my cart giftwrapped.520
    • ® © 2003–2008 Mountain Goat Software®An exampleStory Points DoneAs the site editor, I can add an article to the site. 5 ✔As a site visitor, I want to read a new article onthe front page about once a week.5 ✔As the site editor, I can include a teaser with eacharticle.3As a site member who has read a teaser on thefront page, I want to read the entire article.2As a site visitor, I can do a full-text search ofarticle body, title, and author name.13As a site visitor, I can subscribe to an RSS feed ofarticles.5As a site visitor, I can post comments aboutarticles so that others can read them.1321
    • ® © 2003–2008 Mountain Goat Software®Triangulationmultiple other stories.Group like-sized stories togetherStory A1pt2pts3ptsStory C Story D Story FStory B Story E22
    • ® © 2003–2008 Mountain Goat Software®Use the right unitsCan you distinguish a 1-point story from a 2?Can you distinguish a 17 from an 18?Use units that make sense, such as1, 2, 3, 5, 8, 13Stay mostly in a 1-10 range Include 0 and½ if youwant, 20, 40, 10023
    • ® © 2003–2008 Mountain Goat Software®Planning pokerAn iterative approach to estimatingStepsEach estimator is given a deck of cards, each card has a validestimate written on itCustomer/Product owner reads a story and it’s discussedEach estimator selects a card that’s his or her estimateCards are turned over so all can see themDiscuss differences (especially outliers)Re-estimate until estimates converge24
    • ® © 2003–2008 Mountain Goat Software®Planning poker - an exampleEstimator Round 1Vadim 8Susan 3Ann 2Chris 5Round 2555825
    • ® © 2003–2008 Mountain Goat Software®Estimate theseProduct backlog item EstimateRemove, sand, re-paint the cabinets.Replace tile countertop with granite.Repaint entire kitchen.Lay shelf paper.Install recessed lighting.Install built-in refrigerator.Replace existing oven with a new one.Run a water line to existing island and add a sink.Replace existing simple window with a bay window.26
    • ® © 2003–2008 Mountain Goat Software®www.planningpoker.comFree, orI wouldn’tmention it27
    • ® © 2003–2008 Mountain Goat Software®Release Planning28
    • ® © 2003–2008 Mountain Goat Software®Release planningTo answer questions such as:How much will be done by June 30?When can we ship with this set of features?How many people or teams should be on thisproject?PurposeUsually covers a 3-6 month horizonUseful even on shorter projectsHelps iterations combine into something more usefulVery long projects can be split into multiplemilestones29
    • ® © 2003–2008 Mountain Goat Software®Two sample release plansBy June, we’llhere and thereTo get this muchdone will takeuntil June or JulyFixed scopeFixed date30
    • ® © 2003–2008 Mountain Goat Software®VelocityA useful long-term measure of the amount of workcompleted per sprintNot a prediction of exactly how much work will becompleted in each sprint0102030401 2 3 4 5 6 7 8 9SprintsVelocity is measuredin the units you useto estimate productbacklog itemsStoryPoints31
    • ® © 2003–2008 Mountain Goat Software®Velocity is best expressed as arange0102030401 2 3 4 5 6 7 8 9SprintsMean (Worst 3) = 28Mean (Last 8) = 33Mean (Best 3) = 3732
    • ® © 2003–2008 Mountain Goat Software®Use each subsequent column as the number of story points toassign a product backlog itemMonth EEstimmates in Sttory PPointss1 50 10 70 70 90 70 80 90 80 40 50 70 10 30 50 80 70 100 40 70 20 90 40 80 802 40 60 80 10 40 20 40 10 40 40 50 30 80 20 50 90 90 90 50 70 10 10 30 60 303 100 90 60 40 100 40 60 50 60 30 40 70 30 30 30 40 70 10 40 60 80 40 70 40 1004 100 40 40 100 20 40 70 90 20 10 100 100 70 90 50 60 70 20 100 60 30 60 20 80 105 10 30 30 10 10 60 10 60 40 70 80 20 30 50 90 90 90 60 40 80 60 10 20 80 606 90 80 70 80 30 90 70 20 70 100 70 50 80 100 10 40 100 50 100 60 10 40 20 70 607 100 70 50 60 30 50 50 30 30 60 60 40 40 50 10 60 40 70 50 10 20 100 40 100 708 70 10 10 80 10 50 20 30 100 50 40 80 50 80 20 40 70 70 10 80 60 80 90 10 509 30 90 20 20 70 20 20 10 60 90 20 40 40 40 90 90 80 10 70 30 40 10 80 40 4010 30 60 60 80 100 40 70 50 10 20 90 40 20 80 20 80 70 30 10 80 80 20 90 10 4011 50 100 10 90 30 30 30 30 40 70 60 80 60 70 40 20 100 80 90 80 10 70 60 90 10012 70 10 60 50 100 80 70 40 90 70 50 100 30 90 50 40 10 100 60 40 50 20 40 80 50Estimating your backlog33
    • ® © 2003–2008 Mountain Goat Software®Use a different team member’s month of birthUse each subsequent column as the team’s velocity forone iterationMonthIterattionsMonth1 2 3 4 5 6 7 81 70 80 100 100 80 140 90 902 100 80 100 90 110 90 100 803 120 120 120 30 100 110 50 1404 70 80 90 100 110 120 130 1405 140 130 120 110 100 90 80 706 100 100 80 70 130 110 90 807 70 80 100 100 80 140 90 908 100 80 100 90 110 90 100 809 120 120 120 30 100 110 50 14010 70 80 90 100 110 120 130 14011 140 130 120 110 100 90 80 7012 100 100 80 70 130 110 90 80Your last 8 velocities34
    • ® © 2003–2008 Mountain Goat Software®Fixed-scope planning1. Sum all the backlog items the customer needs2. Measure or estimate velocity as a range3. Divide total story points by high velocityThis is the shortest number of iterations itcould take4. Divide total story points by low velocityThis is the “most” iterations it could takeWhen will all of this be done?35
    • ® © 2003–2008 Mountain Goat Software®Fixed-scope planning : an exampleTotal story points desired 120Low velocity 15High velocity 20120÷20=120÷15=36
    • ® © 2003–2008 Mountain Goat Software®Fixed-scope commitmentsIt’s a risk issueWhere do you want to be?If you write a contractfor to the long duration:You’ll probably won’t win the contractBut you’ll make money if you doIf you write a contractfor to the short duration:You’ll probably win the contractBut you may not make money37
    • ® © 2003–2008 Mountain Goat Software®Selling the overall planYou wrote epic user stories to span the overallsystem functionality.You had the team estimate these.You know your team’s past velocities.? Your boss wants to know how long it will take to“get it all.”You’ll still build the system incrementally, but knowingthe total size is helpful for the initial go / no-go decisionTip: Give the boss a range of iterations.38
    • ® © 2003–2008 Mountain Goat Software®Bonus QuestionIf I told you that the last project was 500 storypoints and cost $1,500,00 to deliver, what is arough estimate of the cost of the new project??39
    • ® © 2003–2008 Mountain Goat Software®Fixed-date planning1. Determine how many iterations you have2. Measure or estimate velocity as a range3. Multiply low velocity × number of iterationsCount off that many pointsThese are “Will Have” items4. Multiply high velocity × number of iterationsCount off that many more pointsThese are “Might Have items”How much can I get by <date>?40
    • ® © 2003–2008 Mountain Goat Software®Fixed-date planning : an exampleDesiredrelease date30 JuneToday’s Date 1 JanuaryNumber ofiterations6 (monthly)Lowvelocity15Highvelocity206×156×20Will haveMight haveWon’t have41
    • ® © 2003–2008 Mountain Goat Software®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?42
    • ® © 2003–2008 Mountain Goat Software®The impending trade showNow the boss needs a new version for the big tradeshow that is 4 iterations away.Which features can you “guarantee” will be in forthe trade show?Which features are likely to be in?Use the following userstories and estimates43
    • ® © 2003–2008 Mountain Goat Software®Past velocitiesHistorrical DataIterationnumberVelocity1 202 143 234 185 256 307 128 229 1510 23Your EsstimatesLowAverageHigh44
    • ® © 2003–2008 Mountain Goat Software®The team’s estimatesProduct backlog item EstimateAs the product owner I want to drag items onto a release burndownchart and see the impact to the release date.20As a user at a company with lots of cash, I want your product to supporttouch screens so I can put a large one in our team room.13As a user I would like performance to be about twice as fast as nowduring peak use periods.20As a team member, I’d like to be able to do online planning pokerestimating right inside the tool.13As a third party, I would like an SOA interface so that I can integrate myproduct with yours.8As a team member I want RSS support for all changes to tasks or user8As the product downer, I want a new report that shows differences inthe product backlog between different time periods.3of different stories so that I can reuse them1345
    • ® © 2003–2008 Mountain Goat Software®Mike Cohnmike@mountaingoatsoftware.comwww.mountaingoatsoftware.com(720) 890−(303) 810−2190 (mobile)46