steering iterative and incremental delivery with jeff patton

Post on 28-Jan-2015

111 Views

Category:

Design

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

!"#$%&'())*+,&-#$&./&0$(122#+3$45%*+,&6,*73&(+8&./&5#,3"93$

:3;&0(<#+=)(<#+>(1?@#$,AAA@6,*730$#8B1"C34*,+@1#?"A*<3$D&>=3;)(<#+

!"#$$%&#$''"()*"+,-./0",11"234567"2)7)28)90":::;<431)+2.9=>6?)734/;>.@

A5)"B2.9=>6".:/)2C7"B)27B)>D8)

E#

what:who:why:

what:who:why:

Product Goals

Simple Personas

User Interface Sketch

User Story Map

R1

User Story Map

R2

R3

!""#$%&'(%)*+,-./#0F./6,3/7"8,1=,G1)"B2.9=>6",/9"H),6=2)"39),7

1$#2&-%*3(4-#56$)*I)7),2>50")JB1.2)0"8,139,6)",/9""B1,/"9)138)2K".H"B.6)/D,1"B2.9=>6"7.1=D./7

1$#2&-%*36/(56$)*L6)2,D8)1K",/9"3/>2)@)/6,11K"G=319",/9"8,139,6)"B2.9=>6"7.1=D./7

what:who:why:

Product Backlog

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?'0'"*0'"43'"@'A"<,-<'B45!"#$%&'()"&(*+&,%-+#.(+/&#+&01/%,&(+&*21$&'()&2%1",

/3#4#+5&$2%&617

4(3310("1.8%&731++#+5

9:;&<&99=

"%3%1/%&/$"1$%5'

,#/4(8%"'&721/%

"%1$)"%/&1+,&%>7%"#%+4%&617/

CC

7!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Steering iterative and incremental delivery

%$$

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Product Ownership takes a team

%$%

De

live

ry T

ea

mPr

od

uc

t O

wn

ers

hip

Te

am

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

!"#$%&'()*$+)#,'-#.("/0'.1%)#23$-'4"20'*..5'6.#17#('7%('87/5'0.'2"--.#0'07/9/7*'()+)*.-4)%0

%$#

Cycle 0 Cycle 1 Cycle 2 Cycle 3 Cycle 4

• implement cycle 1

• support cycle 1 delivery

• design for cycle 2• research for cycle 3

• implement cycle 2• fix cycle 1 bugs if any

• support cycle 2 delivery

• design for cycle 3• research for cycle 4• validate cycle 1

features

• implement cycle 3• fix cycle 2 bugs if any

• support cycle 3 delivery

• design for cycle 4• research fir cycle 5• validate cycle 1+2

features

• planning• researching• high level product

design• design for cycle 1

• development environment setup

• architectural “spikes”

See Miller’s Case Study of Customer Input For a Successful Product:: http://www.agileproductdesign.com/useful_papers/miller_customer_input_in_agile_projects.pdf

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

!"#$%&'()*$+)#,'-#.("/0'.1%)#23$-'4"20'*..5'6.#17#('7%('87/5'0.'2"--.#0'07/9/7*'()+)*.-4)%0!"#$%"! !"#$%&'(#)*+",-./(

0++',('#(&-##,+(#"()".'+(,'#".+,(1#"('-+(*+2'(345(&6&7+,

! 8-+6('-+*(/79*('-+()#":('-+6(*++$('#($#('#(;+'("+9$6(.*&7%$.*;(<=($+,.;*(9*$()".>*;(9&&+/'9*&+(&".'+".9

! 8-+6()#":,-#/($+'9.7,().'-('-+("+,'(#1('-+('+90

&'%()*! !"#$%&'(#)*+",(

/96(9?+*>#*@(9*,)+"(A%+,>#*,@(9*$(B9&&+/'C(,'#".+,('-9'(0++'('-+."(;#.*;4.*(,/+&.D&9>#*,

+,"%! !"#$%&'(#)*+",(

9,,+,,(/"#$%&'(A%97.'6(-#7.,>&9776(9*$(.*E+&'(0#"+(,'#".+,('#(.'+"9>F+76(.0/"#F+(.'

! !"#$%&'(#)*+",('9:+('-+()#":.*;(/"#$%&'('#(%,+",(9*$(&%,'#0+",('#(9,,+,,+,(.'

%$?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

)0,7;<4",8-'05"?/*-"7'/16'0@"";51-2"43'">*?

214

!""#$%$&'($#)*&('+*$,-!.&/&0#12&"$'345.6&$(7! (548&9:/&'/7/%05&7! $%)6&$'.&/&0#12&"$'9;90&

Decompose big stories into smaller “sprint-sized” stories

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?;';'";@"'>'021-2"54,01'5"4,"715<;55"*4"0,;A-'"@0,7;<4",8-'0531@">''A-25

%$B

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

='4*1/'7"?@"7'512-"7016'5"7'<,>A,51B,-",C"D12"54,01'5"4,"5>*//'0"54,01'5

%$E

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

To release on a schedule leverage incremental and

iterative thinking(What’s the difference?)

%$?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?1-<0'>'-@-2A"B;1/75"*"B14"*4"*"@>'

1 2 3 4 5

Incrementing calls for a fully formed idea.

And, doing it on time requires dead accurate estimation.

%$C

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?@4'0*A-2B"*-7"?1-<0'>'-A-2B"C;1/75"*"0,;23"6'051,-."6*/17*4'5"14."43'-"5/,8/D"C;1/75";E"F;*/14D

1 2 3

A more iterative allows you to move from vague idea to realization making course corrections as you go.

4 5

%$G

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>193 %%$

?*-@",02*-1A*B,-5"<,-517'0"0'6151-2"43'"5*>'"C;-<B,-*/14@"*5"C*1/;0'9""D4'0*B,-"15"-,4"4,/'0*4'79

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,> %%%

?<;/@4;0'"*4"6*01,;5"54*2'5",A"<,>@/'B,-."C;5D'"7EF05*G.")*015

Product Owners must understand the delivery strategy that leads

to a finished product

time!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?,0@"/1@'"*-"*0A54"4,"'-6151,-"*-7"B;1/7"43'"C0,7;<4"3,/15A<*//D

Mid-Game End-Game

%%E

“Art is never finished, only abandoned.”

-Leonardo DaVinci

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

:5"8'"?;1/7"5,@8*0'"8'A0'"71*/1-2";B"5;?C'<D6'"E;*/14F

!"#$%&$$#'($)'*)+&,-#./)0,12)321'-124),3'&(4).02).5'),$62%.$)'*)$&782%91#./),(4)'782%91#./)$#(%2).02)9:2)'*);3#$.'.-2<)

=:724424)#().0#$)'782%912>$&782%912)$6-#.)#$).02)#42,).0,.)!"#$%&'$()*+,-./(0$1.+-23(.!(.4$(5%!26!17+2%$(.!(1$)*-1$7$2.38)50#-2)3*"#$%&'$()*+,-./(0$1.+-23(.!(.4$(53+&36+%&!2(!6(*3$139?@

>>A'3#,B#)C,('

There’s more to me than that silly survey technique!

%%#

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?*-,"7'5<01@'7"2'-'0*/"</*551A<*B,-5"C,0"D0,7;<4"C'*4;0'5

!"#$%&'()#!"#$%&'()*+$,)-+$"./#$+"#-#$0#.+)&#-$0'&$,#$+'$*'1-2(#&$+"#$%&'()*+$.**#%+.34#

*+)%,-.)+#-/+'0#!"#$,'&#$'0$+"2-$5$6#+7$+"#$3#8#&

1)0-2&$)3#5$4'/#$+"2-$#4#,#1+$'0$+"#$%&'()*+9

“This car has many flaws. Buy it anyway. It’s so much fun to drive”

-- from a NY Times review of the Mini Cooper

%%E

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?5'"43'"@*-,"</*551A<*B,-5"4,"C,43"

D01,01BE'"*-7"5D/14

Brakes(must have)

Basic brakes(must have)

Stopping distance

(one dimensional)

Anti-locking(delighter)

Cool dashboard light when

slipping(delighter)

%%F

@''D"1-">1-7G"H,;">;54"I-,8"H,;0"<;54,>'05"*-7";5'05"4,"

7'4'0>1-'"5;CJ'<B6'"6*/;'9

K-'"D'05,-L5"M7'/1234'0N">*H"/'*6'",43'05"*D*43'B<9""

:-,43'0L5"M>;54O3*6'N"15";5'/'55"4,",43'0"<;54,>'05

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?,-517'0"43'5'"@,;0"54,0A"5B/1C-2"

3';015D<5"43*4"E;1/7";B"F;*/14A

!"#$%&$'$(()*+%G,0"43'"@'*4;0'"4,"E'">1-1>*//A"

7'>,-540*E/'"H"E;4"-,4"0'/'*5*E/'."

83*4"15"43'">1-1>*/"@;-<D,-*/14A

!"#$%&'()*)+,-$)./01),2&3)2'4'55#-3)6'&75)#27)2,)8#&/7#9,2

,"-".)/)*+%0%1/$2).)/)*+!I3*4"8,;/7"*77"43'"*E1/14A"4,"

B'0@,0>"43'";5'0"4*5J"1-"71('0'-4"

8*A5K"":771-2"1-"5;E"4*5J5"43*4"*0'"

,BD,-*//A"B'0@,0>'7K

!"#$%&'()#)+,-$)./01),%9,2#&)6'&75:)7#0')&,,;<%)0,,&5:)/2%<0)0-#25&#9,2),2)7#0'5

3"4$*+"I3*4"8,;/7">*J'"4315"@'*4;0'"5*@'0"

4,";5'K""G,0"E,43"43'";5'0."*-7"@,0"43'"

E;51-'55"B*A1-2"@,0"43'"5,L8*0'K

!"#$%&'()/2%<0)8#&/7#9,2:)'2+,-4'$'20),+)=<5/2'55)-<&'5)5<41)#5)4-'7/0)4#-7)8#&/7#9,2))

5(".)/)*+6%7$#48#9":'$6%3$2%;--$"/I3*4"8,;/7">*J'"4315"@'*4;0'"'*51'0"

4,";5'K"M,0'"7'510*E/'"4,";5'K""G*54'0"

4,";5'K

!"#$%&'()#<0,>4,$%&'9,2:)5'"3)8/5<#&)7'5/?2:)5%''7);'35

%%N

* Adapted from Gerard Meszaros’ “Storyotypes”

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

)/*?"@2,,7AB'+'0AB'54C

%%D

goodbetterbest

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?5'"*"<3'55"2*>'"7'/16'0@"540*4'2@"4,",02*-1A'"54,01'5"4,"B;1/7!"#$%$&'()*#+!"#$%&!'!($)*%+!,'%-$./!(-+%+01.,%-.()*#+!2&&!3+4$5$%$067!'%0+8.'9:+(7!;('<+06=

/$-'()*#+!>+?.+!#('5$%$067!*+8<18)'.@+7!'+(0A+9@(>+(+8:+!9)+!$.!0A+!8+)'$.$./!0A$8&!<18!#.<18+(++.!'&&$91.(!'.&!'&'*0'91.(

OpeningGame

Build up necessities

Mid-GameBuild out

flexibility and business rule enforcement

End-GameRefine the UI and interactions, take

advantage of iterative learning

%%C

time

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?3'"54,0@">*A"<,-4*1-5"48,"1>A,04*-4"*-*4,>1<*/"B'*4;0'5!"#$!"#$!%&'$%&$'"#$())*+,(-%.$+/$'"#$*+/'$%&$#//#.-(*$(,-0+-#/$'"#$())*+,(-%.$/1))%2'/

!"#$(")$*&+,-$')'.%&$+/$'"#$/%34(2#$4#$51+*6$'"('$/1))%2'/$'"#$*#(/'$.175#2$%&$.#,#//(28$'(/9/$(,2%//$'"#$&1**$/)(.$%&$1/#2$#:)#2+#.,#

time

necessity

The backbone

The walking skeleton

%%C

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?,;0"7'/16'0@"540*4'2@">*A1>1B'5"/'*0-1-2"*-7">1-1>1B'5"015C!"#$%&'(')*$+,-$./0$/$%-(1)2$3.-$+1$'2-)34#$/$%/4-$2-&'5-"#$%+"/+-*#

%#$

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

End Game

Over time the value of stories begin to diminish signaling it’s time for release

Mid Game

Once we’re confident we have the “shape” of the product right, we begin to pile in value

Opening GameEarly stories emphasize iteration and learning. We need to be sure we’re building the right product

)01,01?@'"8,0A"4,">*B1>1@'"/'*0-1-2

!"#$%&%'("#$)&"$(&*(+",$"(-.&)/&%'(01"($&'10(2$3/.40(5&6'#0"7($&78

!"#$%&%'("#$)&"$(#-3.0(0"41%&4#)(41#))"%'"7(5&6'#0"7($&78

9"(4#%(:%&71(3%(65"(-;(<0$&55&%'(01"(0#&)=(>(/"*"$$&%'($":%"5"%07

timeac

qui

red

pro

duc

t kno

wle

dg

e

%#%

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?'0'"*0'"43'"@'A"<,-<'B45!"#$%&'()"&(*+&,%-+#.(+/&#+&01/%,&(+&*21$&'()&2%1",

!"#$%&'(#)*+",-./('+01,

2%034'"0&5($+6+3#/1+*'

!"#$%&'(#)*+",-./('+01(1++7*8,

9'#":(,/3.;*8(-+%".,7&,

<##$4=+>+"4=+,'(,'"0'+8:

2+3.6+":(,'"0'+8:

?035.*8(,5+3+'#*%##

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

We fail when we can’t collaborate effectively to

deliver

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Build shared understanding throughout design and

development

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

We fail when we can’t imagine the future

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Map the future vision of your product

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

We fail when we believe the experience we imagine is true

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Plan to learn: build enough to validate early

%#?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Now and Later

%#?

!"#$%&'())*+,&-#$&./&0$(122#+3$45%*+,&6,*73&(+8&./&5#,3"93$

:3;&0(<#+=)(<#+>(1?@#$,AAA@6,*730$#8B1"C34*,+@1#?"A*<3$D&>=3;)(<#+

6E(*7(F73&G*+"3$&HIJJ

Questions?

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?5'@;/"/1-A5"*-7"0'@'0'-<'5

!"#$%!&'(%)!*+,,-./!+%012$3!45,3667778.9':((;81(<6.9':((;#6#=$6:$5$%#(>7+%$?@@AB6-.C$98,4,D#'+%0CEFGH6FI!!!

J4$!.$7!K#$%!#'(%)!:+1;2(/!-#!+!<+,3!45,3667778+/-2$,%(CK1'C$#-/.81(<6:2(/6'4$?.$7?:+1;2(/84'<2!

L/-2$!M$N$2(,<$.'!@@!9!@O!PK-1;%$Q3!45,3667778+/-2$,%(CK1'C$#-/.81(<6C(7.2(+C#6=K-1;%$Q#6,+5(.?+/-2$?@@9@O8,CQ

R%(CK1'!S7.$%#4-,!@@!9!@O!PK-1;%$Q3!45,3667778+/-2$,%(CK1'C$#-/.81(<6C(7.2(+C#6=K-1;%$Q#6,+5(.?,(?@@9@O8,CQ

"#$%!&'(%)!*+,,-./!PK-1;%$Q3!45,3667778+/-2$,%(CK1'C$#-/.81(<6C(7.2(+C#6=K-1;%$Q#6,+5(.?#'(%)?<+,,-./8,CQ!

%B%

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?5'@;/"/1-A5"*-7"0'@'0'-<'5

!"#$%!"&'()%'(*"+&%,)-.#($%/*('%"&%*0-)1%$2,,"&+%3#2**(*4%56,477

88892+"#(,)-'/30'(*"+&93-$7'-8&#-2'*7:#$;:&'();'(*"+&;,)-.#($9,'<

!"#$%!"&'()%(=2$,#(%.23>#-+%?,)"&0*%-&%,)(@,()<-)20('%./*"&(**%32)'*A4%56,477

88892+"#(,)-'/30'(*"+&93-$7'-8&#-2'*7%:#$;:&'();.23>#-+;32)'*9,'<

B"##()C*%!"#$%&'()*%+,%!(#'+-$.%/01('%2+.%"%&(33$##,(4%5.+)(3'4%56,47788892+"#(,)-'/30'(*"+&93-$7/*(</#;,2,()*7

$"##();3/*0-$();"&,/0;"&;2+"#(;,)-D(30*9,'<%%

E5(%FG2#/2.#(H%/*2.#(H%2&'%<(2*".#(I%$2&0)2%2&'%-05()%+--'%"'(2*%3-$(%<)-$%

B2)01%J2+2&C*%.-->4%/0#16.$)7%8+9%'+%!.$"'$%5.+)(3'%!(#'+-$.#%:+;$

K%+)(20%'"*3/**"-&%-&%-/0,/0H%-/03-$(H%2&'%"$,230%"&%"&%L-.()0%!2.)"32&0C*%

)(3-)'('%02#>4%<$=";6+.%6#%>(.%?$)6(-%56,477#".)2)19"='29-)+7&-'(7M

E5(%)(2#%*-/)3(%-<%05(%3#(G()%B-&2%N"*2%G"*/2#"O2P-&%3-&3(,04%Q-5&%K)$"02+(C*%

@.$%@A64$%?$'=+)#%B++)%2+.%C$#6A04%56,477'#923$9-)+73"02P-&93<$R

"'STUVMWV

%B#

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

Story Mapping examplesThanks to all those that have sent photos.

This is just a few. Please send your examples to jpatton@acm.org

%??

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"=*BC,

%DE

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"=*BC,

%DE

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"?B)

%CD

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"?B)

%CD

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"?B)

%CD

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"1-"B31-*

%CD

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?/1<1-2"*">*@"1-"A1-5B

%C$

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@"A*BB1-2"1-"C50*'/

%D%

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"B/,C,9<,>

%D#

!"#$%%"&'(")*+,-."*//"012345"0'5'06'7."8889:21/')0,7;<4='512-9<,>

?4,0@">*AA1-2"*4"B/,C,9<,>

%DE

top related