agile project management - coclarity
DESCRIPTION
This is a talk on experiences using agile techniques to manage projects in a number of businesses.For more details see http://www.coclarity.com/blog/2009/11/speaking-at-leroei-event-on-agile-management/TRANSCRIPT
“War Stories”Experiences applying Agile in many types of business
Enterprise Ireland,Dublin, IRELAND.
23-Nov-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 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 TheorySoftware 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 - SprintAt 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 ProjectsAction: 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
Ideas X Execution Derek Sivers [7]
• Awful -1
• Weak 1
• So-So 5
• Good 10
• Great 15
• Brilliant 20
• None $1
• Weak $1,000
• So-So $10,000
• Good $100,000
• Great $1,000,000
• Brilliant $10,000,000
€13.71
$500k
$200M
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
42
coclarity
Thank You
43
SCRUM
Happy to talk about
Web-collaboration
Entrepreneurship Ruby on RailsOO Design
GTDStartups
Copyright © 2009 coClarity Ltd.
Goshido