Kevin Thompson How Agile Should Your Projects Be
Kevin Thompson How Agile Should Your Projects Be
Kevin Thompson How Agile Should Your Projects Be
1
7.2
Risk..............................................................................................................................................11
7.3
Value
Delivery
and
ROI
versus
Time ...........................................................................................11
8
Guidance
for
Selecting
Processes .......................................................................................................11
8.1
Common
Processes.....................................................................................................................12
8.2
Selection
Criteria ........................................................................................................................12
8.3
Decision
Matrix
for
Process
Types..............................................................................................13
9
Conclusion ..........................................................................................................................................15
10
Appendix:
Task
Durations
for
the
Plan-‐Driven
and
Agile
Schedules...............................................16
2
1 Background
The
discipline
of
project
management
focuses
on
the
processes,
tools,
and
techniques
used
to
organize
the
efforts
of
a
group
of
people
to
produce
desired
results.
The
PMBOK®
Guide,
from
the
Project
Management
Institute
(PMI),
emphasizes
this
point
in
its
definition:
“Project
Management
is
the
application
of
knowledge,
skills,
tools
and
techniques
to
project
activities
to
meet
project
requirements.”1
Up
to
the
present,
the
PMI
perspective
on
managing
projects
has
focused
primarily
on
classic
plan-‐
driven
strategies.2
Plan-‐driven
strategies
assume
that
the
work
of
a
project
can
be
planned
in
advance
of
its
execution,
and
that
execution
can
be
made
to
follow
the
plan
reasonably
well.
Plan-‐driven
projects
emphasize
gathering
requirements
(scope),
defining
the
project’s
work
items,
dependencies,
sequence,
and
estimated
effort
(the
Work
Breakdown
Structure),
and
executing
the
work
to
create
the
desired
results.
In
the
field
of
software
development,
plan-‐driven
projects
frequently
use
the
Waterfall
model,3
which
divides
the
schedule
into
explicit
phases,
as
in
Figure
1:
System
Requirements
Software
Requirements
Analysis
Program
Design
Coding
Integration
Testing
Operations
3
Figure
1
Phases
of
a
Waterfall
Process
Plan-‐driven
strategies
have
been
effective
for
projects
in
many
industries,
but
attempts
to
apply
these
strategies
to
the
world
of
computer
software
development,
using
the
Waterfall
model,
have
been
less
successful.
For
example,
the
Standish
Group’s
2009
survey
of
50,000
software
projects
revealed
that
32%
of
the
projects
succeeded,
44%
of
projects
qualified
as
“challenged”
(late,
over
budget,
lacking
functionality,
or
having
low
quality),
and
24%
failed.4
Figure
2
Standish
Chaos
Report:
2004
–
2009.
Copyright
©
2010
by
The
Standish
Group
International,
Inc.
The
difficulty
of
managing
software
projects
has
long
been
noted,
and
many
alternative
strategies
have
been
proposed.
A
major
contribution
to
this
effort
occurred
in
2001
with
the
publication
of
the
Agile
Manifesto5,
which
emphasized
collaboration,
results,
and
adaptability
over
process,
documentation,
and
adherence
to
plans.
While
none
of
these
concepts
was
innately
incompatible
with
plan-‐driven
strategies,
taken
together
they
represented
a
significant
shift
in
perspective
regarding
what
matters
more
in
the
management
of
successful
software
projects,
and
what
matters
less.
A
number
of
agile
project-‐management
frameworks
have
arisen,
including
Scrum,
XP
(Extreme
Programming)6,
Commitment-‐Based
Project
Management
(CBPM)7,
Kanban8,9,
and
others.
In
many
cases,
these
strategies
predate
the
Agile
Manifesto
(Scrum,
for
example,
debuted
in
1995),
but
have
4
been
grouped
under
the
umbrella
of
agile
development
because
of
a
common
emphasis
on
the
agile
principles
listed
in
the
Manifesto.
That
agile
projects
can
succeed
is
not
in
dispute.
Less
clear
are
the
answers
to
these
two
questions:
1. Do
agile
strategies
work
better
than
plan-‐driven
strategies,
for
software
projects?
2. If
so,
how
do
we
characterize
projects
for
which
one
strategy
is
more
effective?
This
paper
will
attempt
to
answer
these
questions.
5
3 Statistics
on
Success
Rates
for
Plan-Driven
and
Agile
Projects
Our
first
attempt
to
answer
the
questions
posed
in
this
paper
is
to
review
the
published
statistics
on
success
rates
for
plan-‐driven
and
agile
projects.
The
2009
Standish
Report
strongly
suggests
that
plan-‐
driven
software
projects
have
not
been
very
successful,
but
provides
no
information
about
how
agile
software
projects
compare.
Two
studies
that
address
the
performance
of
agile
versus
plan-‐driven
projects
are
described
below.
6
Long
development
cycle
(e.g.,
6
months)
Short
development
cycle
(e.g.,
2—4
weeks)
Linear
Cyclic
Organizes
work
into
major
phases
Organizes
work
into
small
deliverables
Delivers
value
at
project
completion
Delivers
value
incrementally
over
time
The
differences
are
extensive,
and
at
first
glance,
it
isn’t
clear
which
of
the
agile
characteristics
(if
any)
would
lead
to
improved
performance
for
software
projects.
It
is
also
possible
that
no
one
of
the
characteristics
dominates,
and
that
a
synergistic
combination
is
responsible
for
benefits.
On
further
inspection,
though,
one
can
see
that
most
of
the
characteristics
in
the
table
relate
to
the
time
dimension,
which
suggests
an
avenue
for
exploration.
5 Gedanken
Experiment
Gedanken
Experiment,
or
“thought
experiment”
in
the
German
language,
was
a
favorite
term
of
Albert
Einstein’s.
A
Gedanken
Experiment
is
an
experiment
performed
in
the
mind,
instead
of
the
physical
world,
through
which
we
explore
the
implications
of
our
assumptions
or
theories.
As
the
available
statistics
have
not
provided
clear
guidance
about
the
relative
merits
of
plan-‐driven
and
agile
processes
for
software
projects,
we
will
design
a
Gedanken
Experiment
to
address
these
merits
in
quantitative
terms.
Section
2
suggests
that
the
greatest
challenge
to
successful
software
projects
is
uncertainty,
which
impacts
the
project
in
many
ways.
Thus
our
Gedanken
Experiment
will
assess
the
impact
of
uncertainty
on
two
projects
that
are
designed
to
produce
the
same
deliverables,
using
identical
teams.
One
project
will
follow
a
plan-‐driven
process,
while
the
other
will
follow
an
agile
process.
To
make
the
comparison
as
simple
as
possible,
we
will
focus
on
only
one
of
the
distinguishing
characteristics
of
the
two
processes—the
length
of
the
development
cycle—and
ignore
the
others.
We
will
then
subject
both
projects
to
the
same
set
of
unexpected
problems,
and
see
how
the
impact
of
uncertainty
differs
between
them.
7
Figure
3
Data
Warehouse
and
Reporting
System
1. An
OLTP
(Online
Transaction-‐Processing)
database,
which
stores
the
business-‐application
data
2. A
replicated
source
database,
which
contains
a
copy
of
a
subset
of
the
OLTP
data
3. A
Staging
database,
populated
by
ETL
processes
that
pull
data
from
the
replicated
database,
and
transform
the
data
into
a
table
structure
optimized
for
report
generation
4. A
Report
database,
which
is
a
copy
of
the
Staging
database,
which
is
used
only
by
the
reporting
application
5. A
reporting
application,
which
runs
on
a
dedicated
report
server,
and
which
displays
reports
on
request,
using
data
from
the
Report
database
The
major
pieces
of
work
to
be
done
are
as
follows:
1. Build
the
production
environment
2. Configure
production
servers
with
database
and
reporting
software
3. Create
database
tables
in
the
various
environments,
for
the
various
stages
of
the
data
pipeline
4. Develop
ETL
(Extract-‐Transform-‐Load)
processes
to
transfer
data
between
databases
in
the
pipeline,
and
ultimately
to
the
reporting
database
5. Develop
the
reports
5.2 Uncertainty
The
two
projects
are
subjected
to
the
same
uncertainties,
which
manifest
in
the
following
ways:
• Work
estimates
are
low,
and
all
planned
work
takes
25%
more
time
than
expected.
8
• Report
#2
depends
on
a
table
in
the
OLTP
source
database
that
has
80
million
records.
The
special
processing
required
to
deal
with
this
table
adds
3
weeks
to
the
schedule.
• The
report-‐software
vendor
releases
a
major
upgrade
ten
months
into
the
project.
This
upgrade
is
required
to
fix
critical
bugs,
and
adds
3
weeks
to
the
schedule.
• Several
source
tables
required
for
Report
#3
contain
duplicate
data.
Handling
this
problem
adds
3
weeks
to
the
schedule.
• Production
deployment
problems
add
3
weeks
to
the
schedule.
Figure
4
Microsoft
Project
schedule
for
plan-‐driven
project
The
elapsed
time
estimated
for
the
project
is
slightly
less
than
nine
months,
which
leaves
about
three
months
of
buffer
time
in
the
funded
period.
Figure
5
Microsoft
Project
schedule
for
agile
project
At
the
conclusion
of
each
major
task,
a
new
report
is
available
for
use
in
the
production
environment.
This
means
that
each
major
task
contains
testing
and
deployment
overhead,
including
regression
testing
to
ensure
that
the
creation
of
each
new
report
has
not
broken
any
of
the
previous
reports.
Thus
the
project
as
a
whole
contains
more
time
allocated
to
these
types
of
work
than
does
the
plan-‐driven
project,
which
performs
such
work
once
for
all
reports.
9
We
account
for
the
additional
overhead
of
the
agile
project
by
adding
more
time
for
requirements,
testing,
and
deployment
work,
relative
to
the
plan-‐driven
project.
The
time
increment
(at
23%)
is
somewhat
arbitrary,
and
may
be
an
overestimate,
but
reducing
it
to,
say,
10%
does
not
materially
affect
the
conclusions.
(See
Table
2
in
the
Appendix
for
details.)
The
estimated
schedule
shows
that
Report
#1
requires
more
time
than
the
others,
because
the
work
includes
setting
up
the
production
environment.
The
schedule
as
a
whole
requires
approximately
eleven
months,
which
leaves
one
month
of
buffer
time
in
the
funded
period.
6 Comparison
In
this
section,
we
will
compare
the
two
projects,
in
terms
of
their
expected
and
actual
results.
Three of the reports are delivered within the funded year, and the total schedule expands to 17 months.
10
7.1 The
Financial
Impact
of
Uncertainty
We
see
that
agile
projects
are
no
more
immune
to
delays
from
unexpected
problems
than
are
plan-‐
driven
projects.
However,
the
way
uncertainty
impacts
the
projects
has
implications
for
ROI.
When
uncertainty
is
low,
ROI
is
a
calculation:
A
project
will
take
X
months
to
complete,
cost
$Y,
and
yield
$Z
of
revenue
over
the
following
twelve
months.
When
uncertainty
is
high,
ROI
is
a
gamble:
• The
project
might
not
finish
o It
may
be
late,
and
not
complete
before
the
company
goes
out
of
business
• Funding
might
disappear
o Business
priorities
can
change.
The
company
may
get
out
of
the
tire
business,
and
start
selling
rear-‐view
mirrors.
• Customer
interests
can
change
o Last
year’s
best-‐selling
Pet
Rock
is
this
year’s
gravel
In
high-‐uncertainty
environments,
risk
is
more
about
losing
the
entire
investment
than
it
is
in
having
less
ROI
than
expected.
7.2 Risk
Risk
scales
with
scope
and
project
duration.
Thus
the
plan-‐driven
project’s
all-‐or-‐nothing
approach
to
delivery
risks
the
complete
loss
of
investment,
while
the
agile
project’s
focus
on
delivering
incremental
value
as
early
as
possible
reduces
risk
by
maximizing
the
probability
of
getting
some
ROI.
11
In
practice,
“all
else”
is
seldom
equal,
and
the
incremental
deliveries
of
agile
projects
may
add
significant
overhead
relative
to
a
plan-‐driven
project.
The
overhead
is
worth
paying
for
high-‐uncertainty
projects,
because
the
agile
project
delivers
value
more
reliably.
However,
if
uncertainty
is
low,
plan-‐driven
projects
provide
greater
predictability
and
efficiency,
and
thus
lower
cost.
This
line
of
thinking
suggests
that
we
select
processes
that
best
fit
the
characteristics
of
projects,
and
the
following
sections
provide
guidance
for
how
to
do
so.
12
Cyclic
Granularity:
The
two
values
are
Yes
and
No.
Yes
means
that
a
specific
set
of
requirements
can
be
completed
and
validated
in
short
(2—4
week)
development
cycles.
No
means
that
the
work
cannot
be
divided
into
regular
cycles.
Perhaps
surprisingly,
the
greatest
divide
is
not
between
plan-‐driven
and
agile
processes,
but
between
the
agile
Kanban
process
and
everything
else.
The
reason
for
this
divide
is
that
Kanban
dispenses
with
planning
entirely,
while
the
others
assume
planning
is
necessary,
but
differ
on
how
it
is
conducted.
Plan-‐driven
processes
work
well
when
both
requirements
and
estimation
are
reliable,
which
is
commonly
the
case
for
repetitive
work.
When
requirements,
estimation,
or
both
are
unreliable,
Scrum
and
CBPM
are
most
appropriate,
the
choice
driven
by
whether
the
work
can
be
divided
into
iterations.
The
following
flowchart
illustrates
a
common
decision
process
for
selecting
process
types.
1
Any
means
that
the
line
is
valid
for
any
possible
value
of
the
parameter.
13
Figure
7
Flowchart
for
Process
Selection
14
Finally,
the
Adaptive
Spectrum
diagram
below
provides
a
convenient
summary
of
the
relationship
between
process
types
and
appropriate
projects,
based
on
the
total
uncertainty
(scope
+
effort
estimates)
inherent
in
the
work
of
the
project.
Adaptive
Spectrum
Predictive
Planning
Adaptive
Planning
Reactive
Planning
Plan-‐Driven
Scrum
Kanban
Waterfall
XP
SDLC
CBPM
Figure
8
The
Adaptive
Spectrum
of
process
types
9 Conclusion
A
mathematical
analysis
of
the
effects
of
uncertainty
on
agile
and
plan-‐driven
projects
shows
that
an
agile
process
is
more
likely
to
deliver
value
when
uncertainty
is
high,
than
is
a
plan-‐driven
process.
However,
since
the
short
iterations
of
an
agile
process
impose
more
overhead,
relative
to
a
plan-‐driven
process,
the
latter
is
likely
to
cost
less
and
complete
more
quickly
for
projects
where
uncertainty
is
low.
The
concluding
recommendation
is
to
understand
each
project’s
characteristics,
including
its
level
of
uncertainty,
and
choose
a
process
that
is
well-‐suited
to
its
characteristics.
15
16
Fix
all
bugs
3
5
Retest
3
5
Fix
any
new
bugs
2
5
Retest
2
5
Fix
remaining
bugs
1
2.5
Verify
quality
is
acceptable
1
2.5
Deploy
for
users
Set
up
servers
5
5
Install
software
5
5
Create
databases
5
5
Build
ETL
process
5
7
Perform
"smoke
test"
2
6
Fix
problems
3
7
Go
live
1
5
Total
Duration
191
235
Table
2
Task
Durations
for
the
Plan-‐Driven
and
Agile
schedules
Trademarks
PMBOK®
is
a
registered
trademark
of
the
Project
Management
Institute.
1
A
Guide
to
the
Project
Management
Body
of
Knowledge:
PMBOK®
Guide,
Third
Edition.
Project
Management
Institute,
Inc.
2004.
2
The
PMBOK
does
not
use
the
term
“plan-‐driven,”
but
the
latter
has
become
a
common
term
for
any
process
that
assumes
predictability
over
time
scales
longer
than
a
few
weeks.
3
“Managing
the
Development
of
Large
Software
Systems,”
by
Winston
W.
Royce.
Proceedings
of
the
IEEE
WESCON,
August,
1970.
Royce
did
not
coin
the
term
“Waterfall,”
or
recommend
the
process
to
which
this
term
was
later
applied,
but
did
document
the
process.
4
CHAOS
Summary
2009,
The
Standish
Group
International.
(http://www.standishgroup.com/newsroom/chaos_2009.php).
2009
5
Manifesto
for
Agile
Software
Development.
www.agilemanifesto.org,
2001.
6 nd
Extreme
Programming
Explained:
Embrace
Change
(2
Edition),
by
Kent
Beck
and
Cynthia
Andres.
Addison-‐
Wesley
Professional.
2004.
7
No
Surprises
Project
Management:
A
Proven
Early
Warning
System
for
Staying
on
Track,
by
Timm
Esque.
Ensemble
Management
Consulting.
December
1,
1999.
See
also
the
white
paper
by
Jose
Solera
at
http://www.pmlead.com/.
8
Kanban,
by
David
J.
Anderson.
Blue
Hole
Press.
2010.
9
Kanban
and
Scrum—Making
the
Most
of
Both,
by
Hendrik
Kniberg
and
Mattias
Skarin.
C4Media.
2010.
10
Defining
Success,
by
Scott
W.
Ambler.
Dr.
Dobb’s
Journal.
(http://www.drdobbs.com/architecture-‐and-‐
design/202800777).
Oct
31,
2007.
11
The
Agile
Impact
Report:
Proven
Performance
Metrics
from
the
Agile
Enterprise.
Rally
Software
Development
Corp.
2008.
17