Kniberg The Thinking Tool Called Agile
Kniberg The Thinking Tool Called Agile
XP is a discipline of
software development TDD Ken Schwaber
Scrum is a
methodology (a set of
Scrum
process tools and
XP RUP is a
comprehensive
techniques)
process framework
Ron Jeffries XP is a Scrum is an Agile
RUP
software development
engineering framework
methodology
Jeff Sutherland
Kanban is a signalling
system to trigger action Kanban Agile is a tool, not an
excuse.
Agile
generic process
management philosophy
Lean CMMI
Lean is a system designed to
provide the tools for people to
continually improve their Martin Fowler
Jeffrey Liker work. Agile is a development
approach that primarily
addresses the problems
Henrik Kniberg of rapid change 2
Alistair Cockburn
How do they relate to each other?
Lean Fork
Knife
Agile Toothpick
Scrum
Kanban
XP
Henrik Kniberg 3
Thinking tools
a.k.a. ”mindsets” or ”philosophies”
Tool Agile Systems Thinking Toolkits
”anything used as a means of Lean
a.k.a. ”frameworks”
accomplishing a task or purpose.” Theory of Constraints
- dictionary.com RUP XP
Scrum
Physical tools Kanban
Process tools
a.k.a. ”organizational patterns”
Pair programming
H D C A
G
B
FLOW
Henrik Kniberg 4
Always works!
Sources:
http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish
http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf
http://www.ambysoft.com/surveys/agileFebruary2008.html
Henrik Kniberg 5
Guess the company
What is un-Agile? Brilliant process management is our strategy.
Coding
Henrik Kniberg 6
Brilliant process management is our
Toyota strategy.
Henrik Kniberg 7
Toyota uses
”waterfall” for
software
development
Source:
We visited Toyota in Japan during our ”Lean Study Tour”,
April 2009.
Henrik Kniberg 8
”Managing the development of large
Henrik Kniberg 9
What about the agile methods?
Over 70% of Agile companies use Scrum (or try to...)
Sources:
3rd Annual ”State of Agile Development” Survey June-July 2008
•3061 respondents
•80 countries
Henrik Kniberg 10
Typical pre-scrum organizations
Requirements DB
Design Server
Code Client
Test GUI
Henrik Kniberg 11
Scrum scenario 1
1. Waterfall 2. ”ScrumButt” 3. Scrum
PO
Requirements Requirements
Feature Feature
team 1 team 2
Test Test
Henrik Kniberg 12
Scrum scenario 2 Scrum is a tool, not a goal
Feature Feature
team 1 team 2
That’s ScrumButt!
You’re just hiding
from the problem!
Henrik Kniberg 13
Agile doesn’t require
timeboxed iterations!
Scrum scenario 3
Step 1 Step 2 Step 3
Henrik Kniberg 14
Is ScrumButt bad?
Henrik Kniberg 15
So is Agile always right?
Agile methods aren’t
Are agile values always right? always agile
Gut feel: Usually, yes. Agile methods aren’t the
Fact: Don’t know only way to be agile
Agile is a tool, not a goal
Henrik Kniberg 16
Before criticizing or praising Agile....
Be clear about what you are criticizing or praising
Agile itself?
www.agilemanifesto.org?
One particular consultant/coach/trainer?
Henrik?
One particular process?
Kanban? Scrum?
One particular implementation?
DSDM at company Z?
One particular organization?
Agile Alliance? Scrum Alliance?
Henrik Kniberg 17
Beware of comparing tools There is no such thing as
a good or bad tool
The old
tool
was
better!
18
Henrik Kniberg 18
Tools must be combined.
No single tool is complete.
Henrik Kniberg
•
•
•
Business object model
Business rules
Business use case
•
•
•
Vision
Work order
Workload analysis model
Miyamoto Musashi 19
17th century samurai
The Goal is the goal!
A Tool is just a tool Focus on Why, not
How.
How do we get
Agile?
What is your
goal?
Why?
Henrik Kniberg 20
Are
Are you
you staying
staying in
in business
business so
so you
you
can
can earn
earn money?
money?
A problem is only a
problem if it conflicts
with your goal!
Source:
ishii-san’s slides during our ”Lean Study Tour” to Toyota,
Henrik Kniberg April 2009. 21
Real-life example
What is the problem?
Problem
Crashing demos
A causes B
Why?
(etc) Lack of test No pair
(etc)
(etc) automation programming
Really?
Henrik Kniberg 22
Why?
Not pair programming
Real-life example
What is causing the problem?
No ”proof” that pair
Fear of failure programming works
No experience of
pair programming
No time to
experiment
No slack
Push instead
Root Cause of pull
Lack of trust
Henrik Kniberg 23
Real-life example
The big picture Problem
Understand the problem
Crashing demos before you try to solve it!
A causes
B
Lack of trust
Root Cause
Henrik Kniberg 24
= Addressed by Scrum+XP
= root cause
Another real-life example = problem
Teams not
focused Teams don’t have = mentioned
own PO PO doesn’t have
Teams not own team = implied
business-
oriented
Team not getting Ineffective = vicious cycle
feedback from requirements
customer communication Unclear roles &
responsibilities
Teams grouped
Too much focus
by component
Lack of team on written specs
Lack of discipline
spirit
in teams
Fear of
Bad throughput in
development
Sometimes Agile will
committing solve lots of problems
Not
Problems Cutting quality
measuring
estimating instead of scope Difficult to
velocity
release
Henrik Kniberg 25
The illusion of a ”bad tool”
Template Example 1 Example 2
We failed because the We failed because the
We failed because of X requirements kept customer kept
changing disrupting the team
Possible conclusions:
X is bad! We should
We should resist change We should lock the door
forbid X
We should spend more
We should lessen the
We should time on requirements
need for disruptions by
remove the need for X up-front, so they don’t
doing shorter iterations
need to change
Henrik Kniberg 26
The illusion of a ”good tool”
We succeeded
thanks to Scrum!
Placebo effect
The tendency of any medication or treatment,
Really? even an inert or ineffective one, to exhibit results
simply because the recipient believes that it will work.
Hawthorne effect
A form of reactivity whereby
subjects improve an aspect of their behavior being experimentally measured,
simply in response to the fact that they are being studied,
not in response to any particular experimental manipulation.
“It was suggested that the productivity gain was due to the
motivational effect of the interest being shown in them”
Sources:
http://en.wiktionary.org/wiki/placebo_effect
http://en.wikipedia.org/wiki/Hawthorne_effect
Henrik Kniberg 27
You can fail despite a
great tool
Are there no universally You can succeed despite
Good or Bad tools? a lousy tool
Probably not.
But some are pretty close.
http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf
Henrik Kniberg 28
The Thinking Tool called Agile
Agile is Simple but Hard
Henrik Kniberg 29
Split your organization
Scrum in a nutshell
Split your product
Optimize process
Optimize business value
$$$
Split time
January April
Not
checked out Done! :o) SPRINT GOAL: Bet a-ready release!
checked out
Write
Deposit failing
2d
test Burndown
DAO
Code Integr
p DB
cleanu tes t
2 d 0 .5d design
1d
2d
1d
GUI Write
Im pl . 1d
2d
migration
8d
Backoffice Write
failing
test
Login
Integr .
Impl
GUI
2d
Unplanned it ems Next
1d
with
JBoss
2d
Write
Fix m emor
leak
y
Sales support PW it hdraw
erf t est
Backoffice
failing
test
Write
(JIRA
2d
failing
test
12 5)
3d
Withdraw
3d Write
whitepaper
User admin 4d
GUI
Clarify
design Impl
require-
(CS S ) GUI
ments
1d 2d 6d
Henrik Kniberg 30
Kanban in a nutshell
To do Dev Test Release Done!
5 3 2 3
K
Measure & optimize flow
FLOW
FLOW
Henrik Kniberg 31
You call that
simple? ... and maybe
some on DSDM
Agile is simple Simple is hard
and Crystal and
Lean while you’re
but hard ... and Scrum...
at it.
32
Henrik Kniberg
Agile is empirical
Learn by doing,
watching others doing,
and reflecting.
Many small teams Few large teams
Henrik Kniberg 33
Don’t be dogmatic
Come back
in 3 weeks. Though Shalt
Be Agile
Henrik Kniberg 34
Take-away points
To succeed with integrating agile:
To do Dev Test Release Done!
C A
G
Henrik Kniberg 35