Successfully reported this slideshow.
Your SlideShare is downloading. ×

User Story Mapping

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Inclusive design playbook
Inclusive design playbook
Loading in …3
×

Check these out next

1 of 86 Ad

User Story Mapping

Download to read offline

A prioritized user story backlog helps to understand what to do next, but is a difficult tool for understanding what your whole system is intended to do. A user story map arranges user stories into a useful model to help understand the functionality of the system, identify holes and omissions in your backlog, and effectively plan holistic releases that delivery value to users and business with each release.

A prioritized user story backlog helps to understand what to do next, but is a difficult tool for understanding what your whole system is intended to do. A user story map arranges user stories into a useful model to help understand the functionality of the system, identify holes and omissions in your backlog, and effectively plan holistic releases that delivery value to users and business with each release.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to User Story Mapping (20)

Advertisement

More from Naresh Jain (20)

Recently uploaded (20)

Advertisement

User Story Mapping

  1. 1. <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);
  2. 2. <8-"/)',2"'*4"'/$*4'"1)4'= !"#$%&'(#)*&+"&,-(&+.(&,-()&-+")/&0#12$"3&#-&#&4#/&+"& 5(-1)60(&,-()7-&(89()6(*1(&46+.&/",)&9)"5,1+ &'-1">?"@'AA.*/"82$-"21)-.$2 ! B2$-"21)-="$22$*C',2 ! D$,,.*/"21)-.$2"'E)81"10$"82$-"$FA$-.$*9$ ! @'AA.*/"82$-"21)-.$2"E'2$4")*"$FA$-.$*9$ &'-1"G?"&,'**.*/"3',8'E,$".*9-$;$*1',"-$,$'2$2 ! H4$*CI=.*/"A-)4891"/)',2"10'1"4$,.3$-="3',8$ ! J,.9.*/"10$"21)-=";'A".*1)"3',8'E,$"-$,$'2$2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); G
  3. 3. Starting with the User Story What do you know about user stories? What do you like about user stories? What causes you trouble with user stories !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <
  4. 4. <2$-"=1)-.$2"'-$"4.%$-$*1"10.*/2"1)" 4.%$-$*1">$)>,$666 !"?@A"=184.)2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); B
  5. 5. <2$-"=1)-.$2"'-$";8,>?@8-@)2$"10.*/2 =1)-.$2"'-$"'A ! <2$-B2"*$$4 ! &-)4891"4$29-.@>)* ! &,'**.*/".1$; !"Kent Beck coined the term user stories in ! C)D$*"E)-"'"9)*3$-2'>)* Extreme Programming Explained 1st Edition, 1999 ! F$90'*.2;"E)-"4$E$--.*/" 9)*3$-2'>)* !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); G
  6. 6. <1)-.$2"/'.*"4$1'.,")3$-"=;$ >6 <1'-1"5.10"!"#$%& ?6 744"'"'()'*+&",&+'-*.#()" 2);$"82$"10.2"82$@8,"1$;A,'1$B As a [type of user] I want to [perform some task] so that I can [reach some goal] C6 744")10$-"-$,$3'*1")($&++" +.&'*/'!#()++")-"+0&$'1&+ D6 E$@)-$"F8.,4.*/"2)G5'-$"5-.1$" !''&.$!)'&"'-*$&-*!"!"#$%&#%$'% ()#$%$"')%$'*+'%&#)',- !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); H
  7. 7. 7/.,$"9821);$-2")-"<-)4891")5*$-" <-.)-.=>$"21)-.$2".*1)"'"?'9@,)/ 7"9),,$9=)*")A"21)-.$2"A)-"'" 2)B5'-$"<-)4891".2" -$A$--$4"1)"'2"10$"!"#$%&'( )*&+,#- C0$"?'9@,)/".2"<-.)-.=>$4" 2890"10'1"10$";)21" 3',8'?,$".1$;2"'-$"0./0$21 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); D
  8. 8. Let’s talk about the nature of multi-purpose things (yes I’m going meta) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <
  9. 9. <2$-"=1)-.$2"'-$"!"#$%&'()"!*+,-. ?$-$@2"10$"A*$"B-.*1")*"C)8*4'-D")CE$912F G7"C)8*4'-D")CE$91".2"'"9)*9$B1".*"2)9.),)/D"1)"4$29-.C$".*H)-;'I)*" 82$4".*"4.%$-$*1"5'D2"CD"4.%$-$*1"9);;8*.I$26"/0+()&'+)12&.3,4) 5$-+'1'+-+%)%56+'+$-2()&,'"..),"77#$53+.)!#-)85-0)+$"#90) 577#-&!2+),"$-+$-)-")7&5$-&5$)5$-+9'5-(J"KKL.M.B$4.' G/0+()&'+)8+&:2().-'#,-#'+%)5$),"77"$)#.+4)&$%)!+,"7+).-'"$92() .-'#,-#'+%)5$)5$%5;5%#&2<.5-+)#.+="N0$D";'D"C$"'C21-'91")-"9)*9-$1$6" N0$D"0'3$"4.%$-$*1";$'*.*/2".*"4.%$-$*1"2)9.',"5)-,42"C81"10$.-" 21-8918-$".2"9);;)*"$*)8/0"1)";)-$"10'*")*$"5)-,4"1)";'M$"10$;" -$9)/*.O'C,$";$'*2")H"1-'*2,'I)*6"N0$"9-$'I)*"'*4";'*'/$;$*1" )H"C)8*4'-D")CE$912".2"M$D".*"4$3$,)B.*/"'*4";'.*1'.*.*/"9)0$-$*9$" '9-)22".*1$-2$9I*/"2)9.',"5)-,426J"KK"P$./0"Q"R-.$2$;$- !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); >
  10. 10. <2$-"=1)-.$2"'91"'2"10$">)8*4'-?"1)"@'9.,.1'1$" 9)*3$-2'A)*">$15$$*";'*?"B$)B,$ How do I understand How do I users and their describe to you needs? what I want? What are the details of this What are the feature I need things my to specify? product needs to 82$- <E"B$-2)* be successful? F7 >82.*$22",$'4$- How What are do I schedule the details of this work and How what I need to track it its do I validate build today? &G this work is 4$3$,)B$- done? 1$21$- !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  11. 11. <81"2.=$"',5'>2";'($-2666 ?)5"@./".2"10$"21)->"5$" 5'*1"1)"1',A"'@)81B !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CC
  12. 12. 7*4+".1<2"$'2="1)"/$1",)21".*"10$"20$$-" *8;>$-")?"10$; !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  13. 13. 7*4+"'2"5$"21'-1";)3.*/"<)-5'-4+"0)5"4)" 5$"21'=")*"1-'9>? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  14. 14. <2$-"=1)->"?'@@.*/".2"'*"'*"'@@-)'90"1)" !"#$%&'&%#"!"#"("&)"&*'&%#+82$-"21)-.$2 <*,.A$"1>@.9',"82$-"21)->" B'9A,)/2+"=1)->"?'@2C" ! ;'A$",&-&./0"10$"5)-AD)5")-" 3',8$"90'.* ! 20)5"10$""0/$*)%-1&2-")E",'-/$-" 21)-.$2"1)"10$.-"90.,4"21)-.$2 ! 0$,@"9)*F-;"10$"3)42/050%0--" )E">)8-"B'9A,)/ ! @-)3.4$"'"82$E8,"3)%5065"E)-" @-.)-.GH'G)* ! &,'*"-$,$'2$2".*"9);@,$1$"'*4" ,$/7$./0+-/&30-")E"E8*9G)*',.1>6 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); IJ
  15. 15. <2$-"=1)->"?'@@.*/".2"'*"'*"'@@-)'90"1)" !"#$%&'&%#"!"#"("&)"&*'&%#+82$-"21)-.$2 =1)->"?'@2"28@@)-1"10$" @-.;'->".*1$*1")C"82$-"21)-.$2+" "&,-+.&/,0//&)% !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); AB
  16. 16. The foundational building block of a stories that say what people are doing (user tasks) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  17. 17. <.-21",$1=2"4)"'"!"#$%&'()*)#+,-)(1)" 8*4$-21'*4"'">$5"9)*9$?12 @0'1"5$-$"',,"10$"10.*/2"A)8"4.4"1)"/$1"-$'4A"1)"B$" 0$-$"1)4'AC ! D1'-E*/">-);"10$";);$*1"A)8"5)F$"8?"8*E,"A)8" '--.3$4"0$-$ ! G*"'"20$$1")>"?'?$-+"1'F$"'">$5";.*81$2"1)",.21"10$" 10.*/2"A)8"4.4 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); HI
  18. 18. What’s common about the items each of you wrote down? What was different? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  19. 19. &$)<,$"'90.$3$"/)',2"10-)8/0".*1$-'9=)* problem or goal How I’d like to feel, or what I’d like to achieve goal evaluation Is my goal met or problem resolved? Take some action action evaluation Did that action deliver the results I expected? the world Information and tools !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); >?
  20. 20. <0.*=")>"10-$$",$3$,2?"/)',+"1'2=+"'*4"1)), problem or goal goal How I’d like to feel, or what I’d like to achieve goal evaluation Take some task Is my goal met or problem resolved? action action evaluation Did that action deliver the results I tool expected? the world Information and tools !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  21. 21. <0.*=")>"10-$$",$3$,2?"/)',+"1'2=+"'*4"1)), goal task tool !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  22. 22. <)=5'-$"9)*1'.*2">$'18-$2"10'1"28??)-1"'" 3'-.$1@")>"1'2A2"'*4"'"3'-.$1@")>"/)',2 goals tasks software features tools !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BB
  23. 23. User tasks make ideal user stories: Title: Take a shower As an instructor I want to take a shower So that I don’t offend my colleagues !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  24. 24. <*"=-'9>9$"82$-"21)-.$2";'?"@$"5-.($*"1)"4$29-.@$" 82$-"1'2A2")-"10$"1)),2"10'1"28==)-1"10$;"" goals B)-$"1'2AC9$*1-.9D As a weekend gardener I want to dig a hole user story tasks so that I can plant a tree B)-$"1)),C9$*1-.9D E)-"F$'18-$C9$*1-.9G" software As a weekend gardener features I want a shovel so that I can [dig a hole to] plant a tree !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); HI
  25. 25. Organize user stories into a map that communicates experience !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  26. 26. <="'--'*/.*/"'9>3.1="'*4"1'2?@9$*1-.9"21)-=" 9'-42"2A'>',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 C$,,"'"B./"21)-=")D"10$"A-)4891"B="21'->*/"5.10"10$";'E)-"82$-" '9>3.>$2"10$"?.)2?"5.,,"B$"82$4"D)- ! 7--'*/$"'9>3.>$2",$F"1)"-./01".*"10$")-4$-"=)8G4"$HA,'.*"10$;"1)" 2);$)*$"50$*"'2?$4"10$"I8$2>)*J"KL0'1"4)"A$)A,$"4)"5.10"10.2" 2=21$;MN"" time !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); OP
  27. 27. <="'--'*/.*/"1'2>?9$*1-.9"21)-="9'-42" 2@'A',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 744"1'2>?9$*1-.9"21)-.$2".*"8*4$-"$'90"'9A3.1=".*"5)->C)5")-4$-" ,$D"1)"-./016 ! EF"=)8"5$-$"1)"$G@,'.*"1)"2);$)*$"50'1"'"@$-2)*"1=@.9',,="4)$2".*"10.2" '9A3.1=+"'--'*/$"1'2>2".*"10$")-4$-"=)8H4"1$,,"10$"21)-=6"":)*H1"/$1"1))" 8@A/01"'B)81"10$")-4$-6 time !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); IJ
  28. 28. <="'--'*/.*/"1'2>?9$*1-.9"21)-="9'-42" 2@'A',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 C3$-,'@"82$-"1'2>2"3$-A9',,=".D"'"82$-";'="4)")*$")D"2$3$-',"1'2>2"'1" '@@-)E.;'1$,="10$"2';$"A;$ ! FD".*"1$,,.*/"10$"21)-="F"2'="10$"2=21$;2G"82$-"1=@.9',,="H4)$2"10.2")-"10.2")-" 10.2+"'*4"10$*"4)$2"10'1+I"H)-G2I"2./*',"'"21'9>.*/"3$-A9',,=+"H'*4"10$*G2I" 2./*',"21$@@.*/"0)-.J)*1',,=6 time !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); KL
  29. 29. <0$";'="20)52"4$9);=)2.>)*"'*4" 1?=.9',"@)5"'9-)22"10$"$*>-$"2?21$; A$'4.*/"10$"'9>3.>$2"'9-)22"10$"1)=")B"10$"2?21$;"0$,=2"82" 8*4$-21'*4"$*4C1)C$*4"82$")B"10$"2?21$;6""D<',E"10-)8/0"F821" 10$2$"50$*"1',E.*/"5.10"=$)=,$"5.10"20)-1"'($*>)*"2='*26G time H$,)5"$'90"'9>3.1?+")-",'-/$" 21)-?"'-$"10$"90.,4"21)-.$2"10'1" ;'E$".1"8= !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); IJ
  30. 30. &-)4891":.29)3$-<"=)->20)?2 @2$"?-)4891"4.29)3$-<"5)->20)?2" 1)"8*4$-21'*4"10$"?-)4891"5$A-$" B8.,4.*/"'2"'"82$-"21)-<";'? :8-.*/"4.29)3$-<"2$22.)*2" 4.29822C ! 10$"!"#!$%&")D"10$"?-)4891+" '*4"0)5".1"9-$'1$2"3',8$"D)-" 10)2$"B8.,4.*/".1 ! 10$"'"%($)&#%"50)"5.,,"B8<"10$" ?-)4891 ! 10$""%&#%"50)"5.,,"82$"10$" ?-)4891 ! 0)5"10$<A,,""%&"10$"?-)4891 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); EF
  31. 31. &-)4891":.29)3$-<"=)->20)?2 =0)"?'-@9.?'1$2A ! !"#$%&'()*#+"B"10)2$"50)"C-.*/" .*D)-;'@)*+"28CE$91";'($-" $F?$-@2$+"'*4"4.-$91"$F?$-.$*9$ ! !"#$,-..%(&-/#"B"10)2$"50)" 0'3$"4$2.-$"1)"C8.,4"'"/-$'1" ?-)4891 ! !"#$+#0%.%(&$*-1#)."B"10)2$" 50)"9'*";'>$"1)8/0"4$9.2.)*2" 'C)81"50'1"'*4"0)5";890"1)" C8.,4 ! !"#$+(#)."B"-$?-$2$*1'@3$2" D-);"10$"1$';"50)"5.,,"C8.,4" 10$"?-)4891"2),8@)* !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); GH
  32. 32. <8.,4.*/"'"21)-=";'>"0$,>2"?'9.,.1'1$" 4.29822.)*"@"A81"-$B8.-$2"'"A.1")?"2>'9$ Gary Levitt, owner & designer of Mad Mimi !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  33. 33. 7"21)-<";'=">)-"'"-$'2)*'?,$"2.@$4"2<21$;" 9'*"A,,"'"-)); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BB
  34. 34. Product Discovery Looks Like this: !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  35. 35. <1)-=">'?"@'-.'A)*2 • >'?2"'B)81"2=21$;" B$0'3.)- • C$'18-$D9$*1-.9" ;'?2 • 72D.2"?-)4891";'?2 • E0'1"$,2$F !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); GH
  36. 36. The easiest way to write user stories is by telling user stories (hopefully this won’t come as a surprise) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  37. 37. Let’s try one together... !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  38. 38. Discuss, fill in, refine the map, and test for completeness !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  39. 39. :.29822.)*2")3$-"21)-<";'=2"0$,="4-.3$" )81";)-$"4$1'.,2 Repeated review of the story map with multiple users and subject matter experts will help test the model for completeness !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); >?
  40. 40. <-$'=*/">$-2)*'2"?)-"4.%$-$*1"@.*42")?" >$)>,$"82.*/"A)8-"2A21$; !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  41. 41. 7"<-'/;'=9"<$-2)*'".2"'">8.9?"$@<,)-'=)*" )A"50'1"5$"?*)5"'B)81")8-"82$-2 E8.,4"10$;"1)"21'-1"4.29822.)*" 'B)81"50'1"5$"?*)5+"'*4" 4)*F1 E8.,4"10$;"1)"0$,<"4-.3$" ;'<<.*/"G)8-"82$-" $@<$-.$*9$"82.*/"21)-.$2 “..people can often mine their own extensive experiences to create effective Personas...” :'3.4"I822;'* :)*"H)-;'* http://www.jnd.org/dn.mss/personas_empath.html !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  42. 42. <=$190"'">-'/;'?9">$-2)*'"10.*=.*/" '@)81"2);$)*$"4.%$-$*1"A-);"B)8-2$,A !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  43. 43. <="'--'*/.*/"'9>3.1="'*4"1'2?@9$*1-.9"21)-=" 9'-42"2A'>',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 744"'"3$->9',"'C.2"1)".*4.9'1$"*$9$22.1= D)3$"1'2?2"8A"'*4"4)5*"10.2"'C.2"1)".*4.9'1$"0)5"*$9$22'-="10$="'-$"1)" 10$"'9>3.1=6 ! E)-"'"82$-"1)"2899$22F8,,="$*/'/$".*"10.2"'9>3.1=+".2".1"*$9$22'-="10$="A$-F)-;" 10.2"1'2?G""HF".1I2"*)1"'B2),81$,="*$9$22'-=+"0)5"9-.>9',".2".1G time necessity !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); JK
  44. 44. <="'--'*/.*/"'9>3.1="'*4"1'2?@9$*1-.9"21)-=" 9'-42"2A'>',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 C$21"10$"D1)-="E'A"B="1$,,.*/"B.//$-"21)-.$2"5.10".1 ! F0))2$"'*"'9>3.1="1)"21'-1"5.10 ! G0$*"-$'4.*/",$H"1)"-./01"82$"10$"9)*I8*9>)*"J'*4"10$*K"1)"9)**$91"9'-42".*"10$"21)-= ! G.10"9'-42".*"10$"2';$"-)5"82$"J)-K"1)"9)**$91"9'-42".*"10$"21)-= ! L)-"9'-42"B$,)5"10$"1)A+"J'B2),81$,="*$9$22'-=K"'M.2+"82$"10$"A0-'2$"J;./01")A>)*',,=K"1)" 9);;8*.9'1$")A>)*',.1= ! F0)2$"'"9)*9-$1$"82$-"*';$"1)"0$,A"1$,,"10$"21)-= time necessity !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); NN
  45. 45. <="'--'*/.*/"'9>3.1="'*4"1'2?@9$*1-.9"21)-=" 9'-42"2A'>',,=+"5$"9'*"1$,,"B.//$-"21)-.$2 “Steve knows the title of what he’s looking for. He steps up to the kiosk and searches by title. Optionally he might have searched by artist. After seeing titles that match what he typed in, Steve views the price new and used, and then views the status – whether it’s in stock or not. He notices it’s in stock as both new and used, so then Steve views the location in the store for the used title.” time E)>9$"10$"B),4"F'9$4"82$-"1'2?2" F-);")8-"21)-=";'A E)>9$"10$"9)*G8*9>)*2"10'1"?*.1"10$" necessity 9'-42"1)/$10$-".*1)"'",)*/$-"21)-= !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  46. 46. <0$"82$-"21)-=";'>"9)*1'.*2"15)" .;>)-1'*1"'*'1);.9',"?$'18-$2 <0$"!"#$!%&'")?"10$"'>>,.9'@)*".2"10$",.21")?" $22$*@',"'9@3.@$2"10$"'>>,.9'@)*"28>>)-12 <0$"(")$*&+,-$')'.%&".2"10$"2)A5'-$"5$"B8.,4"10'1" 28>>)-12"10$",$'21"*8;B$-")?"*$9$22'-="1'2C2"'9-)22" 10$"?8,,"2>'*")?"82$-"$D>$-.$*9$ The backbone time The walking skeleton necessity !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); EF
  47. 47. <2.*/"4.29822.)*+"=,,".*">)8-"21)->";'? @)-A"1)/$10$-"'2"'"1$'; B))A"C)-"!"#$%&!'($)#!*+* ! @0'1"$,2$";./01"82$-2")C"10$"2>21$;"0'3$" 4)*$"10'1"4.4*D1"9);$"8?".*">)8-"29$*'-.)2E B))A"C)-"$,-$.'/&* ! @0'1"9)8,4"/)"5-)*/+"'*4"50'1"5)8,4"10$" 82$-"0'3$"1)"4)"1)"-$9)3$-E F)*2.4$-"/#0$%)1*$%* ! @0'1";./01")10$-"1>?$2")C"82$-2"4)"1)"-$'90" 10$.-"/)',2E G*.1"',"10$2$"'44.H)*',"21)-.$2".*1)">)8-";'? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); IJ
  48. 48. Slice the map to find ideal incremental releases !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  49. 49. <.3$*"21)-=";'>")-/'*.?$4"3$-@9',,="A=" *$9$22.1=+"5$"*$$4")*,="2,.9$"1)">,'* time necessary less first release optional second release optionality more third release optional B0))2$"9)0$-$*1"/-)8>2")C"C$'18-$2"10'1"9)*2.4$-"10$"2>'*")C"A82.*$22" C8*9@)*',.1="'*4"82$-"'9@3.@$2 D8>>)-1"',,"*$9$22'-="'9@3.@$2"5.10"10$"E-21"-$,$'2$ F;>-)3$"'9@3.1="28>>)-1""'*4"'44"'44.@)*',"'9@3.@$2"5.10"28A2$G8$*1"-$,$'2$2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); HI
  50. 50. <.3$*"21)-=";'>")-/'*.?$4"3$-@9',,="A=" *$9$22.1=+"5$"*$$4")*,="2,.9$"1)">,'* !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  51. 51. It’s easy to make release “slices” and move detailed stories into them !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  52. 52. 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  53. 53. 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  54. 54. 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  55. 55. &,'**.*/".*9-$;$*1',"-$,$'2$2"9'*"<$" ='9.,.1'1$4"'2"'"9),,'<)-'>3$"$3$*1 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); ??
  56. 56. <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);
  57. 57. Bonus Material (Not addressed in the Story Mapping session) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  58. 58. Iteratively and incrementally construct software !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  59. 59. <-'4.=)*',"2)>5'-$"4$3$,)?;$*1"@A$2"29)?$" 10$*"$2=;'1$2+"'*4"'($;?12"1)"@A"=;$"'*4"9)21 Scope Traditional software development Time Cost (resources) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  60. 60. 7/.,$"4$3$,)<;$*1"=>$2"?;$"'*4"9)21+"10$*",$3$-'/$2" .1$-'?)*"'*4".*9-$;$*?*/"1)";'>.;.@$"29)<$" Cost Time Scope (resources) Agile software development Traditional software development Time Cost Scope (resources) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); AB
  61. 61. <$3$-'/$"'"20'-$4"8*4$-21'*4.*/")="4$2.-$4">-)4891" /)',2"1)";.*.;.?$"29)>$"50.,$";'@.;.?.*/"3',8$ Cost Scope Time (resources) Agile software development Traditional software development Time Cost Scope (resources) Target business goals & !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); outcomes AB
  62. 62. To release benefit on a schedule we’ll need to leverage incremental and iterative thinking (What’s the difference?) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  63. 63. <.*9-$;$*=*/>"?8.,42"'"?.1"'1"'"=;$ Incrementing calls for a fully formed idea. And, doing it on time requires dead accurate estimation. 1 2 3 4 5 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  64. 64. <.1$-'=*/>"?8.,42"'"-)8/0"3$-2.)*+" 3',.4'1$2".1+"10$*"2,)5,@"?8.,42"8A"B8',.1@ A more iterative allows you to move from vague idea to realization making course corrections as you go. 1 2 3 4 5 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  65. 65. >'*?")-/'*.@'A)*2"9)*2.4$-"-$3.2.*/"10$"2';$" B8*9A)*',.1?"'2"B'.,8-$6""C1$-'A)*".2"*)1" 1),$-'1$46 193 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  66. 66. 72"'"<-)4891")5*$-+"=)8"*$$4"'";)-$"-$>*$4" 8*4$-21'*4.*/")?"@20.<<'A,$B !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CC
  67. 67. <$$=.*/")8-"82$-"21)-.$2"1'2>?9$*1-.9" ',,)5$4"82"1)"4$@$-"2),8A)*"4$9.2.)*2 user goal user task tool !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  68. 68. <'=$">$'18-$"4$9.2.)*2".*"10$"9)*1$?1")>" @;$"'*4"A84/$1",.;.1'@)*2 hole ? (to put the flower in) dig hole hold my options open !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  69. 69. <);;.1"1)"2'=2>?.*/"82$-"*$$42+"*)1"1)" 2@$9.A9">$'18-$2 hole ? (to put the flower in) dig hole !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  70. 70. &-)48912"5.10"2.;.,'-"<$'18-$2")=$*"3'->" 28?21'*@',,>".*"10$"A-.9$"5$"A'> B0.*C"'?)81"10$"0./0D,$3$,"<$'18-$2" $*/.*$ .*"'"9'-"D"5$,,"'"?82".*")8-"$E';A,$ 1-'*2;.22.)* 71"'"0./0",$3$,+"',,"<$'18-$2"'-$" ?-'C$2 282A$*2.)* *$9$22'-> 2$'12 F81"5$"C*)5"10'1"',,"?82$2"4)*G1" 21$$-.*/"50$$, 0'3$"10$"2';$"A-.9$ N" H'90"$22$*@',"<$'18-$"3'-.$2".*" 28?I$9@3$"J8',.1>"'%$9@*/"10$"K*'," A-.9$ 51 low cost moderate cost high cost !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); LM
  71. 71. <'*)"9'8=)*2"82"1)"9)*2.4$-">8',.1?"'2"@$.*/" 9);A)2$4")B"!"#$%&'$"'*4"()"#$%&'$"$,$;$*12 C:.29822.)*2")B">8',.1?"0'3$"-$3),3$4" '-)8*4"10$"15)"'2A$912")B"28@D$9=3.1?" '*4")@D$9=3.1?"2.*9$"10$"=;$")B" 7-.21)1,$6" E;@$44$4".*"10.2")@D$9=3$F28@D$9=3$" 2A,.1".2"10$".4$'"10'1"!"#$%&'$*+),-./0* 1$2/,.3(*/!*/4$*5%!36!27,3%$*/!* There’s more to 2$+).2$7$3/(8"50.,$"()"#$%&'$*+),-./0* me than that 1$2/,.3(*/!*/4$*5(,&(6,%&!3*!6*)($2(9GH silly survey technique! FFI)-.'J."<'*) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); KL
  72. 72. <'*)"$=>,'.*2"10-$$"/$*$-',"9,'22.?9'@)*2"A)-">-)4891" A$'18-$2B"!"#$%&'()#+"*+)%,-!)+#-*+'.#+"'*4",).-/&$)0#1 2"#$%&'()# C0$">-)48912";821"0'3$"10.2" A$'18-$2"A)-";$"1)"D$" 9)*2.4$-"10$">-)4891" '99$>1'D,$ 3+)%,-!)+#-*+'.# C0$";)-$")A"10.2"E"/$1+"10$" “This car has many flaws. Buy it anyway. It’s so much fun to D$($- drive” -- from a NY Times review of the 4).-/&$)0# Mini Cooper E",)3$"10.2"$,$;$*1")A"10$" >-)4891F !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); GH
  73. 73. <$='-'1$")>?$9@3$"A8',.1B"C-);"28>?$9@3$" A8',.1B D>?$9@3$"A8',.1B"-$C$-2"1)"10$"3.2.>,$";$'28-'>,$+"'*4" $'2.,B"3',.4'1$4"90'-'91$-.2@92")C"10$"=-)4891"828',,B" .*"-$,'@)*"1)"10$"=-)48912E"2=$9.F9'@)*26" ! :)$2"10$"=-)4891"=$-C)-;">8/"C-$$"'2"2=$9.F$4G ! HI=$91")>?$9@3$"A8',.1B"1)">$"0./06 !"#$%&'(%)*"+,-./)0%1%02).3).4%)25%&-6&+'37) 30)5038"&.)8%2-97)&43-&%2)/3"):+;%)+2)+) 5038"&.)3<7%0=)"J0$2$"90).9$2"'%$91"10$" =-)4891"82$-2E"=$-9$=@)*")C"A8',.1B ! K2"10$"=-)4891"2.;=,$"1)"82$G ! K2"10$"=-)4891"$L9.$*1"1)"82$G ! :)"K",.M$"82.*/"10$"=-)4891G !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); NO
  74. 74. <2$"10$"='*)"9,'22.>9'?)*2"1)"@)10" A-.)-.?B$"'*4"2A,.1 Brakes (must have) Cool dashboard Basic brakes Stopping Anti-locking light when (must have) distance (delighter) slipping (one dimensional) (delighter) =$$A".*";.*4E"F)8";821"G*)5"F)8-"9821);$-2"'*4"82$-2"1)" 4$1$-;.*$"28@H$9?3$"3',8$6 I*$"A$-2)*J2"4$,./01$-";'F",$'3$")10$-2"'A'10$?96"" 7*)10$-J2";821"0'3$".2"82$,$22"1)")10$-"9821);$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  75. 75. >$1?2",))@"'1"50'1"0'AA$*2".B"5$"1'@$"'" *'.3$".*9-$;$*1',"'AA-)'90"1)"9)*21-89C)* >$1?2"21'-1"5.10"10$"D'2.9"B$'18-$2")B")8-"D826 sprint 4 3 2 1 release Interior seating exterior body transmission suspension features brakes engine tires Product goal: (in 4 sprints) be driving the coolest bus in town !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  76. 76. <$"9'*",$3$-'/$".1$-'=)*"1)">8.,4"8?" @8',.1A Iterating affords building up quality over time 1 2 3 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  77. 77. <)*2.4$-"10$2$"=)8-"21)->"2?,.@*/" 0$8-.2A92"10'1"B8.,4"8?"C8',.1> !"#$%&$'$(()*+% 3"4$*+" D)-"10$"=$'18-$"1)"B$";.*.;',,>" F0'1"5)8,4";'G$"10.2"=$'18-$"2'=$-"1)" 4$;)*21-'B,$"E"B81"*)1"-$,$'2'B,$+" 82$H""D)-"B)10"10$"82$-+"'*4"=)-"10$" 50'1".2"10$";.*.;',"=8*9A)*',.1> B82.*$22"?'>.*/"=)-"10$"2)I5'-$H !"#$%&'()*)+,-$)./01),2&3)2'4'55#-3) !"#$%&'()/2%<0)8#&/7#9,2:)'2+,-4'$'20) 6'&75)#27)2,)8#&/7#9,2 ,+)=<5/2'55)-<&'5)5<41)#5)4-'7/0)4#-7) 8#&/7#9,2)) ,"-".)/)*+%0%1/$2).)/)*+" F0'1"5)8,4"'44"10$"'B.,.1>"1)"?$-=)-;" 5(".)/)*+6%7$#48#9":'$6%3$2% 10$"82$-"1'2G".*"4.%$-$*1"5'>2H""744.*/" ;--$"/ .*"28B"1'2G2"10'1"'-$")?A)*',,>" F0'1"5)8,4";'G$"10.2"=$'18-$"$'2.$-"1)" ?$-=)-;$4H 82$H"J)-$"4$2.-'B,$"1)"82$H""D'21$-"1)" !"#$%&'()#)+,-$)./01),%9,2#&)6'&75:) 82$H 7#0')&,,;<%)0,,&5:)/2%<0)0-#25&#9,2),2) !"#$%&'()#<0,>4,$%&'9,2:)5'"3)8/5<#&) 7#0'5 7'5/?2:)5%''7);'35 * Adapted from Gerard Meszaros’ “Storyotypes” !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); KK
  78. 78. >8.,4.*/"8?"@8',.1A".1$-'B3$,A"'*4" .*9-$;$*1',,A"20.?2"10$"C$21"?-)4891"?)22.C,$ D6 E$"F*)5"$'90"21)-A"9'*"C$"2?,.1".*1)"'1",$'21"G)8-"?'-12 H6 I'-,A".1$-'B)*2"21-.3$"1)"C8.,4"C'-$"*$9$22.B$2+",'1$-".1$-'B)*2"C8.,4"8?" @8',.1A sprint J6 I3',8'B*/"-$'4.*$22"C'2$4")*"28CK$9B3$"@8',.1A"1)"8*4$-21'*4"4)*$*$22 4 3 2 1 A- B- D C D A B C- B- D B D A B A- D B A- D BI B- DI release user tasks to support Product goal: (in 4 sprints) be driving the highest quality bus possible !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  79. 79. :.3.4$"-$,$'2$"4$2./*"<"4$3$,)=;$*1".*1)" 10-$$"=0'2$2 !"#$%$&'()*#+">8.,4"'"2.;=,$"2?21$;"2='*")@"*$9$22'-?"@$'18-$2"A-21"B"10$" 5',C.*/"2C$,$1)* ,%-.()*#+"744"D$E.F.,.1?"'*4"2'@$1?"*$E1 /$-'()*#+"G.*.20"5.10"9);@)-1+"=$-@)-;'*9$+"'*4",8E8-? H$2$-3$"I;$".*"10$"-$;'.*.*/"10.-4"@)-"8*@)-$2$$*"'44.I)*2" '*4"'4'=1'I)*2 Opening Mid-Game End-Game Game Build out Refine the UI and uncertainty Build up flexibility and interactions, take advantage of necessities business rule iterative learning enforcement uncertainty decreases over time time Construx on the Cone of Uncertainty: http://www.construx.com/Page.aspx?hid=1648 Visdos on the cone: http://www.implementingscrum.com/2008/02/19/vegas-hangover-enlightenment/ !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); JK
  80. 80. <0.2"=-)4891"/-)5.*/"21-'1$/>"2,)5,>" ?-.*/2"10$"=-)4891".*1)"@)982 7*"'-A21"$*3.2.)*2"'*"$*A-$"='.*A*/"?>"21'-A*/"5.10"'"2B$190")-"'*" 8*4$-C='.*A*/"'*4"2,)5,>"?8.,4.*/"8="4$1'.," 7==,>"10$"2';$"21-'1$/>"1)",$'-*"'?)81"10$"=-)4891"4);'.*"'2"D8.9B,>" '2"=)22.?,$"E"1)"90'2$")81"8*9$-1'.*1>"?$@)-$"1))"0$'3.,>".*3$2A*/ Opening Mid-Game End-Game Game Build out Refine the UI and uncertainty Build up flexibility and interactions, take advantage of necessities business rule iterative learning enforcement uncertainty decreases over time time !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); FG
  81. 81. <))=.*/"'1"10$"-$,$'2$")>"?82.*$22"3',8$" )3$-"@;$",$12"82"2$$"50'1A2"/).*/")*"0$-$ B)"C*.20")*"@;$" 5$";'D"E1-.;"10$" cumulative business value 1'.,F"?D"4$>$--.*/" 21)-.$2")>";)4$21" 3',8$ time Opening Mid Game End Game Game Early stories emphasize Once we’re confident Over time the value of iteration and learning. we have the “shape” stories begin to We need to be sure of the product right, diminish signaling it’s we’re building the we begin to pile in time for release right product value !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); GH
  82. 82. ?,<;51-2",-"@0,7;<4"A-,8/'72'"*<B;10'7." C'"5''"43'"715<,6'0D"E'-'F4"2*1-'7 G3'"1-6'05'",H"015A" acquired product knowledge 15"A-,8/'72' I'*0-1-2"'*0/1'0"1H" 8'J0'"E;1/71-2"43'" 01234"@0,7;<4" >1K2*4'5"015A time Opening Mid Game End Game Game Early stories emphasize Once we’re confident Over time the value of iteration and learning. we have the “shape” stories begin to We need to be sure of the product right, diminish signaling it’s we’re building the we begin to pile in time for release right product value !"#$$%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,> L#
  83. 83. <8.4$,.*$2"=)-"-$,$'2.*/")*">;$ A6 B0.*"21)-.$2"'//-$22.3$,C"48-.*/"$'-,C"2D-.*12"1)" E8.,4"',,"$22$*>',"=8*9>)*',.1C"$'-,C6 F6 G8.,4"8D"=8*9>)*',.1C")*,C"'H$-"',,"*$9$22.>$2" '-$".*"D,'9$6 @6 &-)1$91">;$".*"10$"I*',"2D-.*12"=)-"D-)4891" -$I*$;$*16 J6 722$22"-$,$'2$"-$'4.*$22"'1"10$"$*4")="$'90" 2D-.*1"'2"D'-1")="D-)4891"-$3.$56 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); ?@
  84. 84. Parting thoughts !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  85. 85. Questions? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  86. 86. <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);

×