Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to User Stories


Published on

Published in: Business, Technology
  • You can hardly find a student who enjoys writing a college papers. Among all the other tasks they get assigned in college, writing essays is one of the most difficult assignments. Fortunately for students, there are many offers nowadays which help to make this process easier. The best service which can help you is ⇒ ⇐
    Are you sure you want to  Yes  No
    Your message goes here
  • You have to choose carefully. ⇒ ⇐ offers a professional writing service. I highly recommend them. The papers are delivered on time and customers are their first priority. This is their website: ⇒ ⇐
    Are you sure you want to  Yes  No
    Your message goes here
  • Essay writing was never my forte as English isn’t my first language but because I was good at math so they put me into Honors English. I really couldn’t be assed with reading King Lear and then writing a 5,000 word paper on it so I looked up essay services and was the first link to come up. I was kind of shocked with the quality of the paper they gave me. I received a very articulate and well-written piece of writing for like $20. Recommended it to a bunch of my foreign friends and now they use it too.
    Are you sure you want to  Yes  No
    Your message goes here
  • Gout Detox Diet - Here's how to flush Gout. straight out of your system ♣♣♣
    Are you sure you want to  Yes  No
    Your message goes here

Introduction to User Stories

  1. 1. Mike CohnNorwegian Developer’s Conference6 June 2012User Stories1
  2. 2. © Copyright Mountain Goat Software®What problem do stories address?Software requirements is a communicationproblemThose who wantthe software mustcommunicate withthose who willbuild it2
  3. 3. © Copyright Mountain Goat Software®Balance is criticalIf either side dominates, the business losesIf the business side dominates……functionality and dates are mandated with littleregard for reality or whether the developersunderstand the requirementsIf the developers dominate……technical jargon replaces the languageof the business and developers lose the opportunity tolearn from listening3
  4. 4. © Copyright Mountain Goat Software®Resource allocationWe need a way ofworking together sothat resource allocationbecomes a sharedproblemProject fails when theproblem of resourceallocation falls too far toone side4
  5. 5. © Copyright Mountain Goat Software®Responsibility for resource allocationIf developers are responsible…May trade quality for additionalfeaturesMay only partially implement afeatureMay solely make decisions thatshould involve the businessIf the business is responsible…Lengthy upfront requirementsnegotiation and signoffFeatures are progressivelydropped as the deadline nears5
  6. 6. © Copyright Mountain Goat Software®Imperfect schedulesWe cannot perfectly predict a softwarescheduleAs users see the software, they come up withnew ideasToo many intangiblesDevelopers have a notoriously hard timeestimatingIf we can’t perfectly predict a schedule, wecan’t perfectly say what will be delivered6
  7. 7. © Copyright Mountain Goat Software®This is whereuser storiescome inSo what do we do?…but do it oftenWe make decisions basedon the information wehave…we spread decision-making across the projectRather than making oneall-encompassing set ofdecisions7
  8. 8. © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories8
  9. 9. © Copyright Mountain Goat Software®Three CsStories are traditionallywritten on note cards.Cards may be annotated withestimates, notes, etc.Card Details behind the story comeout during conversations withproduct ownerConversationstory was coded correctlyConfirmationSource: XP Magazine 8/30/01, Ron Jeffries.9
  10. 10. © Copyright Mountain Goat Software®As a user, I want toreserve a hotel room.As a user, I want tocancel a reservation.As a vacation traveler,I want to see photos ofthe hotels.As a frequent flyer, Iwant to rebook a past tripso that I save timebooking trips I take often.Samples from a travel website10
  11. 11. © Copyright Mountain Goat Software®Where are the details?As a user, I can cancel a reservation.Does the user get a full or partial refund?Is the refund to her credit card or is it site credit?How far ahead must the reservation be cancelled?Is that the same for all hotels?For all site visitors? Can frequent travelers cancel later?Is a confirmation provided to the user?How?11
  12. 12. © Copyright Mountain Goat Software®Details as conditions of satisfactionAs a user, I cancancel a reservation.Verify that a premium member cancancel the same day without a fee.Verify that a non-premium member ischarged 10% for a same-day cancellation.Verify that an email confirmation is sent.Verify that the hotel is notified of anycancellation.• The product owner’sconditions of satisfactioncan be added to a story• These are essentiallytests12
  13. 13. © Copyright Mountain Goat Software®Details added in smaller sub-storiesAs a user, I cancancel a reservation.As a site visitor, I amemailed a confirmation ofany cancelledreservation.As a non-premiummember, I can cancel upto 24 hours in advance.As a premium sitemember, I can cancel areservation up to thelast minute.13
  14. 14. © Copyright Mountain Goat Software®Techniques can be combinedThese approaches are not mutuallyexclusiveWrite stories at an appropriate levelBy the time it’s implemented, each storywill have conditions of satisfactionassociated with it14
  15. 15. © Copyright Mountain Goat Software®The product backlog icebergPriority15
  16. 16. © Copyright Mountain Goat Software®Some additional useful termsEpicA large userstoryThemeA collection ofrelated userstories16
  17. 17. © Copyright Mountain Goat Software®An exampleAs a VP Marketing, I want toselect the timeframe to usewhen reviewing theperformance of pastpromotional campaigns, sothat …As a VP Marketing, I canselect which type ofcampaigns (direct mail, TV,email, radio, etc.) to includewhen reviewing theperformance of past …As a VP Marketing, I wantto review the performanceof historical promotionalcampaigns so that I canidentify and repeatprofitable ones.Clearly an epicEpics???17
  18. 18. © Copyright Mountain Goat Software®As a VP Marketing, I wantto see information ondirect mailings whenreviewing historicalcampaigns.As a VP Marketing, I wantto see information on TVads when reviewinghistorical campaigns.As a VP Marketing, I wantto see information onemail ads when reviewinghistorical campaigns.18
  19. 19. © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories19
  20. 20. © Copyright Mountain Goat Software®Logging in•See how many user stories you canwrite about logging in.•Examples:•As a registered user, I am required tolog in so that I can access the system.•As a forgetful user, I can request apassword reminder so that I can log inif I forget mine.“As a <user role>,I <want/need/can/etc> <goal>so that <reason>.”20
  21. 21. © Copyright Mountain Goat Software®Story-writing workshopsIncludes whole team plus possibly someexternal stakeholdersTypically not done every sprintBrainstorm to generate storiesGoal is to write as many stories as possibleSome will be “implementation ready”Others will be epicsNo prioritization at this point21
  22. 22. © Copyright Mountain Goat Software®Start with epics and iterateAs a frequentflyer, I want tobook a trip usingmiles.As a frequentflyer, I want torebook a trip Itake often.As a frequentflyer, I want torequest anupgrade.As a frequentflyer, I want tosee if myupgrade cleared.As a frequentflyer, I want tosee check myaccount.As a frequentflyer, I want tobook a trip.As a frequentflyer, I wantto…Frequent Flyer22
  23. 23. © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories23
  24. 24. © Copyright Mountain Goat Software®So why user stories?If requirements arewritten downThe user will getwhat she wantsthenAt best she’ll getwhat was written“You built what Iasked for, but it’snot what I need.”Shift focus from writing to talking24
  25. 25. © Copyright Mountain Goat Software®Words are impreciseEntrée comeswithsoup or saladand bread. • (Soup or Salad) and Bread• (Soup) or (Salad and Bread)Which is right?25
  26. 26. © Copyright Mountain Goat Software®ExamplesThe user can enter aname. It can be 127characters.The system shouldprominently display a warningmessage whenever the userenters invalid data.• Must the user enter aname?• Can it be other than127 chars?• What does shouldmean?• What does prominentlydisplay mean?• Is invalid data definedelsewhere?26
  27. 27. © Copyright Mountain Goat Software®Additional reasonsStories are understandableDevelopers and customers understand themPeople are better able to remember events ifthey are organized into stories†Support and encourage iterativedevelopmentCan easily start with epics and disaggregatecloser to development time†Bower, Black, and Turner. 1979.Scripts in Memory for Text.27
  28. 28. © Copyright Mountain Goat Software®Yet more reasonsStories are the right size for planningStories support opportunistic developmentWe design solutions by movingopportunistically between top-down andbottom-up approaches†Stories support participatory design†Guindon. 1990. Designing the Design Process.28
  29. 29. © Copyright Mountain Goat Software®What if we had stories instead?29
  30. 30. © Copyright Mountain Goat Software®Most importantly…The story text we write oncards is less importantthan the conversations wehave.Don’t forget the purpose30
  31. 31. © Copyright Mountain Goat Software®mike@mountaingoatsoftware.comwww.mountaingoatsoftware.comtwitter: mikewcohn(720) 890-6110Mike Cohn31