“i come to bury agile, not to praise it”
DESCRIPTION
“I Come to Bury Agile, Not to Praise It”. Effective Software Development in the 21st Century. Alistair Cockburn http://Alistair.Cockburn.us. I come to bury Agile, not to praise it; The evil methods do lives after them, The good is oft interred with their bones, So let it be with Agile. - PowerPoint PPT PresentationTRANSCRIPT
©Alistair Cockburn 2009
““I Come to Bury I Come to Bury Agile, Agile, Not to Praise It”Not to Praise It”
Effective Software Development in the 21st Century
Alistair Cockburnhttp://Alistair.Cockburn.us
©Alistair Cockburn 2009
2
I come to bury Agile, not to praise it;The evil methods do lives after them,
The good is oft interred with their bones, So let it be with Agile.
The noble Waterfall hath told you Agile was ambitious: If it were so, it was a grievous fault,
And grievously hath Agile answered it.
Here, under leave of Waterfall, Lean and the rest - For Lean is an honourable method, So are they all; all honourable methods,Come I to speak in Agile's funeral.
(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)
©Alistair Cockburn 2009
3
Agile was my friend, faithful and just to me:But Waterfall says he was ambitious; And Waterfall is an honourable method.
Agile hath brought many projects home to Rome,Whose Payoff did the corporate coffers fill.Did this in Agile seem ambitious?
When the programmers have cried, Agile hath wept. Ambition should be made of sterner stuff.Yet Waterfall says he was ambitious, And Waterfall is an honorable method.
You all did see that in 2003 We twice presented him a kingly crown,Which he did twice refuse. Was this ambition? Yet Waterfall says he was ambitious, And sure he is an honorable method.
(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)
©Alistair Cockburn 2009
4
I speak not to disprove what Waterfall spoke,
But here I am to speak what I do know.
You all did love Agile once, not without cause. What cause withholds you then to mourn for it?
(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)
©Alistair Cockburn 2009
5
Bear with me.
My heart is in the coffin there with Agile,
And I must pause till it come back to me.
(based on Shakespeare’s Julius Caesar, Act 3. Scene 2)
©Alistair Cockburn 2009
6
Developing software
consists of People
making Ideas concrete
in an Economic context
©Alistair Cockburn 2009
7
inventing, deciding, communicating, Solving a problem they don't yet understand
which keeps changing
Creating a solution they don't yet understand which keeps changing
Expressing ideas in languages they don’t understand which keep changing
To an interpreter unforgiving of error
Making decisions with limited resources and every choice has economic consequences
People
©Alistair Cockburn 2009
8
Software development is aCooperative Game
©Alistair Cockburn 2009
9
Infinite Organization SurvivalCareer Management
Competitive Cooperative
Open-ended Jazz music
Finitegoal-directed
King-of-the-hillwrestling
Poker
Tennis
Chess
Product Line Management
Rock-ClimbingTheater
JournalismExplorationSoftware
Development
Swamp game
IT Systems
Games have positions, moves, strategies
©Alistair Cockburn 2009
10
Two conflicting subgoals:
Deliver this softwareSet up for the next game
Three moves:InventDecideCommunicate
and the situations (almost) never repeat!
©Alistair Cockburn 2009
11
C6 C20 C40 C100
D6 D20 D40 D100
E6 E20 E40 E100
L6 L20 L40 L100
Project Classification Scale:
Number of people coordinated
1 - 6 - 20 - 40 - 100
Comfort
Essentialmoneys
Life
Discretionarymoneys
Criticality
X
X X
XX
Adapt to your situation
©Alistair Cockburn 2009
12
Richness of communication channel
Com
mun
icat
ion
Eff
ectiv
enes
s
2 people on phone
2 peopleon chat
(Questio
n-and-Answer)
2 people atwhiteboard
(Courtesy of Thoughtworks, inc.)
Face-to-face is the most effective - Try Video
Paper(No Question-Answer)
Videotape
©Alistair Cockburn 2009
13
Kim Pat12 people:= $100,000 / yr penalty
12 people = $300,000 / yr penaltyKim
Pat
Distance is expensive
Kim Pat Programming in pairs
“Managing the Flow of Technology” “Distance Matters”
©Alistair Cockburn 2009
14
People issues determine a project’s speed
Can they easily detect something needs attention?
(Good at Looking Around)
Will they care enough to do something about it?
(Pride-in-work; Amicability)
Can they effectively pass along the information?
(Proximity; face-to-face)
©Alistair Cockburn 2009
15
Software development is a Craft
©Alistair Cockburn 2009
16
Craft teaches us to pay attention to our skills and to the medium
Major crafts:
1 Deciding what to build
2 Managing (people and projects)
3 Modeling
4 Designing the external view
5 Large-scale design (architecting)
6 Fine-scale design (programming)
7 Validating the work
©Alistair Cockburn 2009
17
People learn skills in 3 stages
Shu: Learn a technique
Ha: Collect techniques
Ri: Invent / blend techniques
©Alistair Cockburn 2009
18
Use Lean Processes
©Alistair Cockburn 2009
19
I wish they’d decide what style they want!
Users &Sponsors
Testers
BusinessAnalysts
I wish they’d decide what
functions they want!
A decisionI wish they’d decide
on the UI designalready!
I wish they’d think a bit more carefully
before coding!
Programmers
Every line of
code is a decision
UI Designers
Software development looks like manufacturing if the unit of inventory is the
unvalidated decision!
©Alistair Cockburn 2009
20
Software development has correction loops
Detaileddecisions about
externalappearance
Decisions about function
and style
Detailed decisionsabout function
and data
Decisions about program
structure
Decisions about systemcorrectness
Users &Sponsors
UI Designers
ProgrammersTesters
BusinessAnalysts
©Alistair Cockburn 2009
21
From Lean Manufacturing: aim for continuous flow
time
Testers100 lines of codeshow up for testing
# of design decisions
Decisions being validated or broken
How long this line of code / screen / use case / decisionsits in the testing queue
Decisions arriving
©Alistair Cockburn 2009
22
From Lean Manufacturing: watch your queues
Enough Users & Sponsors
Many Business Analysts
Not enough Programmers Some
Testers
Users & Sponsors
absent
UI Designers
Business Analysts
some Programmers
Database designers
Tester
Enough Users & Sponsors
UI Designer
A few Business Analysts
Lots of Programmers
Single, solitary Databasedesigner
©Alistair Cockburn 2009
23
Design is Knowledge Acquisition
©Alistair Cockburn 2009
24
Delivers nearly no knowledge(or risk reduction)
Knowledge comes atthe “moment of truth”: final integration.
Waterfall is a late-learning strategy
time
cost
Growth of knowledge with big-bang integration
©Alistair Cockburn 2009
25
Development sequence indifferent (with respectto knowledge)
Delivers knowledge
(risk reduction)
We can pay to learn early in the project
time
cost
Growth of knowledge with early, continuous integration
©Alistair Cockburn 2009
26
Develop for business value once risks are down
time
Knowledge growing(risk reduction)
cost
Growth of business value
Business value growing
©Alistair Cockburn 2009
27
Trim to deliver on-time (or early)
Delay to get moreor better
Trim the Tail: Choose to deliver by value or date
©Alistair Cockburn 2009
28
In the 21st century, software engineering will use craft, cooperative game & lean principles
Craft developing skills in a mediumshu - ha - ri
Cooperative game of invention and communication teamwork, communication, strategies
Lean processes (“unvalidated decisions = inventory”) small queues, cross-trained people, varyied processes
Design as knowledge acquisition early integrationpay to learn trim the tail
©Alistair Cockburn 2009
29
http://Alistair.Cockburn.us