Download - Itag Jan09 Agile Coclarity
War StoriesExperiences applying Agile in many types of business
ITAGCairnes Business School, NUI Galway, Ireland.
22-Jan-2009
Copyright © 2009 coClarity Ltd.
Overview
• Introduction
• Patterns, PLOPS and OOPSLA
• Scrum
• eXtreme Programming
• GTD and 4HWW
• Conclusion
2
Copyright © 2009 coClarity Ltd.
Introduction
• 20-years SW experience
• Currently: coClarity, Limerick
• Intel, Basis & Tellabs, Shannon
• Digital, Galway
• Motorola, Cork, & USA
• QC-Data, Cork & Canada
3
Copyright © 2009 coClarity Ltd.
Conclusion
• Great ideas cross boundaries between disciplines
• Software has Borrowed from Everywhere
• Agile techniques can be applied in any kind of business
• Customer Focus, Deliver Early & Often, Simplicity (Product & Plans), Self-Organising
4
Patterns, PLOPS and OOPSLA
Copyright © 2009 coClarity Ltd.
Patterns
• Reusable solution to a common problem
• Borrowed from Architecture (Alexander)
• 1987 OOPSLA, Beck & Cunningham
• 1994, Gang of Four
6
Copyright © 2009 coClarity Ltd.
PLOPs
• Pattern Languages of Programs
• Conferences Started 1994
• PLOP-2, paper on Episodes (Cunningham)
7
Copyright © 2009 coClarity Ltd.
OOPSLA 98
• Birds-of-a-feather session
• 100s arrived
• One page handout of the key practices
• Diagram of how they related to each other
8
eXtreme Programming
Copyright © 2009 coClarity Ltd.
Overview
• A light-weight methodology
• For small-to-medium-sized teams
• Vague or rapidly-changing requirements
• Values: communication, feedback, simplicity, courage and respect
10
Copyright © 2009 coClarity Ltd.
Practices
• Quick Plan
• Small Releases
• Metaphor
• Simple Design
• Testing
• Refactoring
11
• Pair Programming
• Collective Ownership
• Continuous Integration
• 40-Hour Week
• On-Site Customers
• Coding Standards
Copyright © 2009 coClarity Ltd.
A-La-Carte
• The books warn against taking an a-la carte approach
• We tailored it out of necessity
• Didn’t really use: Metaphor, On-site Customers
• Modified: Scrum for planning, Collective Ownership within Team
12
Pair Programming
Photo credit flickr.com/people/lucadex
Copyright © 2009 coClarity Ltd.
Pair Programming our Experience
• The most controversial practice
• Some components pair programmed
• Lowest defect rates
• Smaller code sizes
• Small sample set
14
Copyright © 2009 coClarity Ltd.
Pair Lessons Learned
• No Keyboard Wrestling, Large Fonts
• Think about neighbours
• No editor wars
• Set key objectives
• Not as useful during bug-fix phase
• Can be done remotely (gotomeeting)
15
Scrum
Copyright © 2009 coClarity Ltd.
New New Product Development Game
• Article in Harvard Business Review 1986
• Study of companies in Japan & US
• Fuji-Xerox, Canon, Honda, NEC, HP, 3M
17
Copyright © 2009 coClarity Ltd.
Six Characteristics
• Built in instability - broad challenging goal
• Self-organising teams
• Overlapping Development Phases
• Multilearning
• Subtle Control
• Organisational transfer of learning
18
Scrum
• Computer guys borrowed from “New New...”
• Called it Scrum
• I suspect they were never in a real Scrum
Photo credit flickr.com/photos/bohane/
Copyright © 2009 coClarity Ltd.
Scrum Overview
• You can manage any kind of project with Scrum
• I’ve used on tiny and large projects
• Not rocket science or expensive (although an “industry” has popped up)
• It works & viral
20
Copyright © 2009 coClarity Ltd.
“Opportunities”
• All projects have chickens and pigs
• Pigs are happy: no status reports or boring meetings
• Chickens are happy: they know what’s happening without getting in the way
Photo credit flickr.com/photos/7326810@N0821
Copyright © 2009 coClarity Ltd.
The Theory
• Software engineering is complex adaptive system
• Traditional planning - illusion of control
• Empirical process not a “defined process”
• Complexity theory - better to do frequent samples and small adjustments
• Adaptability is better than predicability
22
Copyright © 2009 coClarity Ltd.
The Team
• Should be small (6 max) - if bigger, split
• Ideally co-located (can work distributed)
23
The Project
Diagram by Lakeworks http://commons.wikimedia.org/wiki/Image:Scrum_process.svg
• Punctuated Equilibrium - balance team focus, management visibility, and adaptability
Copyright © 2009 coClarity Ltd.
The Sprint
• Easier for team to focus on something a month away
• Daily short meetings
• At the end - write-up or demo
25
Copyright © 2009 coClarity Ltd.
The Daily Meeting
• KISS - 15 minutes max, same time & place
• 3 questions
• what did you do? (binary - all or nothing)
• what roadblocks?
• what will you do by tomorrow?
• Everyone responsible for their own tasks
26
Loads of Post-its stuck to a big sheet of paper
!"#$% &''"% (!)*+'",'(% -"% &!!.% /!0+% 1-")'% 2332%
45)678&'0% 9% :''(#';% 2332<=% >?% ,!% ,6'"% ,6'% ,')6"-@*'%
781% (!)*+'",'(% !"% 8% "*+&'0% !/% 7'&1-,'1% 4'=A=%
6,,?BCC777=D'//1*,6'0#8"(=!0AC1)0*+C-"('E=6,+#F%
6,,?BCC777=)!",0!#)68!1=)!+C1)0*+=?(/<=% G6'% H",'#% ,'8+%
8#1!% '+?#!$'(% 8% "*+&'0% !/% ,')6"-@*'1% /0!+% IJ?-1!('1K%
LM*""-"A68+;%NOOPQ%,6'%?0')*01!0%,!%'R,0'+'%?#8""-"A=%
5)0*+% 781% -"-,-8##$% ?-#!,'(% &$% !"'% ,'8+% 8"(% -,1% *1'%
681%A0!7"%!0A8"-)8##$%,!%,6'%'E,'",%,68,%-,%"!7%-1%*1'(%&$%
8##% !/% ,6'% ,'8+1% -"% H",'#% 568""!"=% G6'$% &'#-'S'% ,6'% .'$%
0'81!"% /!0% ,6-1% '",6*1-81,-)% '+&08)'% !/% ,6'% ,')6"-@*'% -1%
(!7"%,!%!"'%!/%,6'%)*1,!+-18,-!"1%,6-1%-"-,-8#%,'8+%+8('=%
G6'% (8-#$% 5)0*+% +'',-"A% ,!!.% ?#8)'% 80!*"(% 8% &!80(%
)!S'0'(% 7-,6% $'##!7% ?!1,T-,% "!,'1=% G6'% ,'8+% 0')!0('(%
,81.1%/!0%,6'%2UT6!*0%?'0-!(%!"%?!1,T-,1=%G6-1%+8('%5)0*+%
S'0$%S-1-&#'% -"% ,6'%!0A8"-V8,-!";%8"(%)*0-!1-,$%/0!+%!,6'0%
,'8+1%6'#?'(%,6'%-"-,-8#%1?0'8(%!/%,6'%,')6"-@*'=%W-A*0'%N%
&'#!7% -##*1,08,'1% 8% 18+?#'% +'',-"A% 0')!0(% 7-,6% X!1,TH,1%
8,,8)6'(=%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
!
!
!
!
!
!
!
!"#$%&!%
'!!()*+(#,&(!&%
-.)%+(&(%
!("&$./%0#$&&(/%
112,314%$/,%+'/%
)$+(!&./(!%
56%
7("$7(7%
46,.#8%0#$&&(/%
!"(/'#$.!%
414%
7(!$8/,!"(/'#$.%
3&9(#/(&,:;%
".)%+(&(%
46,414%
#(<$(0%
46,=>=,.?&,@.#%
'!!(!)(/&%
A4B,$)%'"&%
.@,A4B,*..C%
D('7,E,"9'%&(#!%
)$/?&(!%
6#$&(,)((&$/8%
A%7'&(,=+'/
$/&(#@'"(%
=4FG50!<%
H(!$8/%
D(@'"&.#,I4,17'%&.#
!"#$%&&&'
>/&(#@'"(,-.7(%
4')%+(
F((&$/8%
=H:
-.)%+(&(%5=>,314%
B'"C+.8-?##(/&,B'"C+.8% H./(%
D$/8.%J(.#8(='?+%K.9/%
!
!
"#$!%!&'()*+!&,-.(!/'#*0!1++2#3$!4562782!9+,5-:!
%
%
%
G'8+%+'+&'01%800-S'%8,% ,6'%(8-#$%+'',-"A%7-,6% ,6'-0%
"'7%X!1,TH,1% /!0% ,6'% "'E,% 2U%6!*01=%G6'%X!1,TH,1% -"% ,6'-0%
"8+'(%80'8%80'%,6'%,81.1%,68,%7'0'%)!++-,,'(%,!%8,%,6'%#81,%
+'',-"A=% H/% 8% ,81.% -1% ,!!% &-A% /!0% ,6'% "'E,% 2U% 6!*01;% ,6'$%
70-,'% 8% 1*&1',% !/% -,% !"% 8% "'7%X!1,TH,=%Y*0-"A% ,6'%5)0*+%
+'',-"A%,6'%,'8+%+'+&'01%+!S'%)!+?#','(%,81.1%-",!%,6'%
I(!"'K%80'8=%Z!S-"A%,6'%X!1,TH,1%80!*"(%6'#?1%8)6-'S'%8%
1680'(% A0!*?% S-1*8#-18,-!"% !/% ,6'% ,81.1% 8"(% ?0!D'),%
?0!A0'11=%%
G6'$% 68S'% 8#1!% 'E?'0-+'",'(% 7-,6% !,6'0% -""!S8,-S'%
?08),-)'1=%W!0%'E8+?#';%!"'%,'8+%+'+&'0%,!!.%"!,'1%8"(%
,6'"% ?*&#-16'(% ,6'% ,81.1% !"% 8% 7'&T?8A'=% [!7'S'0;% ,6'$%
/!*"(%,6-1%781%8%1-A"-/-)8",%!S'06'8(%/!0%,68,%,'8+=%G6'$%
8#1!%,0-'(%0*""-"A%,6'%+'',-"A%7-,6%'8)6%-"(-S-(*8#%,8.-"A%
"!,'1%-"%8%?'01!"8#%"!,'&!!.;%&*,%,6-1%0'(*)'(%,6'%1680'(%
A0!*?%S-1*8#-V8,-!"%!/%,6'%?0!D'),=%\S'08##%,6'$%/!*"(%,6'%
1680'(%X!1,TH,%&!80(%,6'%+!1,%*1'/*#=%%
G6'% X!1,TH,1% '")!*08A'% ?'!?#'% ,!% ?0'?80'% +!0'%
,6!0!*A6#$% -"%8(S8")'%/!0% ,6'%(8-#$%+'',-"A=%M!",-"*!*1%
?0'?808,-!"% 68??'"1% 81% ('S'#!?'01% 1,-).% "'7% X!1,TH,1% ,!%
,6'-0%XM%1)0''"1%(*0-"A%,6'-0%7!0.%-"%,6'%-",'0-+%&',7''"%
(8-#$%+'',-"A1=%
>",-#% 0')'",#$% 8##% ,'8+1% 7'0'% A'!A08?6-)8##$% )!T
#!)8,'(% 1!% ,6'% 1-+?#'% #!7T,')6% X!1,TH,% ,')6"-@*'% 681%
7!0.'(% S'0$% 7'##=% H",'0'1,-"A#$;% ,6'$% "!7% 68S'% !"'%
(-1,0-&*,'(% ,'8+% 76-)6% 68S'% )!++'")'(% *1-"A% ,6'%
,')6"-@*'% *1-"A% 8% 1680'(% 1?0'8(16'',% 8"(% "',7!0.'(%
+'',-"A%1!/,780'=%H,%-1%,!!%'80#$%,!%0'?!0,%!"%,6'%0'1*#,1%!/%
,6-1% ?0!D'),;% &*,% '80#$% -"(-)8,-!"1% 80'% ?0!+-1-"A;% ,6*1%
-"(-)8,-"A% ,68,% 1!+'% 8A-#'% +',6!(1% +8$% &'% +!0'%
Copyright © 2009 coClarity Ltd.
Consequence of “Loads of post-its”
• Low effort - visualisation of progress
• Preparation is fast - post-its on monitors
• Occasional trips to the “big sheet”
• Not great for distributed teams
• 3M make loads of money
28
Copyright © 2009 coClarity Ltd.
Planning
• More KISS
• No complex Gannt chart
• Plan is a series of sprints
• Dependencies only at a sprint level
• Can use sophisticated estimation techniques
• Shorter sprints at the start and end
29
Planning - Full Project!""#$%!&#'( )*( +$,)-$&.)'+( +'/'#*"0'1)( )2!1( 2!,( &''1(
,.33',)'+(."()*(1*4(56%7-''18(9::;<=(
(
!"#"$"%&'()*%+,-../.0%(
>1)'#( ?2!11*1( 2!/'(0!+'( ,*0'(0*+$@$%!)$*1,( )*( )2'(
"#!11$13("-*%',,(!#,*=(A2'B(.,'()4*("#!11$13(,)!3',8(*1'(
!)( )2'( ,)!-)( *@( '!%2( ,"-$1)( !1+( *1'( !)( )2'( ,)!-)( *@( )2'(
"-*C'%)=((
D#!11$13( $,( E'")( ,$0"#'=( A2'-'( $,( 1*( %*0"#'F( G!1))(
%2!-)( 4$)2( %*0"#'F( $1)'-H+'"'1+'1%$',( &')4''1( )!,E,=(
A2'(*/'-!##("#!1($,(!(,'-$',(*@(,"-$1),(5,''(I$3(9<=(>1)'-1!#(
*-( 'F)'-1!#( 0$#',)*1',( %!1( &'( #$1'+( ."( 4$)2( ?"-$1)(
%*0"#')$*1,8( &.)( )2'( +'"'1+'1%$',( &')4''1( )2'( )!,E,(
4$)2$1()2'(,"-$1)(!-'(1*)(4*-E'+(*.)($1(!+/!1%'=(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
%
%
%
!""!#$%&!'()*+!,'-"'!(.%(!!,/ 012 012 013 014 014 014
!"#$%&'()*+* 56/!7%(! 89,%($': 89,%($'0 89,%($'; 89,%($'< 89,%($'= 89,%($'2 >(6//%.(!?
@$*?1ABC1D-,E/F-9/ :01G :01G
@67=H@67GH@6701D-,E/F-9/ 01G 01G
I96$F 2<1= 2<1=
JK., <;1= <;1=
@$*? :::1= :::1=
@67=@##1I)(#89!#1C,6"$HL!&%!D :G1G :G1G
@67=@##1C!/%.(89!# 31G 31G
@67=@##1M-?! 21G 21G
@67=M-?!7!$189!# 31= 31=
@67=M-?!7!$1M-?! 31G 31G
N-$67 03: G G G G G G 03
,$-./'01.#2.)/
A-7%?6O/1P)+7%# <1G <1G
A-7%?6O/1Q6#6$%-( <=1G <=1G
N,6%(%(. <1G <1G
N-$67 =; G G G G G G =
G G G G G G
:1G
;1G
%
1/0%#%&'()*%+,-../.0%
%
%
%
J!%2()'!0(#'!+(+*',(!("#!1(*.)#$1$13(!##(*@()2'(,"-$1),(
)*( )2'( '1+( *@( )2'( "-*C'%)=( >1$)$!#(0'')$13,( !-'( %*1+.%)'+(
&B( )2'( '13$1''-,( )*( 3')( 2$32( #'/'#( ',)$0!)',( )2!)( %!1( &'(
!##*%!)'+( !1+( +$,)-$&.)'+( !%-*,,( !( 1.0&'-( *@( ,"-$1),=( >1(
*1'( *@( )2'( "-*C'%),( )2'(4$+'H&!1+(K'#"2$( )'%21$L.'(4!,(
.,'+( )*( 3'1'-!)'( )2'( ',)$0!)',( 5M$1,)*1'( !1+( A.-*@@8(
NOPQ<=( K'"'1+'1%$',( &')4''1( )'!0,( !-'( 0!+'( &')4''1(
'1+H*@H,"-$1)(0$#',)*1',=(
>1( )'-0,(*@(+'#$/'-!&#',8( )2'()'!0(#'!+("-*/$+',(!(#$,)(
*@(,"-$1)(0$#',)*1',(!1+()2'(%*1)'1),(*@('!%2(,"-$1)()*()2'(
*/'-!##("-*C'%)(#'!+=(
>1)'#(?2!11*1(+*(1*)(.,'(,"-$1)()$0'(&*F$13(42$%2($,(
"!-)( *@( ,*0'( $0"#'0'1)!)$*1,( *@( ?%-.0=( A2'( 2$32H#'/'#(
)!,E,(!-'(,"#$)()*(+$,)-$&.)'()2'0(!%-*,,(,"-$1),=(A2'B()2'1(
%*1)$1.'()*(+$,)-$&.)'(!1+(,"#$)()!,E,(.1)$#()2'(+.-!)$*1(*@(
'!%2( ,"-$1)( $,( !)( 0*,)( 9:( 4*-E$13( +!B,=( R*1)$13'1%B( $,(
&.$#)($1)*()2'("#!1(!1+('@@*-)(',)$0!)',(!-'(+*1'(&!,'+(*1(
$+'!#( '13$1''-$13('@@*-)=(A2'(%*1)$13'1%B( @!%)*-( $,( ).1'+(
!,()2'("-*C'%)("-*3-',,',=(
(
S)( )2'( ,)!-)( *@( '!%2( ,"-$1)( )2'( )'!0( +'%$+',( 42$%2(
)!,E,(!-'(3*$13()*(&'(+*1'($1()2'(1'F)(,"-$1)=(A2'B(#**E(!)(
)2'( ,)!-)( *@( "-*C'%)( ,"-$1)( "#!1( !1+( #**E( !)( !1B( 1'4(
&!%E#*3( $)'0,( )2!)( 0!B( 2!/'( %*0'( ."( +.-$13( )2'( #!,)(
,"-$1)=( A!,E,( !-'( !##*%!)'+( )*( $1+$/$+.!#,( )*( ,"-'!+( )2'(
#*!+=(A2'( ,"-$1)( "-*)'%),( )2'( )'!0( @-*0( )2'('1/$-*10'1)(,.--*.1+$13($)(@*-(!(0'!1$13@.#(!0*.1)(*@()$0'(
S)()2'('1+(*@()2'(,"-$1)()2'()'!0(#'!+(4-$)',(!(4-!"H."(
-'"*-)8( #$,)$13( )2'( )!,E,( %*0"#')'+( $1%#.+$13( 'F)-!( )!,E,(
)2!)( )2!)( 4'-'( 1*)( "!-)( *@( )2'( *-$3$1!#( ,"-$1)( "#!1=( A2'(
-'"*-)( 4$##( !#,*( %*1)!$1( T#',,*1,( #'!-1'+U( !1+( !(
0'!,.-'0'1)( *@( )2'( !%).!#( '@@*-)( 'F"'1+'+( $1( )2'( ,"-$1)(
/'-,.,( )2'( ',)$0!)'( !)( )2'( ,)!-)H*@H"-*C'%)=( V)2'-( '1+H*@H
,"-$1)(+'#$/'-!&#',(%*.#+($1%#.+'(!(+'0*8(!("-*C'%)(-'/$'4(
*-(!(-'#'!,'=(
(
(
!"#"#"%234(-,,%54667.6%7.%&'()*%
%D-*C'%)( )'!0,( 2!/'( 2!+( 'F%'##'1)( ,.%%',,( +'#$/'-$13(
"-*C'%),( *1( )$0'( !1+(4$)2$1( &.+3')=(S1( '!-#B( "-*C'%)( *@(
Q=Q( 0*1)2,( +.-!)$*1( 4$)2( @*.-( )'!0( 0'0&'-,( +'#$/'-'+(
)2'$-( @$1!#( -'#'!,'(4$)2$1( )2-''( +!B,(*@( )2'(*-$3$1!#( "#!1=(
A2'( >WDXWW( -'#'!,'( N=:( ,*@)4!-'( 4!,( +'#$/'-'+( *1'(
Copyright © 2009 coClarity Ltd.
Planning - Sprint
• At the start check project plan & look at new backlog items
• Allocate to individuals - could use simple spreadsheet
• Efforts based on “ideal days”
• Inside/Outside end-date
• At the end: write-up, demo, release
31
Copyright © 2009 coClarity Ltd.
The Big Chickens
• Start to trust it - less reporting needed
• Can show up at daily meetings - must remember they are chickens
• Can add new items to backlog
• Other possibilities - earned value, wide-band-delphi, comparison to estimates
32
Copyright © 2009 coClarity Ltd.
Scrum Conclusion
• Simple, low-overhead, adaptable any kind/size project
• Everyone gets involved in planning and tracking, team “gells”
• The chickens can actually contribute
• Scrum was more sticky than eXP
33
GTD and 4HWW
Copyright © 2009 coClarity Ltd.
GTD
• Getting Things Done
• A new cult for the info age - Wired
• Levels: Actions, Projects, Areas, Yearly, 5-Year, Life
• Collect, Process, Organise, Review, Do
35
Copyright © 2009 coClarity Ltd.
Actions and Projects
• Action: always something that needs to be done first
• Each action has a context
• Project: requires more than one action
• Don’t need to plan projects in detail but define outcome
• Choose actions based on context
36
Copyright © 2009 coClarity Ltd.
4HWW
• The 4 Hour Workweek
• 80/20 Rule
• Decide two meaningful things to accomplish
• Email twice a day
37
Conclusion
Copyright © 2009 coClarity Ltd.
Common Patterns
• Bottom Up Planning (take care of days...)
• Simple Top Down Plan - it will change
• Adaptable more important than predictable
• Don’t Just React - Make Active Choices
• Feedback Loops
• Encourage self-organisation
39
Copyright © 2009 coClarity Ltd.
Conclusion
• Great ideas cross boundaries between disciplines
• Software has Borrowed from Everywhere
• Agile techniques can be applied in any kind of business
• Customer Focus, Deliver Early & Often, Simplicity (Product & Plans), Self-Organising
40
Copyright © 2009 coClarity Ltd.
Next StepsDecide what aspects you are interested in
Read about them on wikipedia
Read the paper: Fitzgerald, Hartnett “Agile inside Intel” (short.ie/uehtqv)
Try some of the Patterns even on your personal work
Consider trying Scrum with your team
41
coclarity
Thank You
42
SCRUM
Happy to talk about
Web-collaborationEntrepreneurship Ruby on Rails
OO Design
GTDStartups
Copyright © 2009 coClarity Ltd.