• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduction to User Stories
 

Introduction to User Stories

on

  • 574 views

 

Statistics

Views

Total Views
574
Views on SlideShare
561
Embed Views
13

Actions

Likes
3
Downloads
33
Comments
0

1 Embed 13

http://baridoo.com 13

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

    Introduction to User Stories Introduction to User Stories Presentation Transcript

    • Mike CohnNorwegian Developer’s Conference6 June 2012User Stories1
    • © Copyright Mountain Goat Software®What problem do stories address?Software requirements is a communicationproblemThose who wantthe software mustcommunicate withthose who willbuild it2
    • © 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
    • © 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
    • © 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
    • © 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
    • © 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
    • © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories8
    • © 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
    • © 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
    • © 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
    • © 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
    • © 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
    • © 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
    • © Copyright Mountain Goat Software®The product backlog icebergPriority15
    • © Copyright Mountain Goat Software®Some additional useful termsEpicA large userstoryThemeA collection ofrelated userstories16
    • © 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
    • © 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
    • © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories19
    • © 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
    • © 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
    • © 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
    • © Copyright Mountain Goat Software®AgendaWhat stories areWriting user storiesWhy user stories23
    • © 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
    • © 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
    • © 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
    • © 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
    • © 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
    • © Copyright Mountain Goat Software®What if we had stories instead?29
    • © Copyright Mountain Goat Software®Most importantly…The story text we write oncards is less importantthan the conversations wehave.Don’t forget the purpose30
    • © Copyright Mountain Goat Software®mike@mountaingoatsoftware.comwww.mountaingoatsoftware.comtwitter: mikewcohn(720) 890-6110Mike Cohn31