User Story Mapping
Upcoming SlideShare
Loading in...5
×
 

User Story Mapping

on

  • 29,563 views

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 ...

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.

Statistics

Views

Total Views
29,563
Views on SlideShare
23,216
Embed Views
6,347

Actions

Likes
124
Downloads
1,156
Comments
4

45 Embeds 6,347

http://www.ryuzee.com 1965
http://www.scoop.it 1175
http://blogs.agilefaqs.com 941
http://www.projekt-log.de 652
http://freethinker.addinq.uy 469
http://blog.andrefaria.com 278
http://www3441ui.sakura.ne.jp 241
http://tracks.roojoom.com 109
http://www.roojoom.com 93
http://graywolf.org.ua 71
https://twitter.com 61
http://app.roojoom.com 56
http://sprmario.posterous.com 47
http://triducnguyen.info 30
http://cloud.feedly.com 27
https://ruzuku.com 25
http://ruzuku.com 24
http://www.slideshare.net 9
http://sprmario.tumblr.com 8
http://www.tumblr.com 8
http://paper.li 6
http://www.linkedin.com 6
https://si0.twimg.com 5
http://plus.url.google.com 4
http://twitter.com 4
http://agilefaqs.com 3
http://static.slidesharecdn.com 3
http://a0.twimg.com 3
http://www.techgig.com 2
http://flavors.me 2
http://bitly.com 2
http://translate.googleusercontent.com 2
https://twimg0-a.akamaihd.net 2
http://webcache.googleusercontent.com 2
http://pinterest.com 2
http://clickwatchlearn.blogspot.com 1
http://www.pinterest.com 1
http://127.0.0.1 1
http://www.lmodules.com 1
http://m.tracks.roojoom.com 1
https://www.facebook.com 1
https://m.facebook.com&_=1386311143462 HTTP 1
http://digg.com 1
http://feeds2.feedburner.com 1
http://www.buchweb.dk 1
More...

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

User Story Mapping User Story Mapping Presentation Transcript

  • <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);
  • <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
  • 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); <
  • <2$-"=1)-.$2"'-$"4.%$-$*1"10.*/2"1)" 4.%$-$*1">$)>,$666 !"?@A"=184.)2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); B
  • <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
  • <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/.,$"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
  • Let’s talk about the nature of multi-purpose things (yes I’m going meta) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <
  • <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); >
  • <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
  • <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
  • 7*4+".1<2"$'2="1)"/$1",)21".*"10$"20$$-" *8;>$-")?"10$; !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  • 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
  • <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
  • <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
  • The foundational building block of a stories that say what people are doing (user tasks) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <.-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
  • What’s common about the items each of you wrote down? What was different? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • &$)<,$"'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); >?
  • <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
  • <0.*=")>"10-$$",$3$,2?"/)',+"1'2=+"'*4"1)), goal task tool !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  • <)=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
  • 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); <=
  • <*"=-'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
  • Organize user stories into a map that communicates experience !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <="'--'*/.*/"'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
  • <="'--'*/.*/"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
  • <="'--'*/.*/"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
  • <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
  • &-)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
  • &-)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
  • <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
  • 7"21)-<";'=">)-"'"-$'2)*'?,$"2.@$4"2<21$;" 9'*"A,,"'"-)); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BB
  • Product Discovery Looks Like this: !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <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
  • 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); <=
  • Let’s try one together... !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • Discuss, fill in, refine the map, and test for completeness !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • :.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); >?
  • <-$'=*/">$-2)*'2"?)-"4.%$-$*1"@.*42")?" >$)>,$"82.*/"A)8-"2A21$; !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  • 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
  • <=$190"'">-'/;'?9">$-2)*'"10.*=.*/" '@)81"2);$)*$"4.%$-$*1"A-);"B)8-2$,A !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CD
  • <="'--'*/.*/"'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
  • <="'--'*/.*/"'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
  • <="'--'*/.*/"'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
  • <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
  • <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
  • Slice the map to find ideal incremental releases !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <.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
  • <.3$*"21)-=";'>")-/'*.?$4"3$-@9',,="A=" *$9$22.1=+"5$"*$$4")*,="2,.9$"1)">,'* !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); BC
  • It’s easy to make release “slices” and move detailed stories into them !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  • 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  • 744.*/"1'<$",.*$2"1)"10$"5',,",$12" <'-=9.<'*12")-/'*.>$"21)-.$2".*1)",'?$-2 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); @A
  • &,'**.*/".*9-$;$*1',"-$,$'2$2"9'*"<$" ='9.,.1'1$4"'2"'"9),,'<)-'>3$"$3$*1 !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); ??
  • <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);
  • Bonus Material (Not addressed in the Story Mapping session) !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • Iteratively and incrementally construct software !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <-'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
  • 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
  • <$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
  • 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); <=
  • <.*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
  • <.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
  • >'*?")-/'*.@'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); <=
  • 72"'"<-)4891")5*$-+"=)8"*$$4"'";)-$"-$>*$4" 8*4$-21'*4.*/")?"@20.<<'A,$B !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); CC
  • <$$=.*/")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
  • <'=$">$'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
  • <);;.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
  • &-)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
  • <'*)"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
  • <'*)"$=>,'.*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
  • <$='-'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
  • <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
  • >$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); <=
  • <$"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
  • <)*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
  • >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); <=
  • :.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
  • <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
  • <))=.*/"'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
  • ?,<;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#
  • <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); ?@
  • Parting thoughts !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • Questions? !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69); <=
  • <8.,4.*/"<$($-"&-)48912"=2.*/ =2$-">1)-?"@'AA.*/ #$%"&'()* BA'()*C'9;6)-/ 5556'/.,$A-)48914$2./*69); !"#$%"&'()*+"',,"-./012"-$2$-3$4+"55567/.,$&-)4891:$2./*69);