Professional Documents
Culture Documents
David J. Anderson
Lean & Agile Sweden 2008
Agile was a
rebellion
against the
undesirable
industry
trends of
the 1990s
Everything
traditional
was bundled
together and
demonized
And the demon was nicknamed
“waterfall”
Almost all
previous
software
engineering
literature
was labeled
as non-agile
Despite a lot of work on iterative
and incremental development
And a focus on people
from as early as 1969
with Jerry Weinberg’s
Psychology of Computer
Programming
We can sum up the first two
statements of the Agile
Manifesto with…
“Perfect is the enemy of good
enough”
In the early 1990s it was assumed
we had to pursue perfection in
order to improve software project
success
The Capability Maturity Model was
published in 1991
It told us that project success came
from process maturity
First we should seek to be
repeatable and predictable (level 2)
And
mature to
a defined
process
(level 3)
At which point we should be able to
deliver projects successfully
The predominant paradigm
of the day assumed that in
order to be more
repeatable and predictable
we needed more accurate
estimates
That we
needed to
seek
perfection
upfront
That we
needed to
eliminate
ambiguity
and
uncertainty
And so we created more and more
methods of analysis
Each additional approach (and its
diagram) designed to fill some of
the gap to perfect information
These diagrams
meant that in
pursuit of
perfection we
created more
and more
documents prior
to writing code
And in those days they primarily
were just documents, often created
with tools like Visio
Tools that turn diagrams in to code,
or map different levels of detail
together (domain specific
languages) did not become widely
available until this decade
Although there were early
pioneers like Together (that
kept UML class diagrams in
sync with written code)
available as early as 1997
As an industry
we had far
exceeded the
law of
diminishing
returns on
analysis before
the agile
revolution
started
So in essence the pursuit of
repeatability and the assumption
that to achieve it required the
pursuit of perfection is what
stimulated the Agile Manifesto
value
Queue Task W
Q Task Wait
Time
Because the transaction costs
(in this case, the setup and
cleanup) can be amortized over
a greater number of value items
(in this case, painted sections of
fence)
But there are also coordination
costs in knowledge work problems
Communication
Queue Task W
Q Task Wait
Time
And in knowledge work problems, coordination
costs grow non-linearly with batch size
Communication
Queue Task W
Q Task Wait
Time
The prevailing paradigm in
Western management was that
overheads (transaction and
coordination costs) were
inevitable and efficiency was
achieved through economies of
scale (i.e. large batch sizes)
However, the Japanese took a
different approach to efficiency
If the
transaction and
coordination
costs were too
high to allow a
batch of work to
be completed
economically…
Then they
simply had
to find a way
to reduce
the
overheads
in order to
make small
batches
efficient
Why?
What was so important about
small batch sizes?
Quite simply, there is a direct relationship
between batch size and cycle time
Device Management Ike II Cumulative Flow
240
220
200
180
160
Features
140
120 Lead Time
100
80
60
40
20
0
WIP
ar
ar
eb
eb
eb
ar
ar
ar
M
-M
-M
-M
-F
-F
-F
2-
9-
17
16
30
10
24
23
Time
Inventory Started Designed Coded Complete
Smaller
batches
allow the
right
product to
be brought
to market
at the right
time
Releasing more value for the
business
Batch size problems from an
economies of scale paradigm
are what cause US auto
manufacturers to deeply
discount when they over
produce the wrong model or
specification
Small batches avoid waste and
make a business more
responsive to the market
By focusing on cost and
efficiency throughout the 20th
Century
Western
businesses
lost sight of
value and
overall
effectiveness
The paradigm that blows away
this myth of efficiency through
economies of scale is
Lean
And it is Lean that completes
the reforms that the Agile
movement started
Which might lead us to extend
the agile values to include…
We value…
Email: dja@agilemanagement.net