101207 agility architecture 2up - philippe kruchten · 2012. 7. 12. · architecture architecture

57
!"#$#%& ()* !+,-#%.,%/+. 0.,.12.+ 3454 678&+#"-% 9 3454 2& :;<= 5 <7>?(+. (+,-#%.,%/+. ()* ("#$. @7>?(+. *.A.$781.)%B ! ,$(@- 7C %?7 ,/$%/+.@D E-#$#88. :+/,-%.)F E-G0GF EG;)"G H)#A.+@#%& 7C I+#J@- 67$/12#(F K(),7/A.+F 6()(*( E-#$#88. :+/,-%.)F E-G0GF EG;)"GF 6<0E !"#$%&&#" #$ (#)*+"% ,-./-%%"/-. 0(,12 23+/" /- 4%&/.- ,-./-%%"/-. 0.8(+%1.)% 7C ;$.,%+#,($ ()* 6718/%.+ ;)"#)..+#)" H)#A.+@#%& 7C I+#J@- 67$/12#( K(),7/A.+F I6 6()(*( 82LM.,.G/2,G,( 5#6-7%" +-7 8"%&/7%-9 :+/,-%.) ;)"#)..+#)" <.+A#,.@ =%* K(),7/A.+F I6 6()(*( 8-#$#88.ML+/,-%.)G,71 678&+#"-% 9 344NO54 2& :;<= P

Upload: others

Post on 21-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5'

<7>?(+.'(+,-#%.,%/+.'()*''("#$.'@7>?(+.'*.A.$781.)%B''!',$(@-'7C'%?7',/$%/+.@D'

E-#$#88.':+/,-%.)F'E-G0GF'EG;)"G'H)#A.+@#%&'7C'I+#J@-'67$/12#(F'K(),7/A.+F'6()(*('

E-#$#88.':+/,-%.)F'E-G0GF'EG;)"GF'6<0E'

!"#$%&&#"'#$'(#)*+"%',-./-%%"/-.'0(,12'23+/"'/-'4%&/.-',-./-%%"/-.'0.8(+%1.)%'7C';$.,%+#,($'()*'6718/%.+';)"#)..+#)"'

H)#A.+@#%&'7C'I+#J@-'67$/12#('K(),7/A.+F'I6'6()(*('82LM.,.G/2,G,('' ' ''

5#6-7%"'+-7'8"%&/7%-9':+/,-%.)';)"#)..+#)"'<.+A#,.@'=%*'K(),7/A.+F'I6'6()(*(''8-#$#88.ML+/,-%.)G,71''

678&+#"-%'9'344NO54'2&':;<='' P!

Page 2: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3'

!"#$.'Q'!+,-#%.,%/+.D'R#$'Q'S(%.+D'

•!E(+(*7T'•!RT&17+7)'•!67)U#,%'•! V),718(J2#$#%&'

678&+#"-%'9'344NO54'2&':;<='' W'

R/%$#).'•! !"#$#%&DD'•! <7>?(+.'(+,-#%.,%/+.D'•! !'@%7+& ' ''•! <.A.)'A#.?87#)%@'7)'('@#)"$.'8+72$.1 ''

•! X-.'*()".+'7C'%.,-)#,($'*.2% ''•! X-.'Y#88.+'17*.$'•! !',$(@-'7C'%?7',/$%/+.@'•! Z7#)"'C7+?(+* ' ' ''

678&+#"-%'9'344NO54'2&':;<='' ['

Page 3: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' P'

S-(%'#@'!"#$#%&D'

•! \#1']#"-@1#%-'^3443_B'–!!"#$#%&'#@'%-.'(2#$#%&'%7'27%-',+.(%.'()*'+.@87)*'%7',-()".'#)'7+*.+'%7'8+7`%'#)'('%/+2/$.)%'2/@#).@@'.)A#+7)1.)%G'

•! <()a#A'!/"/@J).'^344W_B'–! V%.+(JA.'()*'#),+.1.)%($'–! <1($$'+.$.(@.'–! 67$$7,(J7)'–! b.$.(@.'8$()c'C.(%/+.'2(,L$7"'–! V%.+(J7)'8$()c%(@L'2(,L$7"'

678&+#"-%'9'344NO54'2&':;<='' d'

!"#$.'K($/.@B'%-.'!"#$.'e()#C.@%7'

'S.'-(A.',71.'%7'A($/.B'

•! V)*#A#*/($@'()*'#)%.+(,J7)@'#:%"'8+7,.@@'()*'%77$@F'•! S7+L#)"'@7>?(+.'#:%"',718+.-.)@#A.'*7,/1.)%@F'•! 6/@%71.+',7$$(27+(J7)'#:%"',7)%+(,%')."7J(J7)F'•! b.@87)*#)"'%7',-()".'#:%"'C7$$7?#)"'('8$()G'

X-(%'#@F'?-#$.'%-.+.'#@'A($/.'#)'%-.'#%.1@'7)'%-.'+#"-%F'?.'A($/.'%-.'#%.1@'7)'%-.'$.>'17+.G'

<7/+,.B'-f8Bcc???G("#$.1()#C.@%7G7+"c'

678&+#"-%'9'344NO54'2&':;<='' g'

Page 4: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' W'

Z.h)"'(%'%-.';@@.),.'7C'!"#$#%&'•! <7>?(+.'*.A.$781.)%'#@'('L)7?$.*".'(,JA#%&'

–!i7%'8+7*/,J7)F'1()/C(,%/+#)"F'(*1#)#@%+(J7)j'

•! X-.'k1(,-#).@l'(+.'-/1()@'•! 0.($#)"'?#%-'/),.+%(#)%&F'/)L)7?)@F'C.(+F'*#@%+/@%'

•! m..*2(,L'$778'On'–! +.U.,%'7)'2/@#).@@F'+.o/#+.1.)%@F'+#@L@F'8+7,.@@F'8.78$.F'%.,-)7$7"&'

•! 6711/)#,(J7)'()*',7$$(27+(J7)'–!I/#$*#)"'%+/@%'

678&+#"-%'9'344NO54'2&':;<='' p'

!"#$.'e.%-7*@'

•! qE'r'.q%+.1.'E+7"+(11#)"' '^:G'I.,L_'

•! <6bHe'' ' ''^:G'<,-?(2.+F'\G'</%-.+$()*_'

•! !*(8JA.'*.A.$781.)%'8+7,.@@'^'\G']#"-@1#%-_'

•! =.()'<7>?(+.'0.A.$781.)%'''''^eG'E788.)*#.,L_'

•! 6+&@%($' ' ' ' '^!G'67,L2/+)_'

•! m.(%/+.'0+#A.)'0.A.$781.)% '^<G'E($1.+_'

•! !"#$.'H)#`.*'E+7,.@@' ' '^<G'!12$.+_'

•! .%,GF'.%,j'

678&+#"-%'9'344NO54'2&':;<='' N'

Page 5: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' ['

0#s.+.)%'1.%-7*@'C7+'*#s.+.)%'#@@/.@'

678&+#"-%'9'344NO54'2&':;<=''

qE''8"+;<;%&'

<,+/1'=+-+.%=%-9'

=.()'8"/-;/8>%&'

54'

S-7'?()%@'%7')7%'2.'("#$.D'

•! R+'()'("#$.'7+"()#Y(J7)'DD'–!!)*')7%'a/@%'#)'()'7+"()#Y(J7)'k/@#)"'("#$.l'

•! V@'%-.+.'@71.'1.%+#,F'('/)#%'7C'("#$#%&D'!'1.()@'%7'1.(@/+.'%-.'$.A.$'7C'("#$#%&D'

678&+#"-%'9'344NO54'2&':;<='' 55'

Page 6: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' d'

!'@-7+%'-#@%7+&'7C'@7>?(+.'(+,-#%.,%/+.''

•! i!XR',7)C.+.),.'^5NdN_'•! I7T'Q'(++7?@'^5Nd4@O5Np4@_'•! K#.?@'Q'A#.?87#)%@'^5NN4@O3444_'•! !0=@'^5Np4@O3444@_'•! !+,-#%.,%/+($'*.@#")'1.%-7*@'^5NN4@O3444@_'

•! <%()*(+*@F'+.C.+.),.'(+,-#%.,%/+.@'^5NN[Oj_'•! !+,-#%.,%/+($'*.@#")'*.,#@#7)@'^344WOj_'

5P'678&+#"-%'9'344NO54'2&':;<=''

V;;;'5Wg5O3444'<7>?(+.'!+,-#%.,%/+.'

'k!+,-#%.,%/+.'#@'%-.'C/)*(1.)%($'7+"()#Y(J7)'7C'('@&@%.1'.127*#.*'#)'#%@',7187).)%@F'%-.#+'+.$(J7)@-#8@'%7'.(,-'7%-.+'()*'%7'%-.'.)A#+7)1.)%F'()*'%-.'8+#),#8$.@'"/#*#)"'#%@'*.@#")'()*'.A7$/J7)Gl'

5W'678&+#"-%'9'344NO54'2&':;<=''

Page 7: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' g'

V<RcV;6'W3454'

•! !+,-#%.,%/+.B'C/)*(1.)%($',7),.8J7)'7C'('@&@%.1'#)'#%@'.)A#+7)1.)%'.127*#.*'#)'.$.1.)%@F'%-.#+'+.$(J7)@-#8@'%7'.(,-'7%-.+'()*'%7'%-.'.)A#+7)1.)%F'()*'8+#),#8$.@'"/#*#)"'@&@%.1'*.@#")'()*'.A7$/J7)'

5['678&+#"-%'9'344NO54'2&':;<=''

<7>?(+.'!+,-#%.,%/+.''<7>?(+.'(+,-#%.,%/+.'.),718(@@.@'%-.'@.%'7C'@#")#`,()%'*.,#@#7)@'(27/%''

•! %-.'7+"()#Y(J7)'7C'('@7>?(+.'@&@%.1F''•! %-.'@.$.,J7)'7C'%-.'@%+/,%/+($'.$.1.)%@'()*'%-.#+'#)%.+C(,.@'2&'?-#,-'%-.'@&@%.1'#@',7187@.*'%7".%-.+'?#%-'%-.#+'2.-(A#7+'(@'@8.,#`.*'#)'%-.',7$$(27+(J7)'(17)"'%-7@.'.$.1.)%@F''

•! %-.',7187@#J7)'7C'%-.@.'.$.1.)%@'#)%7'8+7"+.@@#A.$&'$(+".+'@/2@&@%.1@F'

?"+7@'A##;3B'!3/>/88%'C"6;39%-B'1/;3'1%/9=+-B'C6"9'A/D-%"E'b(J7)($F',#+,('5NN['F7%"/:%7'$"#='G+"@'(3+*H ' '' 5d'678&+#"-%'9'344NO54'2&':;<=''

Page 8: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' p'

<7>?(+.'!+,-#%.,%/+.'^,7)%G_'j'

•! %-.'(+,-#%.,%/+($'@%&$.'%-(%'"/#*.@'%-#@'7+"()#Y(J7)F'%-.@.'.$.1.)%@'()*'%-.#+'#)%.+C(,.@F'%-.#+',7$$(27+(J7)@F'()*'%-.#+',7187@#J7)G''

•! <7>?(+.'(+,-#%.,%/+.'#@')7%'7)$&',7),.+).*'?#%-'@%+/,%/+.'()*'2.-(A#7+F'2/%'($@7'?#%-'/@(".F'C/),J7)($#%&F'8.+C7+1(),.F'+.@#$#.),.F'+./@.F',718+.-.)@#2#$#%&F'.,7)71#,'()*'%.,-)7$7"#,($',7)@%+(#)%@'()*'%+(*.7s@F'()*'(.@%-.J,@G'

5g'678&+#"-%'9'344NO54'2&':;<=''

<7>?(+.'(+,-#%.,%/+.j'

•! (+,-#%.,%/+.'r't'.$.1.)%@F'C7+1F'+(J7)($.'u'v'

•! !'@L.$.%7)F')7%'%-.'@L#)'•! e7+.'%-()'@%+/,%/+.'

•! ;127*#.@'7+'(**+.@@.@'1()&'k#$#J.@l'

•! ;T.,/%(2$.F'%-.+.C7+.'A.+#`(2$.'

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

5p'678&+#"-%'9'344NO54'2&':;<=''

Page 9: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' N'

<7>?(+.'(+,-#%.,%/+.j'

•! j'#@'('8(+%'7C'0.@#")''–! ' I/%')7%'($$'*.@#")'#@'(+,-#%.,%/+.'–!j''?-#,-'8(+%'7C'*.@#")F'%-.)D'

•! j'#),$/*.@'<%+/,%/+.F'()*'1/,-'17+.'–! ' 2.-(A#7/+F'@%&$.F'%77$@'Q'$()"/(".'

•! j'#),$/*.@'V)C+(@%+/,%/+.F'()*'1/,-'17+.'

•! j'#@'8(+%'7C'<&@%.1'(+,-#%.,%/+.'

5N'678&+#"-%'9'344NO54'2&':;<=''

E.+,.#A.*'X.)@#7)@''!"#$#%&O'!+,-#%.,%/+.'

•! !+,-#%.,%/+.'r'I#"'H8Om+7)%'0.@#")'•! !+,-#%.,%/+.'r'1(@@#A.'*7,/1.)%(J7)'•! !+,-#%.,%@'*#,%(%.'C7+1'%-.#+'#A7+&'%7?.+'

•! =7?'8.+,.#A.*'7+'A#@#2$.'A($/.'7C'(+,-#%.,%/+.'•! =7@@'7C'+#"7/+F'C7,/@'7)'*.%(#$@'•! 0#@.)C+(),-#@.1.)%'•! w/($#%&'(f+#2/%.')7%'+.*/,#2$.'%7'@%7+#.@'

678&+#"-%'9'344NO54'2&':;<='' 34'

](Y+(JF'344p'b.)*.$$F'344N'I$(#+'.%'($G'3454F'.%,G'

Page 10: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 54'

E.+,.#A.*'X.)@#7)@''!"#$#%&O'!+,-#%.,%/+.'

!*(8%(J7)'A.+@/@'!)J,#8(J7)'

678&+#"-%'9'344NO54'2&':;<='' 35'

./0123/41%-555%

<%7+&'7C'('C(#$/+.'•! =(+".'+.O.)"#)..+#)"'7C''(',718$.T'*#@%+#2/%.*''?7+$*O?#*.'@&@%.1x''3'1#$$#7)@'=R6'#)'6F''6yyF'6727$'()*'KI'

•! e/$J8$.'@#%.@F'*7Y.)@'7C'*(%('+.87@#%7+#.@F'-/)*+.*@'7C'/@.+@F'3W'-7/+@'78.+(J7)F'1#@@#7)O,+#J,($'^z2#$$#7)@_'

•! TEy<,+/1F'5O?..L'#%.+(J7)@F'P4'%-.)'/8'%7'[4'*.A.$78.+@'

•! b(8#*'8+7"+.@@F'.(+$&'@/,,.@@F'C.(%/+.@'(+.'*.17O(2$.'•! 0#+.,%'(,,.@@'%7'k,/@%71.+lF'.%,G'•! I'8#&9%"'8"#J%;9'$#"'&;+>+K>%'+./>%'7%:%>#8=%-9'

678&+#"-%'9'344NO54'2&':;<='' 33'

Page 11: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 55'

]#h)"'%-.'?($$'•! !>.+'W'{''17)%-@F'*#|,/$J.@''

%7'L..8'?#%-'%-.'5O?..L''#%.+(J7)@'

•! b.C(,%7+#)"'%(L.@'$7)".+''%-()'7).'#%.+(J7)'

•! <,+(8'()*'+.?7+L'+(J7''#),+.(@.@'*+(1(J,($$&'

•! i7'.T%.+)($$&'A#@#2$.'8+7"+.@@'()&17+.'•! V%.+(J7)@'@%+.%,-.*'%7'P'?..L@'•! <%(s'%/+)O7A.+'#),+.(@.@''•! E+7a.,%',71.@'%7'('-($%'•! =7%@'7C',7*.F')7',$.(+'(+,-#%.,%/+.F')7'72A#7/@'?(&'C7+?(+*'

678&+#"-%'9'344NO54'2&':;<='' 3P'

R/%$#).'•! !"#$#%&DD'•! <7>?(+.'(+,-#%.,%/+.D'•! !'@%7+& ' ''•! <.A.)'A#.?87#)%@'7)'('@#)"$.'8+72$.1 ''

•! X-.'*()".+'7C'%.,-)#,($'*.2% ''•! X-.'Y#88.+'17*.$'•! !',$(@-'7C'%?7',/$%/+.@'•! Z7#)"'C7+?(+* ' ' ''

678&+#"-%'9'344NO54'2&':;<='' 3W'

Page 12: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 53'

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' 3d'

<.1()J,@'

•! S-(%'*7'?.'1.()'2&'k(+,-#%.,%/+.lD'

•! S-(%'*7'?.'1.()'2&'k@7>?(+.'(+,-#%.,%/+.lD'

678&+#"-%'9'344NO54'2&':;<='' 3g'

Page 13: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5P'

;)%.+8+#@.'A@G'<7$/J7)'!+,-#%.,%/+.'

•! ;)%.+8+#@.'(+,-#%.,%/+.'#@'('*.@,+#8J7)'7C'()'7+"()#Y(J7)}@'2/@#).@@'8+7,.@@.@F'VX'@7>?(+.'()*'-(+*?(+.F'8.78$.F'78.+(J7)@'()*'8+7a.,%@F'()*'%-.'+.$(J7)@-#8@'2.%?..)'%-.1G'

•! <&@%.1'(+,-#%.,%/+.'

•! <7>?(+.'(+,-#%.,%/+.'

6(7#8"%9:9;<%=-%-55,%

3p'678&+#"-%'9'344NO54'2&':;<=''

!+,-#%.,J)"'#@'1(L#)"'*.,#@#7)@'

'>1"%)/*"%(*%?%2(@A?#"%?#81/4"84%/2%?%)(B0%C?BD%2(3"E3"2%F?/B*7)G%2788"22/(B%(*%27H(FE3?)%D"8/2/(B2%3?D"%F?#4)$%/B%41"%D?#IJ%

P5'678&+#"-%'9'344NO54'2&':;<=''

Page 14: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5W'

!+,-#%.,%/+.'!'0.@#")'!'67*.''''

•! !+,-#%.,%/+.'#)A7$A.@'('@.%'7C'@%+(%."#,'*.@#")'*.,#@#7)@F'+/$.@'7+'8(f.+)@'%-(%',7)@%+(#)'*.@#")'()*',7*.'

CODE

implementation

design architecture

Architecture decisions are the most fundamental decisions and changing them will have significant ripple effects.

P3'678&+#"-%'9'344NO54'2&':;<=''

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' PP'

Page 15: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5['

<,78.'

•! ]7?'1/,-'(+,-#%.,%/+.'k@%/sl'*7'&7/'+.($$&')..*D'

•! V%'*.8.)*@j'

•! V%'*.8.)*@'7)'&7/+',7)%.T%'

678&+#"-%'9'344NO54'2&':;<='' PW'

67)%.T%'(f+#2/%.@'

5G! <#Y.'

3G! 6+#J,($#%&'PG! !".'7C'@&@%.1'WG! b(%.'7C',-()".'

[G! I/@#).@@'17*.$'dG! 071(#)'gG! X.(1'*#@%+#2/J7)'

pG! Z7A.+)(),.'

:0"%(*%6$24"3%

K?4"%(*%%81?B0"%

L(="#B?B8"%

>"?3%M/24#/H7E(B%

M(3?/B%

972/B"22%%3(D")%

N#/E8?)/4$%

6/O"%

N(B4"P4%

P[!678&+#"-%'9'344NO54'2&':;<='!

Page 16: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5d'

!$$'@7>?(+.O#)%.)@#A.''@&@%.1@''-(A.'()'(+,-#%.,%/+.'

•! ]7?'1/,-'.s7+%'@-7/$*'&7/'8/%'#)%7'#%'A(+#.@'"+.(%$&'

•! g[~'7C'%-.'J1.F''%-.'(+,-#%.,%/+.'#@'#18$#,#%'–! 6-7#,.'7C'%.,-)7$7"&F'8$(�7+1'–! <J$$')..*'%7'/)*.+@%()*'%-.'(+,-#%.,%/+.'

•! i7A.$'@&@%.1@B'–!e/,-'17+.'.s7+%'#)',+.(J)"'()*'A($#*(J)"'()'(+,-#%.,%/+.'

•! :.&'*+#A.+@'(+.'17@%$&')7)OC/),J7)($B'–! b/)J1.B'6(8(,#%&F'8.+C7+1(),.F'(A(#$(2#$#%&F'@.,/+#%&'–!i7)'+/)J1.B'.A7$A(2#$#%&F'+."/$(%7+&F'#5p)c=54)j'

Pd'678&+#"-%'9'344NO54'2&':;<=''

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' Pg'

Page 17: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5g'

=#C.,&,$.'

•! S-.)'*7.@'(+,-#%.,%/+($'(,JA#J.@'%(L.'8$(,.D'

•! X-.'.A#$'7C'kIHm0l'r'I#"'H8Om+7)%'0.@#")'•! k0.C.+'*.,#@#7)@'%7'%-.'$(@%'+.@87)@#2$.'171.)%l'

•! Ä!ZiV'r'Ä7/'!#)}%'Z7))('i..*'V%'•! b.C(,%7+Å'

678&+#"-%'9'344NO54'2&':;<='' Pp'

!+,-#%.,%/+($';s7+%'0/+#)"'%-.'=#C.,&,$.''

time

Inception Elaboration Construction Transition

Majority of architectural design activities

678&+#"-%'9'344NO54'2&':;<='' PN'

Page 18: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5p'

=#f$.'*.*#,(%.*'(+,-#%.,%/+($'.s7+%''

time

Inception Construction Transition

Minimal pure Architectural

Activities Ideal realm of agile

practices

678&+#"-%'9'344NO54'2&':;<='' W4'

An architectural iteration focuses in putting in place major architectural elements, resulting in a baseline architectural prototype at the end of elaboration.

Internal Releases with focus on architecture

V%.+(J7)@'()*'E-(@.@'

Releases with main focus on features

678&+#"-%'9'344NO54'2&':;<='' W5'

Page 19: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 5N'

X.(1@'/@#)"'("#$.'*.A.$781.)%'8+(,J,.@'

Initial team Architecture

team

integration team

Architecture team

Feature team 2

Feature team 1

Feature team 3 Infrastructure team A

Infrastructure team B

Prototyping team

Management team Management team

Construction and Transition Elaboration Inception

678&+#"-%'9'344NO54'2&':;<='' WP'

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' WW'

Page 20: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 34'

i.?'b7$.'Ç'!"#$.'!+,-#%.,%'D'

•! !G'\7-)@%7)'*.`).@'%-.'("#$.'(+,-#%.,%F'2/%'#%'*7.@')7%'@..1@'%7'2.'()&'*#s.+.)%'C+71'('@7>?(+.'(+,-#%.,%'2.C7+.'("#$.'1.%-7*@',(1.'#)G'

•! 6712#)(J7)'7C'–! K#@#7)(+&'O'<-(8.+'–! 0.@#").+'Ç'1(L#)"',-7#,.@'–! 6711/)#,(%7+'Ç'2.%?..)'1/$J8$.'8(+J.@'

–! X+7/2$.@-77%.+'–! ].+($*'Ç'?#)*7?'7C'%-.'8+7a.,%''–! \()#%7+'Ç',$.()#)"'/8'2.-#)*'%-.'Ee'()*'%-.'*.A.$78.+@'

678&+#"-%'9'344NO54'2&':;<='' Wd'

m/),J7)@'7C'%-.'@7>?(+.'(+,-#%.,%'

M"QB/E(B%(*%41"%?#81/4"847#"%

•! !+,-#%.,%/+.'*.`)#J7)'•! X.,-)7$7"&'@.$.,J7)'•! !+,-#%.,%/+($'.A($/(J7)'

•! e()(".1.)%'7C')7)'C/),J7)($'+.o/#+.1.)%@'

•! !+,-#%.,%/+.',7$$(27+(J7)'

M")/="#$%(*%41"%?#81/4"847#"%

•! L*-%"&3/8'#$'93%'K/.'8/;96"%'•! M%+7%"&3/8'•! 2#+;3/-.'+-7'=%-9#"/-.'•! 0.@#")F'*.A.$781.)%'()*'

X.@J)"'

•! w/($#%&'(@@/+(),.'

678&+#"-%'9'344NO54'2&':;<='' Wg'

9#(AB%-5+5%

Page 21: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 35'

!+,-#%.,%'(@'<.+A#,.'E+7A#*.+D'>(F/8% '"?I%07/D?B8"% 6"#=/8"%F#(=/D"#% RP8"22/="%07/D?B8"%

6$#.)%'7+#.)%(J7)'

kj'(@'&7/'?#@-l' I($(),.@',7),.+)@' 6$#.)%'2.f.+',-()".'-#@'A#.?'

6711/)#,(J7)''

!@L',$#.)%'C7+',7),.8%@F'*.@#")'

0+#A.@',7),.8%'()*'*.@#")'#)',$7@.'$778@'

671.@'*7?)'C+71'%-.'17/)%(#)'?#%-'('*.@#")'

=.(+)#)"' S#)*'?().' X/+)@'C..*2(,L'#)%7'#18+7A.1.)%@'

V")7+.@'C..*2(,L'

6-()".'1()(".1.)%'

=.%'(+,-#%.,%/+.'"+7?F'-78.'#%'?#$$'.1.+".'

R+"()#Y.@'(+,-#%.,%/+.',-()".'8+7,.@@'

0.C.)*@'(+,-#%.,%/+.'C+71',-()".'+.o/.@%@'

E+(,J,($'</887+%'

S7+L@'(@'*.A.$78.+'

</887+%@'*.A.$78.+F'"#A.'('-()*'(%',7*#)"'

!A7#*@'*.A.$78.+@'

E+7,.@@' !A7#*@'+/$.@' <.%'/8'+/$.@'2/%'-.$8'2+.(L'%-.1'^7+'.A7$A.'%-.1_'?-.)')..*.*'

m7+2#*@'+/$.'2+.(L#)"'

678&+#"-%'9'344NO54'2&':;<='' Wp'I7+89%7'$"#='S?H"#%-5+5%

X?7'@%&$.@'7C'@7>?(+.c@&@%.1'(+,-#%.,%@'

•! e(L.+'()*':..8.+'7C'I#"'*.,#@#7)@'–! I+#)"'#)'%.,-)7$7"#,($',-()".@'

–! ;T%.+)($',7$$(27+(J7)'–!e7+.'+.o/#+.1.)%@OC(,#)"'

–! Z(%.L..8.+'–! 5#*>%"N'!"#$%&'#&()*"'+,-.()%%

•! e.)%7+F'X+7/2$.@-77%.+F'()*'E+7%7%&8.+'–! V18$.1.)%@'()*'%+&'(+,-#%.,%/+.'

–! V)%.)@.'#)%.+)($',7$$(27+(J7)'–!e7+.',7*.OC(,#)"'

–! 5#*>%"N'!"#$%&'#&()*,"/0()*

R)$&'2#"').?'8+7a.,%@')..*'27%-'7+'@.8(+(%.'8.78$.'678&+#"-%'9'344NO54'2&':;<='' WN'

Page 22: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 33'

IO'1%>#+76&'()*'IO'L"@P6&'.,7$7"#,($')#,-.@'

Initial team Architecture

team

integration team

Architecture team

Feature team 2

Feature team 1

Feature team 3 Infrastructure team A

Infrastructure team B

Prototyping team

Management team Management team

Construction and Transition Elaboration Inception

:J%K")(?D72%

:J%;#$O72%678&+#"-%'9'344NO54'2&':;<='' [5'

IO'1%>#+76&'()*'IO'L"@P6&'.,7$7"#,($')#,-.@'

Initial team Architecture

team

integration team

Architecture team

Feature team 2

Feature team 1

Feature team 3 Infrastructure team A

Infrastructure team B

Prototyping team

Management team Management team

Construction and Transition Elaboration Inception

:J%K")(?D72%

:J%:#$O72%:J%:#$O72%:J%;#$O72%678&+#"-%'9'344NO54'2&':;<='' [3'

Page 23: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3P'

;)%.+8+#@.'!+,-#%.,%''K@G''<7$/J7)'!+,-#%.,%'

6()7E(B%:#81/4"84%•! !/%-7+#%&'•! X.,-)#,($'0.,#@#7)'e(L.+'•! b.o/#+.1.)%@'!'!+,-#%.,%/+.'•! <#)"$.'k8+72$.1l'•! kI/#$*#)"'0.@#")l'

•! 1%$%"%-;%&N'–! <;VB'!X!eF'6I!eF'w!S'–! bHEB'Wy5'K#.?@'–! m7?$.+B'!+,-#%.,%/@'R+&Y/@'–! V;;;'5Wg5'

RB4"#F#/2"%:#81/4"84%•! !*A#@7+'c'67)@/$%()%'•! I/#$*#)"'I+#*".@'•! I/@#).@@'c'VX'!$#")1.)%'•! Z7A.+)(),.'7A.+'1/$J8$.'

k8+72$.1@l'•! k6#%&'E$())#)"l'

•! 1%$%"%-;%&N'–! É(,-1()'–! XRZ!mF'0R0!m'–! 0Ä!F'V!mF'Z;eF'I!<V6Fj'–! V;;;'5Wg5'

6(7#8"%R)4T(%!((#4%

[P'678&+#"-%'9'344NO54'2&':;<=''

[W!

6-(+%.+'7C'()'!+,-#%.,%'7+'()'!+,-#%.,%/+.'X.(1'

•! 0.`)#)"'%-.'(+,-#%.,%/+.'7C'%-.'@&@%.1'

•! e(#)%(#)#)"'%-.'(+,-#%.,%/+($'#)%."+#%&'7C'%-.'@&@%.1'•! !@@.@@#)"'%.,-)#,($'+#@L@'•! S7+L#)"'7/%'+#@L'1#J"(J7)'@%+(%."#.@c(88+7(,-.@'•! E(+J,#8(J7)'#)'8+7a.,%'8$())#)"'•! E+787@#)"'7+*.+'()*',7)%.)%'7C'*.A.$781.)%'#%.+(J7)@'

•! 67)@/$J)"'?#%-'*.@#")F'#18$.1.)%(J7)F'()*'#)%."+(J7)'%.(1@'•! !@@#@J)"'8+7*/,%'1(+L.J)"'()*'C/%/+.'8+7*/,%'*.`)#J7)@'

2/";+'QRRSB'!6K>/&3%7'/-'<#7814"B%+,,,%

678&+#"-%'9'344NO54'2&':;<=''

Page 24: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3W'

S-(%'*7'(+,-#%.,%@'(,%/($$&'*7D'

[['678&+#"-%'9'344NO54'2&':;<=''

Getting input: -user, requirement -other architecture -technology

Providing Information -communicating architecture -assisting other stakeholders

Architecting: -design -validation -prototyping -documenting -etc….

U5V%

-UV%

-UV%

<#7814"B%-55W%

X-+..'1(#)',7)@J%/.),#.@'

!+,-#%.,%'

!)($&@%@'

0.A.$78.+@'E+7a.,%'1()(".+'

X78'1()(".1.)%'</2,7)%+(,%7+@'1()(".1.)%'!#+$#).@F'/)#7)@F'.%,G'

</2,7)%+(,%7+@'X.,-)7$7"&'A.)*7+@'

b.o/#+.1.)%@'.)"G'E+7*/,%'Q'1(+L.J)"'1()(".+@'

6/@%71.+@'

=."#@$(%7+@'

dW'678&+#"-%'9'344NO54'2&':;<=''

071(#)'.T8.+%@'

Page 25: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3['

e(#)'27/)*(+#.@'^5_'

!+,-#%.,%'

!)($&@%@'

0.A.$78.+@'E+7a.,%'1()(".+'

R887+%/)#J.@'

i..*@'b.o/#+.1.)%@'imb'E+#7+#J.@'2#&9'

d['678&+#"-%'9'344NO54'2&':;<=''

e(#)'27/)*(+#.@'^3_'

!+,-#%.,%'

IG'!G'

0.A.$78.+@'E+7a.,%'1()(".+'

b.@7/+,.@'kX#1.O27Tl'b.$.(@.'8$()'

b#@L@''%.,-)#,($''8+7"+(11(J,'

S7+L'8(+JJ7)#)"'0.A',7@%@' dd'678&+#"-%'9'344NO54'2&':;<=''

Page 26: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3d'

e(#)'27/)*(+#.@'^P_'

!+,-#%.,%'

IG'!G'

0.A.$78.+@'E+7a.,%'1()(".+'

67)@%+(#)%@'0.,#@#7)@'V)%.+C(,.@'<%/s'%7'/@.'

E+7%7%&8.@';A($/(J7)'67@%@'k8/@-'2(,Ll'

kX-.'<.(1l'

dg'678&+#"-%'9'344NO54'2&':;<=''

X+()@$(J7)'

!+,-#%.,%'

IG'!G'

0.A.$78.+@'E+7a.,%'1()(".+'

X.+1#)7$7"&'!2@%+(,J7)'$.A.$'K7$/1.';18-(@#@'

dp'678&+#"-%'9'344NO54'2&':;<=''

Page 27: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3g'

X+()@$(J7)'O'677+*#)(J7)'

!+,-#%.,%'

IG'!G' 0.A.$78.+@'5'

E+7a.,%'1()(".+'

0.A.$78.+@'3'

0.A.$78.+@'P'

dN'678&+#"-%'9'344NO54'2&':;<=''

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' gd'

Page 28: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3p'

!+,-#%.,%/+($'*.@,+#8J7)'

•! e.%(8-7+'^qE_'•! E+7%7%&8.'•! <7>?(+.'(+,-#%.,%/+.'*7,/1.)%'

•! H@.'7C'He=D'

•! He=O2(@.*'%77$@D'

•! 67*.D'

Logical View Implementation View

Process View

Deployment View

Use Case View

678&+#"-%'9'344NO54'2&':;<='' gg'

!"(#)F'#%'*.8.)*@'7)'%-.',7)%.T%'

5G! <#Y.'

3G! 6+#J,($#%&'PG! !".'7C'@&@%.1'WG! b(%.'7C',-()".'

[G! I/@#).@@'17*.$'dG! <%(2$.'(+,-#%.,%/+.'gG! X.(1'*#@%+#2/J7)'

pG! Z7A.+)(),.'

:0"%(*%6$24"3%

K?4"%(*%%81?B0"%

L(="#B?B8"%

>"?3%M/24#/H7E(B%

64?H)"%:#81/4"847#"%

972/B"22%%3(D")%

N#/E8?)/4$%

6/O"%

N(B4"P4%

gp!678&+#"-%'9'344NO54'2&':;<='!

Page 29: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' 3N'

gN'678&+#"-%'9'344NO54'2&':;<=''

I7T7$7"&'V@@/.@'

•! Z.).+($'k1.@@(".l'7+'1.%(8-7+''#@'R:F'2/%j'

•! m/YY&'@.1()J,@B'–!S-(%'*7.@'('27T'*.)7%.D'

•! m/),J7)F',7*.F'%(@LF'8+7,.@@F'8+7,.@@7+F'*(%(D'–!S-(%'*7.@'()'(++7?'*.)7%.D'

•! 0(%('U7?F',7)%+7$'U7?F'@.1()J,'*.8.)*.),&F',(2$#)"D'

•! 0#A.+"#)"'#)%.+8+.%(J7)'•! e()&'*#@J),%',7),.+)@'7+'#@@/.@'(**+.@@.*'#)'7).'*#("+(1'

p['678&+#"-%'9'344NO54'2&':;<=''

Page 30: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' P4'

RC'K#.?@F'K#.?87#)%@'()*'e7*.$@'

View Model

Stakeholder

Views are projections of a model for a particular stakeholder

Viewpoint

<<defines>>

pd'678&+#"-%'9'344NO54'2&':;<=''

K#.?@'Q'K#.?87#)%@'•! b(J7)($'!88+7(,- ' '^($$',#+,('5NN4_'•! <WK'(%'<#.1.)@'•! I!ERc6!mb'(%'E-#$#8@'

•! V;;;'<%*'5Wg5B3444'b.,711.)*.*'8+(,J,.'C7+'@7>?(+.'(+,-#%.,%/+.'*.@,+#8J7)'

•! V<RcV;6'W3454B'344g'b.,711.)*.*'8+(,J,.'C7+'(+,-#%.,%/+($'*.@,+#8J7)'7C'@7>?(+.O#)%.)@#A.'@&@%.1@'

•! V<RcV;6'W3454B'3454'!+,-#%.,%/+($'*.@,+#8J7)'

•! 6$.1.)%@'.%'($G'^344[_G'4#;6=%-<-.'(#)*+"%'I";3/9%;96"%F'!**#@7)OS.@$.&G'

•! b7Y()@L#F'iGF'Q'S77*@F';G'^344[_G'(#)*+"%'(@&9%=&'I";3/9%;96"%N'T#"U/-.'T/93'(9+U%3#>7%"&'V&/-.'W/%*8#/-9&'+-7'!%"&8%;<:%&O'!**#@7)OS.@$.&G'

pg'678&+#"-%'9'344NO54'2&':;<=''

Page 31: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' P5'

X-.'Wy5'A#.?'17*.$'7C'(+,-#%.,%/+.'

X(0/8?)%Y/"A% Z3F)"3"B4?E(B%%Y/"A%

!#(8"22%Y/"A%

M"F)($3"B4%Y/"A%

[2"%N?2"%Y/"A%

E+7"+(11.+@''<7>?(+.'1()(".1.)%''

E.+C7+1(),.'<,($(2#$#%&''X-+7/"-8/%'

<&@%.1''V)%."+(%7+@'

;)*O/@.+F'*.@#").+@''m/),J7)($#%&'

<&@%.1'%787$7"&''0.$#A.+&F'#)@%($$(J7)'

6711/)#,(J7)'

<&@%.1'';)"#)..+#)"'

H@.+@c!)($&@%@cX.@%.+@'I.-(A#7+''

<#7814"B%+,,U% pp'678&+#"-%'9'344NO54'2&':;<=''

Z6;\-5+5]-5+5%

pN'678&+#"-%'9'344NO54'2&':;<=''

Page 32: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' P3'

!+,-#%.,%/+.'0.@,+#8J7)'=()"/(".@'

•! b(8#*.'^<%()C7+*_'

•! !6e;'^6eH_'•! S+#"-%'^6eH_'•! 63'^H6'V+A#)._'•! 0(+?#)''^V18.+#($'67$$G_''On':7($('•! !+,-#1(%.'•! !!0='^2(@.*'7)'e.%(]_'•! .%,j'

N4'678&+#"-%'9'344NO54'2&':;<=''

He='3G4'

•! !'')7%(J7)'•! I.f.+'k27T'()*'(++7?@l'•! 6+#@8.+'@.1()J,@'

•! !$17@%'()'!0='D'

•! e7*.$O*+#A.)'*.@#")F'

•! e7*.$O*+#A.)'(+,-#%.,%/+.G'

N5'678&+#"-%'9'344NO54'2&':;<=''

Page 33: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' PP'

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' N3'

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

•! e()&'("#$.'*.A.$78.+@'*7')7%'L)7?'^1/,-_'(27/%'(+,-#%.,%/+($'*.@#")'

•! !"#$.'1.%-7*@'-(A.')7'.T8$#,#%'"/#*(),.'C7+'(+,-#%.,%/+.'–!e.%(8-7+'#)'qE'–!X.,-)#,($'(,JA#J.@'#)'@,+/1'

•! b.$(%.'%-#@''%7'<.1()J,@'()*'<,78.'#@@/.'

•! e(&'-(A.'%7'".%'(27A.'%-.',7*.'$.A.$'

678&+#"-%'9'344NO54'2&':;<='' NP'

Page 34: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' PW'

!+,-#%.,%/+($'e.%-7*@'

•! !00F'!X!eF'w!S''^<;V_'•! bHE''^VIe_'•! <!KFj'^<#.1.)@_'•! I!ERc6!mb'^E-#$#8@_'•! ;%,G'jG'

•! <7>?(+.'!+,-#%.,%/+.'b.A#.?'()*'!@@.@@1.)%'^<!b!_'-()*277L'

NW'678&+#"-%'9'344NO54'2&':;<=''

!+,-#%.,%/+($'0.@#")'

ZD"?2

:#81/4"847#"

!"#$%&'#&("-+ 12-+(-3,4

!"#$%&'#&("-+ 5/4&$')%)

ZD"?2%

N(B4"P4^%N(B24#?/B42%

R=?)7?E(B%#"27)42%

:#81/4"847#?)%:22"42%

:#81/4"847#?))$%%

K"_7/#"3"B42

:#81/4"847#"%

9?8I)(0

!"#$%&'#&("-+ 12-+(-3,4

!"#$%&'#&("-+ 5/4&$')%)

!"#$%&'#&("-+ !4-+/)%)

6/0B/Q8?B4

N['678&+#"-%'9'344NO54'2&':;<='' <7/+,.B']7C1.#@%.+F':+/,-%.)F'.%'($GF'344[F'344g'

Page 35: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' P['

V%.+(JA.'!+,-#%.,%/+.'b.`).1.)%'

•! X-.+.'(+.')7'`T.*'8+.@,+#8J7)@'C7+'@&@%.1(J,($$&'*.+#A#)"'(+,-#%.,%/+.'C+71'+.o/#+.1.)%@x'%-.+.'(+.'7)$&'"/#*.$#).@G'

•! !+,-#%.,%/+.'*.@#")@',()'2.'+.A#.?.*G'•! !+,-#%.,%/+($'8+7%7%&8.@',()'2.'%-7+7/"-$&'%.@%.*G'

•! V%.+(JA.'+.`).1.)%'#@'%-.'7)$&'C.(@#2$.'(88+7(,-'%7'*.A.$78#)"'(+,-#%.,%/+.@'C7+',718$.T'@&@%.1@G''

Nd'678&+#"-%'9'344NO54'2&':;<=''

V@@/.@'5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'WG! b7$.''[G! 0.@,+#8J7)'dG! e.%-7*@'gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' Ng'

Page 36: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Pd'

K($/.'()*'67@%'

•! K($/.B'%7'%-.'2/@#).@@'^%-.'/@.+@F'%-.',/@%71.+@F'%-.'8/2$#,F'.%,G_'

•! 67@%B'%7'*.@#")F'*.A.$78F'1()/C(,%/+.F'*.8$7&F'1(#)%(#)'

•! <#18$.'@&@%.1F'@%(2$.'(+,-#%.,%/+.F'1()&'@1($$'C.(%/+.@B'–!<%(J@J,($$&'A($/.'($#")@'%7',7@%'

•! =(+".F',718$.TF')7A.$'@&@%.1@'D'

Np'678&+#"-%'9'344NO54'2&':;<=''

K($/.'()*',7@%'

•! !+,-#%.,%/+.'-(@')7'^7+'$#f$._'.T%.+)($$&'A#@#2$.'k,/@%71.+'A($/.l'

•! V%.+(J7)'8$())#)"'^2(,L$7"_'#@'*+#A.)'2&'k,/@%71.+'A($/.l'

•! ,".#N'(+,-#%.,%/+($'(,JA#J.@'(+.')7%'"#A.)'(f.)J7)'

•! i7'IHm0'Q'Ä!ZiV'Q'b.C(,%7+Å'

NN'678&+#"-%'9'344NO54'2&':;<=''

Page 37: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Pg'

K($/.'()*',7@%'

•! 67@%'7C'*.A.$781.)%'#@')7%'#*.)J,($'%7'A($/.'•! X+&#)"'%7'(@@.@@'A($/.'()*',7@%'#)'17).%(+&'%.+1@'#@'-(+*'()*'7>.)'$.(*@'%7'A(#)'(+"/1.)%@'

•! H@.'k87#)%@l''C7+',7@%'()*'k/J$@l'C7+'A($/.'•! H@.'@#18$.'%.,-)#o/.'%7'"#A.'87#)%@'()*'/J$@G'

678&+#"-%'9'344NO54'2&':;<='' 544'

H)#%@'7C'67@%'()*'K($/.'

•! K($/.'#)'07$$(+@'D'–! V),+.(@.@',7)C/@#7)'A($/.'A@G',7@%'–!K.+&'-(+*'%7'*.`).'

•! E+#7+#%&'–!]#"-F'1.*#/1F'$7?'–!e7<67S'

•! b.$(JA.'#)*.T'•! kHJ$@l'

•! e(%,-.@'k87#)%@l'C7+',7@%'

545'678&+#"-%'9'344NO54'2&':;<=''

Page 38: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Pp'

R/%$#).'•! !"#$#%&DD'•! <7>?(+.'(+,-#%.,%/+.D'•! !'@%7+& ' ''•! <.A.)'A#.?87#)%@'7)'('@#)"$.'8+72$.1 ''

•! X-.'*()".+'7C'%.,-)#,($'*.2% ''•! X-.'Y#88.+'17*.$'•! !',$(@-'7C'%?7',/$%/+.@'•! Z7#)"'C7+?(+* ' ' ''

678&+#"-%'9'344NO54'2&':;<='' 54P'

X.,-)#,($'0.2%'

•! 67),.8%'#)%+7*/,.*'2&'S(+*'6/))#)"-(1'•! R>.)'1.)J7).*F'+(+.$&'@%/*#.*'

•! !$$'.T8.+#.),.*'<S'*.A.$78.+@'kC..$l'#%G'

•! 0+("@'$7)"O$#A.*'8+7a.,%@'()*'8+7*/,%@'*7?)'

6/))#)"-(1F'RRE<=!'5NN3' 54W'678&+#"-%'9'344NO54'2&':;<=''

Page 39: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' PN'

X.,-)#,($'0.2%'^<G'e,67)).$$_'

•! V18$.1.)%.*'C.(%/+.@'^A#@#2$.'()*'#)A#@#2$._'r'(@@.%@'r')7)O*.2%'

•! X&8.'5B'/)#)%.)J7)($F')7)O@%+(%."#,x'877+'*.@#")'*.,#@#7)@F'877+',7*#)"'

•! X&8.'3B'#)%.)J7)($'()*'@%+(%."#,B'78J1#Y.'C7+'%-.'8+.@.)%F')7%'C7+'%-.'C/%/+.G'–! 3G!'@-7+%O%.+1B'8(#*'7s'o/#,L$&'^+.C(,%7+#)"@F'.%,G_'

•! =(+".',-/)L@B'.(@&'%7'%+(,L'•! e()&'@1($$'2#%@B',())7%'%+(,L'

–! 3GI'$7)"O%.+1'

e,67)).$$'344g' 54['678&+#"-%'9'344NO54'2&':;<=''

X.,-)#,($'0.2%'^eG''m7?$.+_'

54d'678&+#"-%'9'344NO54'2&':;<=''

E+.@.)%(J7)'(%'!"#$.'K(),7/A.+',7)C.+.),.F'344N'

Page 40: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' W4'

X.,-)#,($'0.2%'^5_'

53'

53'

?%

`+U%

`U%

53'

H%

`+a%

`b%

53' `+W%

`-5% `+,% `+W%

54g'678&+#"-%'9'344NO54'2&':;<=''

X.,-)#,($'0.2%'^3_'

53'

53'

?%

`+U%

`U%

53'

H%

`+a%

`b%

53' `+W%

p' p' `U% p' `W% p' `+5%

`-U% `-c% `-W%

54p'678&+#"-%'9'344NO54'2&':;<=''

Page 41: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' W5'

X.,-)#,($'0.2%'^P_'

53'

53'

?%

d`-%

`U%

53' `+W%

p' p' `U%

`b5%

54N'678&+#"-%'9'344NO54'2&':;<=''

<(1.'0#$.11('

!*(8%(J7)'A.+@/@'!)J,#8(J7)'

678&+#"-%'9'344NO54'2&':;<='' 554'

./0123/41%-555%

Page 42: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' W3'

S-(%}@'#)'&7/+'2(,L$7"D'

Y/2/H)"%S"?47#"%

./DD"B^%?#81/4"847#?)%*"?47#"%

Y/2/H)"%D"*"84%

>"81B/8?)%M"H4%

K#@#2$.' V)A#@#2$.'

E7@#JA.'K($/.'

i."(JA.'K($/.'

678&+#"-%'9'344NO54'2&':;<='' 555'

E$())#)"'

•! m+71'+.o/#+.1.)%@'*.+#A.B''–!!+,-#%.,%/+($'+.o/#+.1.)%@'–!m/),J7)($'+.o/#+.1.)%@'

•! ;@%(2$#@-''–!0.8.)*.),#.@'–!67@%'

•! E$()'#)%.+$.(A#)"B'–!m/),J7)($'#),+.1.)%@'–!!+,-#%.,%/+($'#),+.1.)%@'

678&+#"-%'9'344NO54'2&':;<='' 553'

Page 43: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' WP'

S.(A#)"'C/),J7)($''()*'(+,-#%.,%/+($',-/)L@'

678&+#"-%'9'344NO54'2&':;<='' 55P'

I.).`%@'

•! Z+(*/($'.1.+".),.'7C'(+,-#%.,%/+.'•! K($#*(J7)'7C'(+,-#%.,%/+.'?#%-'(,%/($'C/),J7)($#%&'

•! ;(+$&'.)7/"-'%7'@/887+%'*.A.$781.)%'

•! i7%'a/@%'IHm0'•! i7'Ä!ZiV'.s.,%'

678&+#"-%'9'344NO54'2&':;<='' 55W'

Page 44: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' WW'

R/%$#).'•! !"#$#%&DD'•! <7>?(+.'(+,-#%.,%/+.D'•! !'@%7+& ' ''•! <.A.)'A#.?87#)%@'7)'('@#)"$.'8+72$.1 ''

•! X-.'*()".+'7C'%.,-)#,($'*.2% ''•! X-.'Y#88.+'17*.$'•! !',$(@-'7C'%?7',/$%/+.@'•! Z7#)"'C7+?(+* ' ' ''

678&+#"-%'9'344NO54'2&':;<='' 55['

!"#$#%&'(@'('6/$%/+.'

R. Thomsett 2007!

N7)47#"%I.$#.C@F'i7+1@'

Y?)7"2%1%X%;9'K%>/%$&'

9"1?=/(7#2%1%X%;9':+>6%&'

e()#C.@%7Å'

b#%/($@'\(+"7)'

678&+#"-%'9'344NO54'2&':;<='' 55d'

Page 45: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' W['

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

R. Thomsett 2007!

N7)47#"%I.$#.C@F'i7+1@'

Y?)7"2%1%X%;9'K%>/%$&'

9"1?=/(7#2%1%X%;9':+>6%&'

N7)47#"%I.$#.C@F'i7+1@'

Y?)7"2%1%X%;9'K%>/%$&'

9"1?=/(7#2%1%X%;9':+>6%&'

b#%/($@'\(+"7)'

678&+#"-%'9'344NO54'2&':;<='' 55g'

<%(".@'

•! ;%-)7,.)%+#@1'–!0.)#($'–!0.C.)@.'

•! ;%-)7+.$(JA#@1'–!!,,.8%(),.'–! V)%."+(J7)'

678&+#"-%'9'344NO54'2&':;<='' 55p'

Page 46: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Wd'

=.(+)'C+71'%-.'k7%-.+l',/$%/+.'

•! !"#$#@%@'–! ;T8$7#%'(+,-#%.,%/+.'%7'@,($.'/8'–! ;T8$7#%'(+,-#%.,%/+.'%7'8(+JJ7)'%-.'?7+L'–! ;T8$7#%'(+,-#%.,%/+.'%7',711/)#,(%.'–! j'

•! !+,-#%.,%@'–! ;T8$7#%'#%.+(J7)@'%7'.T8.+#1.)%'–! ;T8$7#%'C/),J7)($#%&'%7'(@@.@@'(+,-#%.,%/+.'–! ;T8$7#%'"+7?#)"'@&@%.1'%7'8+/).'^:V<<_F'L..8'#%'$.()'–! j'

678&+#"-%'9'344NO54'2&':;<='' 55N'

R/%$#).'•! !"#$#%&DD'•! <7>?(+.'(+,-#%.,%/+.D'•! !'@%7+& ' ''•! <.A.)'A#.?87#)%@'7)'('@#)"$.'8+72$.1 ''

•! X-.'*()".+'7C'%.,-)#,($'*.2% ''•! X-.'Y#88.+'17*.$'•! !',$(@-'7C'%?7',/$%/+.@'•! Z7#)"'C7+?(+* ' ' ''

678&+#"-%'9'344NO54'2&':;<='' 534'

Page 47: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Wg'

b.,711.)*(J7)@'•! H)*.+@%()*'&7/+',7)%.T%'

–!]7?'1/,-'(+,-#%.,%/+.'*7'&7/')..*D'

•! 0.`).'(+,-#%.,%/+.B'–!e.()#)"'–!I7/)*(+#.@'–!b.@87)@#2#$#%&'–!X(,J,@'^1.%-7*@_'–!b.8+.@.)%(J7)'

5G! <.1()J,@'

3G! <,78.'PG! =#C.,&,$.'

WG! b7$.''[G! 0.@,+#8J7)'

dG! e.%-7*@'

gG! K($/.'Q',7@%'

678&+#"-%'9'344NO54'2&':;<='' 535'

b.,711.)*(J7)@'•! i7'#A7+&'%7?.+'

–! !+,-#%.,%'#@'7).'7C'%-.'%.(1'^)7%'7).'7C'k%-.1l_'–! 0.`).'()'k(+,-#%.,%/+.'7?).+l'^()($7"'%7'8+7*/,%'7?).+_'–!e(L.'(+,-#%.,%/+.'A#@#2$.F'(%'($$'J1.'

•! I/#$*'.(+$&'()'.A7$/J7)(+&'(+,-#%.,%/+($'8+7%7%&8.'–! 67)@%()%$&'?(%,-'C7+'(+,-#%.,%/+($$&'@#")#`,()%'+.o/#+.1.)%@'–! H@.'#%.+(J7)@'%7'.A7$A.F'+.`).'–! H)*.+@%()*'?-.)'%7'C+..Y.'%-#@'(+,-#%.,%/+.'^(+,-#%.,%/+($'@%(2#$#%&_'

•! S.(A.'C/),J7)($'(@8.,%@'?#%-'(+,-#%.,%/+($'^%.,-)#,($_'(@8.,%@'^kY#88.+l_'

678&+#"-%'9'344NO54'2&':;<='' 533'

Page 48: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' Wp'

b.,711.)*(J7)@'•! 07')7%'a/18'7)'('^$(2.$.*_'@.%'7C'("#$.'8+(,J,.@'

–!H)*.+@%()*'%-.'.@@.),.'7C'("#$#%&'^?-&'()*'-7?_'•! <.$.,%'("#$.'8+(,J,.@'C7+'%-.#+'7?)'A($/.'

–! V)'&7/+',7)%.T%F')7%'#)'".).+($'•! 07')7%'%-+7?'(?(&'($$'%-.'"77*'@%/s'&7/'-(A.'

•! S-.+.'*7'&7/'+.($$&'@%()*'#)'%-#@',7)J)//1D'

!*(8%(J7)'A.+@/@'!)J,#8(J7)'

678&+#"-%'9'344NO54'2&':;<='' 53P'

X-.'X?.$A.'!+,-#%.,%}@'E+(,J,.@'

53W'

Ñ! 0.$#A.+'?7+L'#),+.1.)%($$&'Ñ! 0.`).',$.(+'*.@#")'8+#),#8$.@'Ñ! 6(8%/+.'*.@#")'*.,#@#7)@'Q'+(J7)($.'Ñ! 0.`).',7187).)%@',$.(+$&'

!$$7?'C7+'6-()".'

Ñ! 6+.(%.'k"77*'.)7/"-l'17*.$@'Q'*7,/1.)%@'Ñ! 0.`).'@7$/J7)@'C7+',+7@@O,/h)"',7),.+)@'Ñ! 0.$#A.+'?7+L#)"'.T(18$.@'()*'8+7%7%&8.@'

0.$#A.+&'7A.+'07,/1.)%@'

Ñ! ](A.',/@%71.+@'C7+'($$'*.$#A.+(2$.@'Ñ! <-(+.'#)C7+1(J7)'@#18$&'

E.78$.'7A.+'E+7,.@@.@'

Ñ!S7+L'#)'%-.'%.(1@'Ñ! m7,/@'7)'(+,-#%.,%/+($',7),.+)@'Ñ! !**+.@@'+.($'@%(L.-7$*.+',7),.+)@'

67$$(27+(J7)'7A.+'67)%+(,%@'

678&+#"-%'9'344NO54'2&':;<=''E. Woods 2010!

Page 49: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' WN'

•! 0.$#A.+'?7+L'#),+.1.)%($$&'–! A#@#2$.'8+7"+.@@F'.(+$&'C..*2(,LF'*.$#A.+@'@71.%-#)"'/@.C/$'–! ($$7?'7%-.+@'%7'2.'#)A7$A.*'#)'*.,#@#7)@'

•! 0.`).',$.(+'*.@#")'8+#),#8$.@'–! @1($$'@.%'.(@#$&'/)*.+@%77*'Q'(,,.8%.*'–! ,-77@.'&7/+'2(f$.@'^-#"-'A($/.'*.,#@#7)@_'

•! 6(8%/+.'*.,#@#7)@'()*'+(J7)($.'–! -.$8'8.78$.'%7'/)*.+@%()*'k?-&l')7%'a/@%'k?-(%l'()*'k-7?l'–! -.$8@'('@.$CO7+"()#@#)"'%.(1'%7'1(L.'"77*'*.,#@#7)@'

•! 0.`).',7187).)%@',$.(+$&'–! ($$7?',7)`*.)%'/@.'()*'.T%.)@#7)'–! +.@87)@#2#$#J.@F'#)%.+C(,.@F'#)%.+(,J7)@'

E+(,J,.@B'!$$7?'C7+'6-()".'

53[' 678&+#"-%'9'344NO54'2&':;<=''

E. Woods 2010!

•! ](A.',/@%71.+@'C7+'.A.+&'*.$#A.+(2$.'–!1(L.'@/+.'.A.+&'*.$#A.+(2$.'-(@'('8/+87@.'

–!,+.(%.'.(,-'*.$#A.+(2$.'%7'2.'/@.*'2&'#%@',/@%71.+@'

•! <-(+.'#)C7+1(J7)'/@#)"'@#18$.'%77$@'–!S#L#F'<-(+.E7#)%F'6e<'2(@.*'?.2'@#%.@F'j'–!.)@/+.'.(@&'(,,.@@F',711.)%'()*'/8*(%.'–!(A7#*'@#%/(J7)@'?-.+.'('*.@L%78',$#.)%'#@')..*.*'

E+(,J,.@B'E.78$.'7A.+'E+7,.@@.@''()*'X77$@'

53d' 678&+#"-%'9'344NO54'2&':;<=''

E. Woods 2010!

Page 50: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [4'

•! S7+L'#)'%-.'%.(1@'–! *7)}%'*+78'*7,/1.)%@'()*'?($L'(?(&F'%($L'%7'8.78$.'–! *.A.$78'%-#)"@'a7#)%$&'–! *.A.$781.)%'%.(1@',7)%(#)'('$7%'7C'L)7?$.*".'Q'.T8.+#.),.'

•! m7,/@'7)'(+,-#%.,%/+($',7),.+)@'–! (A7#*'7%-.+'8.78$.}@'(+.(@'7C'+.@87)@#2#$#%&'–! (**+.@@'o/($#%&'8+78.+J.@'()*',+7@@O,/h)"',7),.+)@'–! %-.@.',+7@@O,/h)"'(+.(@'(+.'7>.)')."$.,%.*'7%-.+?#@.'

•! !**+.@@'+.($'@%(L.-7$*.+',7),.+)@'–! ?-#,-'@%(L.-7$*.+',(+.@'(27/%'.(,-'8#.,.'7C'&7/+'?7+LD'–! 8+#7+#J@.'?7+L'

E+(,J,.@B'67$$(27+(J7)'7A.+'67)%+(,%@'

53g' 678&+#"-%'9'344NO54'2&':;<=''

E. Woods 2010!

•! 6+.(%.'k"77*'.)7/"-l'17*.$@'()*'*7,/1.)%@'–! 2/%'1(L.'@/+.'%-.&'(+.'"77*'.)7/"-Å'

•! 0.`).'@7$/J7)@'C7+',+7@@O,/h)"',7),.+)@'–! @.,/+#%&'c'0b'c']!'c'@,($(2#$#%&'c'j'–! +(+.$&'@7$A.*'?.$$'2&'%-.'#)*#A#*/($'%.(1@'–! %&8#,($$&')..*'%7'?7+L'(,+7@@'@&@%.1@'

•! 0.$#A.+'?7+L#)"'.T(18$.@'()*'8+7%7%&8.@'–! #C')7%'+(?',7*.F'@71.%-#)"'.$@.'%-(%'?7+L@'–!1(&'2.'/@.C/$'*#+.,%$&'7+'C7+'+.@.(+,-'8/+87@.@'–! ,7)A.)J7)($',7*.'7+'('@.+A#,.'7+'('@8+.(*@-..%'7+'j'

E+(,J,.@B'K($/.'0.$#A.+&'7A.+'07,/1.)%@'

53p' 678&+#"-%'9'344NO54'2&':;<=''

E. Woods 2010!

Page 51: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [5'

!"#$.'!+,-#%.,%/+.'V)%.+(,J7)'E7#)%@'

678&+#"-%'9'344NO54'2&':;<='' 53N'

e?D/2(B%-5+5%

V)%.+(,J7)'E7#)%@'

QO!V8Y$"#-9'!>+--/-.N'<.%'/8'%-.'".).+($'*#+.,J7)'

SO!(9#"@K#+"7/-.N'<%+/,%/+.'2/@#).@@')..*@'()*'(+,-#%.,%/+($'?7+LF'".h)"'.A.+&7).'7)'27(+*'

ZO!(8"/-9[\9%"+<#-N'I/#$*#)"'C/),J7)($#%&'(@'8(+%'7C'%-.'%.(1'?-.)'A($/(2$.'

]O!T#"U/-.'(#)*+"%N'b.A#.?''*.$#A.+(2$.'%7'(@@.@@'(+,-#%.,%/+($'@%(%.'

678&+#"-%'9'344NO54'2&':;<='' 5P4'

e?D/2(B%-5+5%

Page 52: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [3'

6+#J,($'<L#$$@'i..*.*'

QO! (8"/-9+K>%'$#"=N'I+.(L#)"'(+,-#%.,%/+($'?7+L'#)%7'@1($$F'1.(@/+(2$.'/)#%@'

SO! !"#76;9'L*-%"N'w/()JC&#)"'%-.'(+,-#%.,%/+.'#)'%.+1@'7C',$.(+'2/@#).@@'A($/.'

ZO! I";3/9%;96"+>'K+;U>#.N'%+(,L#)"'(+,-#%.,%/+($',7),.+)@'()*'I($(),#)"'%-.1'?#%-'2/@#).@@'8+#7+#J.@'

]O! ,-9%"8"/&%'+";3/9%;96"%N':)7?#)"'%-.'$(+".+'(+,-#%.,%/+($'8#,%/+.'()*'/@#)"'.(,-'8+7a.,%'%7'(*A(),.'#%'

678&+#"-%'9'344NO54'2&':;<='' 5P5'

e?D/2(B%-5+5%

!+,-#%.,%/+($'m/),J7)'

5G! 6711/)#,(J7)B':..8#)"'($$'@%(L.-7$*.+@'#)C7+1.*'(27/%'%-.'(+,-#%.,%/+.}@'A($/.'()*'@%(%.'

3G! w/($#%&'(f+#2/%.@B'e.(@/+#)"'7+'(@@.@@#)"'%-.'k#$#J.@l'

PG! 0.@#")'8(f.+)@B'R/%$#)#)"'%-.'@%+/,%/+.@'%-(%'"#A.'C7+1'%7'%-.'#18$.1.)%(J7)'?7+L'

WG! ](+*?(+.'()*'@7>?(+.'@%(,LB'6-77@#)"'(88+78+#(%.'%.,-)7$7"#.@'C7+'%-.'8+7a.,%'

678&+#"-%'9'344NO54'2&':;<='' 5P3'

e?D/2(B%-5+5%

Page 53: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [P'

]#h)"'%-.'S($$'^+.A#@#%.*_'

•! S-(%'-(88.).*D'

678&+#"-%'9'344NO54'2&':;<='' 5PP'

S-(%'#@'("#$#%&D'+.A#@#%.*'

%:0/)/4$%/2%41"%?H/)/4$%(*%?%?B%%(#0?B/O?E(B%4(%#"?84%?BD%?D?F4%%4(%81?B0"2%/B%/42%"B=/#(B3"B4%%*?24"#%41?B%41"%#?4"%(*%41"2"%81?B0"2J%

–!S#%-'%-()L@'%7'<%.A.'!*7$8-'

:D?F4?E(B%="#272%:BE8/F?E(B%

678&+#"-%'9'344NO54'2&':;<='' 5PW'

Page 54: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [W'

'!"#$#%&'#@'('8.+@#@%.)%'2.-(A#7/+'7+'(2#$#%&'7C'('@.)@#JA.'.)J%&'%-(%'.T-#2#%@'U.T#2#$#%&'%7'(,,7117*(%.'.T8.,%.*'7+'/).T8.,%.*',-()".@'+(8#*$&F'C7$$7?@'%-.'@-7+%.@%'J1.'@8()F'/@.@'.,7)71#,($F'@#18$.'()*'o/($#%&'#)@%+/1.)%@'#)'('*&)(1#,'.)A#+7)1.)%'()*'(88$#.@'/8*(%.*'8+#7+'L)7?$.*".'()*'.T8.+#.),.'%7'$.(+)'C+71'%-.'#)%.+)($'()*'.T%.+)($'.)A#+7)1.)%G'

678&+#"-%'9'344NO54'2&':;<='' 5P['

w/1.+'Q'].)*.+@7)O<.$$.+@'344p'

07'&7/')..*'()'!+,-#%.,%D'

'kV)'7+*.+'%7'?7+LF'.A7$/J7)(+&'*.@#")')..*@'('C7+,.'%-(%'*+#A.@'#%'%7',7)A.+".G'X-#@'C7+,.',()'7)$&',71.'C+71'8.78$.'Ç'@71.27*&'7)'%-.'%.(1'-(@'%7'-(A.'%-.'*.%.+1#)(J7)'%7'.)@/+.'%-(%'%-.'*.@#")'o/($#%&'@%(&@'-#"-Gl'

e(+J)'m7?$.+'3443'

678&+#"-%'9'344NO54'2&':;<='' 5Pd'

Page 55: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [['

^3%'_"&9'=+9"/`'\'7%&/.-%7'*+&'a6/9%'-+96"+>>@'8%"$%;9bO' 5Pp'678&+#"-%'9'344NO54'2&':;<=''

b'+'9"/6=83'%a6+>%7'#->@'K@'/9&'=#-6=%-9+>'$+/>6"%O'

5PN'678&+#"-%'9'344NO54'2&':;<=''

Page 56: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [d'

b.C.+.),.@'^5_'•! !"#$.'!$$#(),.'^3445_F'Öe()#C.@%7'C7+'!"#$.'<7>?(+.'0.A.$781.)%FÖ'b.%+#.A.*'e(&'5@%F'344g'C+71'

-f8Bcc("#$.1()#C.@%7G7+"c''•! !2+(-(1@@7)F'EGF'!$#'I(2(+F'eGF'Q':+/,-%.)F'EG'^3454_G'!"#$#%&'()*'!+,-#%.,%/+.B'6()'%-.&'67.T#@%D'

\,,,''(#)*+"%B'ScFSHB'QdYSSO'•! !12$.+F'<G'SG'^344d_G'<,($#)"'!"#$.'0.A.$781.)%'K#('!+,-#%.,%/+.'Ü;$.,%+7)#,'K.+@#7)áG'I./>%'

e#6"-+>F'C+71'-f8Bcc???G("#$.a7/+)($G,71c,7)%.)%cA#.?c5Wdc'•! !/"/@J).F'<G'^344W_F'I./>%'!"#J%;9'G+-+.%=%-9F'!**#@7)'S.@$.&'=7)"1()'•! I$(#+F'<GF'S(fF'bGF'Q'6/$$F'XG'^3454_G'b.@87)@#2#$#%&O0+#A.)'!+,-#%.,%/+.G'\,,,''(#)*+"%B'3g^3_F'3dOP3G'•! I+7?)F'<G'^3454_F'Ö!+.'&7/'()'(+,-#%.,%DFÖ'\-$#fB''-f8Bcc???G#)C7oG,71c(+J,$.@c2+7?)O(+.O&7/O(O

@7>?(+.O(+,-#%.,%'•! 6$.1.)%@'%9'+>O'^344[_G'4#;6=%-<-.'(#)*+"%'I";3/9%;96"%B'!**#@7)OS.@$.&G'•! 6$.1.)%@F'EGF'VA.+@F'\GF'=#f$.F'bGF'i7+*F'bGF'Q'<%(s7+*F'\G'^344P_G'4#;6=%-<-.'(#)*+"%'I";3/9%;96"%&'

/-'+-'I./>%'T#">7'^b.87+%'6eHc<;VO344POXiO43P_G'E#f@2/+"-B'<7>?(+.';)"#)..+#)"'V)@J%/%.G'•! m(2.+F'bG'^3454_G'!+,-#%.,%@'(@'<.+A#,.'E+7A#*.+@G'\,,,'(#)*+"%F'3g^3_F'PPOW4G'•! m7?$.+F'eG'^344P_G'S-7')..*@'()'(+,-#%.,%D'\,,,'(#)*+"%B'34^W_F'3OWG'•! m7?$.+F'eG'^344W_'\&'7%&/.-'7%+7g'!%'-f8Bcc1(+J)C7?$.+G,71c(+J,$.@c*.@#")0.(*G-%1$'•! ](Y+(JF'KG'^344pF'\()Gd_'ÖX-.'<-#)&'i.?'!"#$.'!+,-#%.,%FÖ'#)'I./>%'e#6"-+>O'

-f8Bcc???G("#$.a7/+)($G,71c(+J,$.@c,7$/1)@c,7$/1)O(+J,$.@cgPNO%-.O@-#)&O).?O("#$.O(+,-#%.,%'•! \7-)@%7)F'!GF'^3%'I./>%'I";3/9%;9F'-f8Bcc???G("#$.(+,-#%.,%G7+"c'•! :+/,-%.)F'EG'^5NN[_G'^3%']hQ'W/%*'G#7%>'#$'I";3/9%;96"%O'\,,,'(#)*+"%F'53^d_F'W[O[4G'•! :+/,-%.)F'EG'^5NNN_G'X-.'<7>?(+.'!+,-#%.,%F'()*'%-.'<7>?(+.'!+,-#%.,%/+.'X.(1G'V)'EG'07)7-/.'

^;*G_F'(#)*+"%'I";3/9%;96"%'^88G'[d[O[pP_G'I7@%7)B':$/?.+'!,(*.1#,'E/2$#@-.+@G'678&+#"-%'9'344NO54'2&':;<='' 5W5'

b.C.+.),.@'^3_'•! :+/,-%.)F'EG'^e(+,-'3445_G'X-.'X(7'7C'%-.'<7>?(+.'!+,-#%.,%G'^3%'1+<#-+>',7.%G'!%'-f8Bcc

???O54dG#21G,71c*.A.$78.+?7+L@c+(J7)($c$#2+(+&cW4P3G-%1$'•! :+/,-%.)F'EG'^344P_G'^3%'1+<#-+>'V-/_%7'!"#;%&&N'I-'\-9"#76;<#-'^P+*'.*G_G'I7@%7)B'!**#@7)O

S.@$.&G'•! :+/,-%.)F'EG'^344W_G'<,($#)"'*7?)'8+7a.,%@'%7'1..%'%-.'!"#$.'@?..%'@87%G'^3%'1+<#-+>',7.%O'-f8Bcc

???O54dG#21G,71c*.A.$78.+?7+L@c'+(J7)($c$#2+(+&c,7)%.)%cb(J7)($;*".c(/"4Wc[[[pG-%1$'•! :+/,-%.)F'EG'^344p_G'S-(%'*7'@7>?(+.'(+,-#%.,%@'+.($$&'*7g'e#6"-+>'#$'(@&9%=&'i'(#)*+"%F'p5^53_F'

3W5PO3W5dG'•! e(*#@7)F'\G'^3454_G'!"#$.O!+,-#%.,%/+.'V)%.+(,J7)@G'\,,,''(#)*+"%B'3g^3_F'W5OWgG'•! e#$$@F'\G'!G'^5Np[_G'!'E+("1(J,'K#.?'7C'%-.'<&@%.1'!+,-#%.,%G'2#==O'I2GF'3p^g_F'g4pOg5gG'•! i7+*F'bG'=GF'Q'X71(&L7F'\G';G'^344d_G'<7>?(+.'!+,-#%.,%/+.O6.)%+#,'e.%-7*@'()*'!"#$.'

0.A.$781.)%G'\,,,'(#)*+"%F'3P^3_F'WgO[PG'•! E(+@7)@F'bG'^344p_G'I";3/9%;96"%'+-7'I./>%'G%93#7#>#./%&jk#*'9#'?%9'I>#-.O'X/%7+#($'!%'SV6<!'

344pF'K(),7/A.+F'I6G'•! w/1.+F'!GF'Q'].)*.+@7)O<.$$.+@F'IG'^344p_G'!)'.A($/(J7)'7C'%-.'*."+..'7C'("#$#%&'#)'@#T'("#$.'

1.%-7*@'()*'#%@'(88$#,(2#$#%&'C7+'1.%-7*'.)"#)..+#)"O'\-$#"=+<#-'+-7'(#)*+"%' %̂;3-#>#.@F'[4^W_F'3p4O3N[G'

•! b.)*.$$F'!G'^344N_'Ö0.@,.)*#)"'C+71'%-.'!+,-#%.,%à@'VA7+&'X7?.+FÖ'#)'I./>%'SllR'2#-$%"%-;%B'!G'<#*L&F'.%'($GF'.*@G'V;;;'6718/%.+'<7,#.%&F'88G'5p4O5p[G'

•! b7Y()@L#F'iGF'Q'S77*@F';G'^344[_G'(#)*+"%'(@&9%=&'I";3/9%;96"%N'T#"U/-.'T/93'(9+U%3#>7%"&'V&/-.'W/%*8#/-9&'+-7'!%"&8%;<:%&O'!**#@7)OS.@$.&G'

•! S(,-7?@L#F'!GF'Q'S(,-7?@L#F'=G'^S+#%.+_'^344P_G'^3%'G+9"/`'1%>#+7%7O'S(+).+'I+7@G'•! S77*@F';G'^3454_G'I./>%'!"/-;/8>%&'+-7'(#)*+"%'I";3/9%;96"%F'8+.@.)%(J7)'(%'RRE'3454'67)CGF'

e/)#,-F'\()'3dG'

678&+#"-%'9'344NO54'2&':;<='' 5W3'

Page 57: 101207 agility architecture 2up - Philippe Kruchten · 2012. 7. 12. · Architecture Architecture

!"#$#%&'()*'!+,-#%.,%/+.' 0.,.12.+'3454'

678&+#"-%'9'3454'2&':;<='' [g'

S7+$*O,$(@@'.T8.+J@.'S7+L#)"'C7+'&7/'

5WP'678&+#"-%'9'344NO54'2&':;<=''

5WW'678&+#"-%'9'344NO54'2&':;<=''