Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Henrik Kniberg - Scrum and XP beyond the trenches
1. Scrum & XP
Beyond the trenches
Agile Israel
2011-04-11
Henrik Kniberg
Agile/Lean coach
www.crisp.se
Board of
directors
henrik.kniberg@crisp.se
070 4925284
2. Once upon a weekend Nov 10-12, 2006
Henrik Kniberg 2
3. Date: Monday, Nov 13, 2006!
from: Henrik!
to: scrumdevelopment@yahoogroups.com!
subject: Scrum & XP from the trenches - how we do Scrum!
I've written a paper (well more like a small book) describing lessons
learnt after a year of Scrum experimentation with a group of 40
developers. Includes details on how we approached multi-team sprint
planning, testing, retrospectives, etc.
Here's the final draft:
http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf
Any feedback is welcome!
Those of you who are authors, any ideas on what I should do with a
paper like this? Haven't done this kind of stuff before...
/Henrik"
Henrik Kniberg 3
7. Discovery #1
Other people were discovering the same solutions, independently
When I read your book I
recognized all the problems and
solutions, we went through the
same journey!
Henrik Kniberg 7
8. Discovery #2
Most people don’t read disclaimers
”this is the paper to read if ”We’ve have adopted
you want to avoid learning it as our tech bible
Agile by trial and error” here at my company”
Henrik Kniberg 8
9. Discovery #3
Copy/paste worked better than I had thought!
”I've started using Scrum in my
company and it's been a success
thanks to your valuable information”
We spend a lot of time
arguing over Focus
But not perfectly... Factor
Who cares about Focus
Factor? Why do you waste
time on that?
We learned
about it from
Oops...
your book...
Well, we stopped doing
that right after the
Henrik Kniberg book came out 9
10. Purpose of this presentation
! Many of the solutions in ”Scrum and XP from the Trenches” turned
out to be pretty much universally applicable
! However, I’ve learned a lot since 2006 and there some things that I
would have done differently if I could go back in time.
! Purpose of this presentation is to share these insights with you.
Henrik Kniberg 10
11. Let’s compare notes.
What about you?
When you see this signal No! Yes!
Give me feedback!
= We do this
= We don’t do this
Henrik Kniberg 11
13. 3 items 5 items 10 items 20 items
6 orderings 120 orderings 3,628,800 orderings 2,432,902,010,000,000,000 orderings
orem ipsum dolor orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
13
ctetur
Henrik Kniberg orem ipsum dolor
sit amet, co nse
ctetur
14. Top 10
Product backlog or bug database
Length 100+
9 × 10157 orderings
orem ipsum dolor
sit amet, co nse
ctetur
(number of atoms in the universe: 4x1080) orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse orem ipsum dolor
ctetur sit amet, co nse
orem ipsum dolor
sit amet, co nse ctetur
orem ipsum dolor
ctetur sit amet, co nse orem ipsum dolor
ctetur sit amet, co nse
orem ipsum dolor orem ipsum dolor
sit amet, co nse ctetur sit amet, co nse
ctetur ctetur
orem ipsum dolor
sit amet, co nse
orem ipsum dolor
ctetur sit amet, co nse orem ipsum dolor
ctetur
orem ipsum dolor sit amet, co nse
sit amet, co nse ctetur
orem ipsum dolor
ctetur
sit amet, co nse
ctetur
orem ipsum dolor
orem ipsum dolor orem ipsum dolor
sit amet, co nse
sit amet, co nse sit amet, co nse
cteturipsum dolor
orem ctetur ctetur
sit amet, co nse
orem ipsum dolor
ctetur
sit amet, co nse
orem ipsum dolor orem ipsum dolor
ctetur sit amet, co nse sit amet, co nse
orem ipsum dolor ctetur
ctetur
sit amet, co nse
orem ipsum ipsum dolor
orem dolor
ctetur
sit amet, co nse co nse
sit amet, orem ipsum dolor
ctetur ctetur sit amet, co nse
orem ipsum dolor
ctetur
orem ipsum dolorsit amet, co nse
sit amet, co nsectetur
orem ipsum dolor
ctetur sit amet, co nse orem ipsum dolor
cteturdolor sit amet, co nse
orem ipsum
ctetur
sit amet, co nse orem ipsum dolor
ctetur
orem ipsum dolor sit amet, co nse
sit amet, co nse dolor
orem ipsum ctetur
ctetur amet, co nse
orem ipsum dolor sit orem ipsum dolor
sit amet, co nse ctetur sit amet, co nse
ctetur orem ipsum dolor ctetur
orem ipsum dolor sit amet, co nse orem
ipsum
orem ipsum dolor sit
orem ipsum dolor amet dolo
sit amet, co nse ctetur
orem ipsum dolor ct , co ns r
ctetur orem ipsum dolorsit amet, co nseetur
sit amet, co nse e
sit amet, co nse ipsum dolor
orem r
sitlo
m do amet, co nse ctetur
ctetur
orem ipsum dolor sit amet, co nse ipsu nse
ctetur dolororem et, co ctetur
orem ipsum dolor
sit amet, ipsum dolor
co nse ipsum nse sit am orem ipsum dolor
Recommendation:
ctetur
orem ipsum dolor
orem
ctetur amet, co nse orem ipsum dolor orem t, co sit amet, co nse
r
sit amet, co nse e ctetu sit amet, co nse
sit sit amet, co nse sit am ctetur orem ipsum dolor
ctetur r ctetur
orem ipsum dolor amet, co nse
ctetur
orem ipsum dolor ctetur ctetu sit
Limit all queues
sit amet, co nse sit amet, co nse ctetur
orem ipsum dolor orem ipsum dolor
orem ipsum dolo orem ipsum dolor
ctetur ctetur r
sit amet, co nse sit amet, co nse
sit orem ipsum dolor
amet, co nse sit amet, ipsum dolor
orem co nse orem ipsum dolor
ctetur ctetur sit amet, co nse
ctetur ctetur amet, co nse
sit
orem ipsum dolor orem orem sit amet, co nse
ipsum ctetur ip cteturipsum
orem ipsum dolor ipsum dolor m do
sit amorem dolor su ctetur
sit amet, co nse et co sit am lo orem ipsum dolor dolor
orem
sit amet, et nse, amet,eco dolorco ns r
et
ct co orem ipsum nse, ipsum dolor
ns
ctetur orem ipsum dolor lor ur sit r ctetur orem e sit amet, co nse co nse
sit amet,
orem ipsum dolor
ipsu m do
ctetur dolo
m sit amet, co nse amet, co nse ctetur ctetur
ctetur
orem ipsum dolor
sit amet, co nse sit amet, co nse orem t, co norem ipsu ctetur
se sit sit amet, co nse
e orem t, co nseorem ipsum dolor
e ipsum dolor
orem ipsum dolor ipsum dolor
orem
ctetur ctetur sit am sit am
ctetur ctetur
orem ipsum dolor r sit amet, co nse amet, co nse sit amet, co nse amet, co nsesit
ctetu ctetu
r sit ctetur
sit amet, co nse ctetur ctetur ctetur
orem ipsum dolor ipsum dolor
orem
What about you?
ctetur
orem ipsum dolor
sit amet, co nse amet, co nse
sit
sit amet, co nse orem ipsum dolor
ctetur ctetur dolor
ctetur orem sit amet, co nse
orem ipsum dolor ipsum orem ip ipsum nse
sit am dolor sum do
lor orem orem ipsum ctetur
et, co sit amet orem ipsum dolor ipsum dolor dolor orem ipsum dolor t,dolor orem
orem ipsum co
sit amet, co nse e
orem ipsum dolor ctetur ctetur , sit amet, co nse amet, co nse co nse
nse co nse sit amet, sit am
sit amet, co nsectetur sit sit amet, coctetuco nse
sit amet, r
nse
orem ipsum dolor ctetur
ctetur sit amet, co nse orem ipsum dolor ipsum dolor ctetur ctetur ctetur ctetur
orem orem ipsum dolor ipsum dolor ipsum dolor
orem
sit amet, ipsum amet, co nse
orem co nse orem ipsum amet, orem
No! Yes!
ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolorsitdolor dolorsitdolor co nse amet, co nse amet, co nse
orem ipsum sit sit
ctetur amet, co nse
sit ctetur amet, ctetur
sit amet, co nse sit ipsum dolor
orem
amet, co nse sit amet, co nse amet, co nse co nse
sit sit ctetur ctetur
ctetur
ctetur orem ipsum dolor nse ctetur ctetur ctetur ctetur
orem ipsum dolor ipsum dolor orem ipsum dolor
sit amet, co
orem ipsum dolor orem ipsum dolor ipsum dolor
orem
sit amet, co nse orem
ctetur
sit amet, co nse sit amet, co nse amet, co nse
sit amet, ipsum dolor co nse
sit orem co nse amet, sit amet, co nse
ctetur orem ipsum dolor ipsum dolor
orem sit
ctetur ctetur ctetur
ctetur amet, ctetur ctetur
orem ipsum dolor sit amet, co nse amet, co nse co nse ipsum dolor
sit sit orem orem ipsum dolor
orem ipsum dolor
orem ipsum dolor nse ctetur ctetur ctetur sit amet, co nse
sit amet, co amet, co nse
sit
orem ipsum dolor ipsum dolor orem ipsum dolor amet, co nse
sit
sit amet, co nse ctetur orem ctetur
ctetur orem ipsum dolor sit amet, co nse amet, co nse sit amet, co nse ctetur orem ipsum dolor
ctetur sit
sit amet, ipsum dolor
orem co nse ctetur orem ipsum dolor
ctetur orem ipsum dolor sit amet, co nse
ctetur ipsum dolor
orem
ctetur
ctetur amet, co nse
orem ipsum dolor
sit sit amet, co nse
sit amet, co nse sit amet, co nse ipsum dolor
orem
ctetur ctetur
ctetur orem ipsum dolor ctetur sit amet, co nse
sit amet, co nse
ctetur sit amet, co nse ctetur
orem ipsum dolor orem ipsum dolor ctetur
14
sit amet, co nse sit amet, co nse orem ipsum dolor
Henrik Kniberg
ctetur ctetur sit amet, co nse
orem ipsum dolor ctetur
orem ipsum dolor amet, co nse
sit
sit amet, co nse ctetur
orem ipsum dolor
ctetur orem ipsum dolor
sit amet, co nse
sit amet, co nse
ctetur
ctetur
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor
sit amet, co nse
ctetur
18. As a <stakeholder>
User story I want <what>
so that <why>
Independent
As a buyer 8 Negotiable
I want to save my shopping cart Valuable
so that I can continue shopping later Estimable
Small
Testable
How to demo: Acronym courtesy of Bill Wake – www.xp123.com
1) Enter store
2) Put a book in shopping cart
3) Press ”save cart”
4) Leave store, and enter it again C
5) Check that the book is in my cart
A B C
Recommendation:
GUI
Express backlog items
as User Stories Client
What about you?
Server
Henrik Kniberg No! Yes! 18
DB schema
22. Stories vs tasks
Break into tasks
(normally during sprint planning meeting)
Split stories
Write failing Create DB Write form
test schema validation
User admin
5
Register new user Write Do
Do GUI
server-side integration
design
logic test
User admin
3
Find user
13
Administrate
users User admin
2
Edit existing user
User admin
8
Delete user
Henrik Kniberg 22
23. Recommendation:
Estimation alternatives Don’t estimate tasks
What about you?
Stories Tasks
No! Yes!
1. Don’t estimate stories. Just count them. 1. Skip tasks
2. Don’t estimate tasks. Just count them.
2. Estimate stories in t-shirt size
S M
L
S M L
Hours?
Days? 3. Estimate tasks in days
Weeks? 1d
3. Estimate stories in story points 0.5d 2d
1sp 2sp 5sp 4. Estimate tasks in hours
4h 12h
8h
4. Estimate stories in ideal man-days
1d 3d
6d
Henrik Kniberg 23
26. Focus Factor MAY be useful when starting
a new project with a new team...
As a X
Facts:
I want Y 8sp Hmmm.... we think THIS
so that Z
story is about 6 ideal man-
• Team size = 6 people days
As a X
• Sprint length = 2 weeks I want Y 2sp
so that Z
Estimate: As a X
I want Y 3sp
• 2 sp = 6 imd so that Z
• Focus factor: 50% As a X
I want Y 5sp
so that Z
Calculation:
• Calendar days in sprint: 10 days
• Man-days in sprint: 60 md
• Ideal man-days in sprint: 60 md x 50% = 30 imd
• Velocity: 30 imd / 3 = 10 sp / sprint
Henrik Kniberg 26
27. ”simple” velocity calculations are simpler
and usually no less accurate
Likely future velocity:
V= 8 V= 7 V= 9 7-9 per sprint
1 2 2 1 1 2
Velocity
2 3 1 3 1 2 2 1
Sprint Sprint Sprint April
1 2 3 May
June
Recommendation:
Skip focus factor
Q3?
What about you?
No! Yes!
Henrik Kniberg 27
29. The sprint commitment
Common misconceptions
! ”We promise to achieve this goal”
! ”We promise to deliver all stories included in the sprint backlog”
Team’s commitment to the product owner:
”We promise that...”
! ... we believe we can reach the sprint goal.
! ... we will do everything in our power to reach the sprint goal,
and will let you know immediately if we no longer believe we can
reach it.
! ... we believe that we can complete all stories included in the
sprint backlog.
! ... we will demonstrate releasable code at the end of the sprint
! ... if we fall behind schedule we will talk to you and, if necessary,
remove the lowest priority stories first.
! ... if we get ahead of schedule, we will add stories to the sprint
from the product backlog, in priority order.
! ... we will display our progress and status on a daily basis.
! ... every story that we do deliver is Done.
11-04-11
Henrik Kniberg 29
30. No Slack = Long queues
Car in Car out
100% Road utilization
=> Terrible throughput
CPU: 100%
Http://.... CPU: 100% <html>....
CPU: 100%
Request in Response out
100% Server utilization
=> Terrible throughput
As a ...
I want ... ! !
So that ...
! !
Feature request ! ! Feature
in 100% Team utilization out
=> Terrible throughput
Henrik Kniberg 30
31. Product Sprint
backlog backlog
• Team: We’re pretty sure we
can finish all of these.
• PO: These are definitely the
highest priority items, their
priorities won’t change
during the sprint.
SLACK
• Team: We might finish some of
these, but probably not all
• PO: Some of these might be
reprioritized during the sprint
• Team: We’re pretty sure we
won’t finish any of these
Recommendation:
Don’t fill the sprint
What about you?
No! Yes31
31 !
Henrik Kniberg
33. Product backlog Sprint
What happens What happens
upstream? downstream?
PO
Henrik Kniberg 33
34. Product User acceptance test
Goal backlog Development & production
Policies &
working
agreements
Analysis
Technical debt
Support
Henrik Kniberg 34
35. Team 1 Team 2 Team 3
Recommendation:
Visualize more than
just the sprint
Henrik Kniberg 35
What about you?
No! Yes!
35
36. Next! Develop! Release!
1 3 2
Concept! Playable! Features! Polish! Done!
Team
Pac man Bingo
Solitaire
1
Zork Mine
Team Pong sweeper
2
Dugout
Team Donkey Duck
Kong hunt
3
Team 1 Team 2 Team 3
36
38. Sprints aren’t the only way to be agile
Sprints
week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Sprint 1 Sprint 2
Plan & commit Review
Retrospective
(release?)
Separate cadences week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Retrospectives (4w)
Planning cadence (2w)
Release cadence (1w)
Event-driven week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8
Retrospectives (4w)
Planning (on demand)
Release (on demand)
38
39. A simple kanban system Migrate invoicing
To Do! Doing!
Ready for Done!!
production!
!
reports to the new
format
5 3 5
orem ipsum dolor sit orem ipsum dolor sit orem ipsum dolor sit orem ipsum dolor sit
amet, co nse ctetur amet, co nse ctetur amet, co nse ctetur amet, co nse ctetur
orem ipsum dolor sit orem ipsum dolor sit
amet, co nse ctetur orem ipsum dolo
r sit amet, co nse ctetur
amet, co nse ctet
ur
orem ipsum dolor sit
amet, co nse ctetur
orem ipsum dolor sit orem ipsum dolor sit
amet, co nse ctetur amet, co nse ctetur
or sit
orem ipsum dol
tur
amet, co nse cte
orem ipsum dolo
r sit
amet, co nse ctet dolor sit
ur orem ipsum ctetur
nse
amet, co
Recommendation:
If sprints don’t work,
use Kanban
What about you?
No! Yes!
39
Henrik Kniberg
41. Velocity = features per week (”bandwidth”)
Simple & useful metrics Cycle time = weeks per feature (”ping”)
DONE! Velocity
To Do! .....! ....! ....! this week! Week Items done
orem ipsum dolor sit
orem ipsum dolor sit
amet, co nse ctetur
week 5 6 items
orem ipsum dolor sit orem ipsum dolor sit amet, co nse ctetur
orem ipsum dolor sit
amet, co nse ctetur
amet, co nse ctetur amet, co nse ctetur
orem ipsum dolor sit
week 6 4 items
amet, co nse ctetur
orem ipsum dolor sit
orem ipsum dolo
r sit
amet, co nse ctet
ur
orem ipsum dolor sit
amet, co nse ctetur
week 7 8 items
orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor sit
amet, co nse ctetur
or sit
orem ipsum dolor sit
amet, co nse ctetur
amet, co nse ctetur
week 8
orem ipsum dol orem ipsum dol
tur or sit
amet, co nse cte orem ipsum dolor sit amet, co nse cte
tur
orem ipsum dolor sit amet, co nse ctetur
orem ipsum dolor sit amet, co nse ctetur orem ipsum dol
or sit
amet, co nse ctetur amet, co nse cte
tur
orem ipsum dolor sit
amet, co nse ctetur
orem ipsum dolor sit sit
m dolor
orem ipsum dolor sit amet, co nse ctetur orem ipsu e ctetur
ns
amet, co nse ctetur amet, co
Avg cycle time: 10 days
Cycle time
Item Cycle time
Start
Jan 5
14d ! Done
Jan 19
#22 14 Days #22 Migrate
#23 6 Days
invoicing reports to
Henrik Kniberg
#24 10 Days
the new format ! 41
42. 14
12 Recommendation:
We’re 90% certain
10 that next feature
Use simple metrics for
Lead planning &
time will be done
8 within 7 days improvement
(days) 7
6 What about you?
5
4
3 No! Yes!
2
0
Cycle
'me
per
feature
Elapsed
Days
Henrik Kniberg 42
44. Manager
Top 3 Top 3 Top 3
impediments impediments impediments
orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur
orem ipsum dolor orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse sit amet, co nse
ctetur ctetur ctetur
SM SM SM
Henrik Kniberg 44
45. Dev
manager
PO
Top 3
Ops
impediments
manager
orem ipsum dolor
SM
sit amet, co nse
PO ctetur
orem ipsum dolor
SM
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
SM
SM
SM SM
SM
SM
SM SM
Henrik Kniberg 45
46. Top 3
project
impediments
Top 3
project
impediments
Recommendation:
Visualize top 3
impediments
What about you?
No! Yes! 46
Henrik Kniberg
48. Happiness Index
Lack of
motivation
.....
.....
”How does it feel to come to work?”
(scale 1-5)
1 2 3 4 5
Henrik Kniberg 48
49. Managers &
Product owner developers talk about
moves closer motivation
to developers .......
Reorganization in
management team
Bug Bash tuesdays
.......
Henrik Kniberg 49
50. Result Happiness Index
It is better to use imprecise
measures of what is wanted,
rather than precise measures of
what is not
Russel Ackoff
Henrik Kniberg 50
51. • Name (optional)
• Satisfaction level (1-5)
• Last updated (date)
• What feels best right now?
• What feels worst right now?
• What would improve your satisfaction level?
Happiness metric –
the Wave of the Future
Recommendation:
Continuously
measure employee
Jeff Sutherland, co-creator of Scrum
http://scrum.jeffsutherland.com/2010/11/happiness-metric-wave-of-future.html satisfaction
http://scrum.jeffsutherland.com/2010/12/scrum-inc-sprint-2-retrospective.html
What about you?
Henrik Kniberg 51
No! Yes!
53. Parallellitis (n)
The mistaken belief that you get more done by doing
everything at once.
Register is done! Let’s
publish to trunk!
To do! Doing! Done!
No wait, there is
partially complete
orem ipsum dolor
Register
sit amet, co nse
ctetur
orem ipsum dolor
Deposit code!
sit amet, co nse
orem ipsum dolor
ctetur
sit amet, co nse
ctetur
Lemee finish!
Deposit
orem ipsum dolor orem ipsum dolor
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor
orem ipsum dolor sit amet, co nse
sit amet, co nse ctetur
ctetur
orem ipsum dolor
Withdraw
sit amet, co nse
ctetur orem ipsum dolor
sit amet, co nse
orem ctetur dolor
ipsum
sit amet, co nse
ctetur
To do! Doing! Done! OK Deposit is done!
orem ipsum dolor
Now we can publish
Register
sit amet, co nse
Register & Deposit
ctetur
orem ipsum dolor
sit amet, co nse
No, wait! There is
orem ipsum dolor
ctetur
sit amet, co nse
ctetur
to trunk!
partially complete Deposit orem ipsum dolor orem ipsum dolor
Withdraw code.
sit amet, co nse sit amet, co nse
ctetur ctetur
orem ipsum dolor
sit amet, co nse orem ipsum dolor
ctetur sit amet, co nse
Lemee finish!
ctetur
Withdraw
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
ctetur
orem ipsum dolor
sit amet, co nse
Henrik Kniberg 53
ctetur
54. The king & servant pattern
• Anyone working on the top priority story is King. To do! Doing! Done!
• Everyone else on the team is a Servant.
• You want to be King. Try to find ways to help Register orem ipsum dolor
sit amet, co nse orem ipsum dolor orem ipsum dolor
ctetur
out with the top priority story.
sit amet, co nse sit amet, co nse
ctetur ctetur
• Whenever a King needs help, Servants Deposit orem ipsum dolor
orem ipsum dolor
sit amet, co nse
immediately offer their services. sit amet, co nse ctetur
ctetur
• A Servant may not disrupt a King. orem ipsum dolor
• A Servant may never check in unreleasable code Withdraw
sit amet, co nse
ctetur orem ipsum dolor
sit amet, co nse
orem ctetur dolor
on the team branch. A King may check in
ipsum
sit amet, co nse
ctetur
whatever he pleases (as long as he doesn’t
violate a branch policy of course).
• As soon as the top priority story is Done, Recommendation:
anyone working on the next story is now King. Use the ”King & servant”
pattern to enable
continuous delivery
What about you?
No! Yes!
Henrik Kniberg 54
55. ”Version Control for Multiple Agile Teams”
http://www.infoq.com/articles/agile-version-control
Flow down R2.4.2
continuously
Release
codelines R2.3 R2.4
No flow up
Mainline
Flow down
continuously
Work Team A Team B
codelines
Team A
Flow up at spike
stable
points
Henrik Kniberg 55
57. Definition of Done
To do! Doing! Done! Releasable
• Merged to trunk
Register
• Acceptance tested
Deposit • No increased technical debt
Withdraw
= I haven’t messed up
Transfer the codebase
Simple design
1. Passes all tests
2. No duplication
3. Readable
4. Minimal
Kent Beck
Henrik Kniberg 57
60. Step 1: Decide what needs to be tested
! Change skin
! Security alert
! Transaction history
! Block account
! Add new user
! Sort query results
! Deposit cash
! Validate transfer
Henrik Kniberg 60
61. Step 2: Classify each test
Pay every
Pay once
time
Manual Test Automation
Test case Risk
Cost Cost
Change skin low 0.5 hrs 20 sp
Security alert high 1 hrs 13 sp
Transaction
history med 3 hrs 1 sp
Block account high 5 hrs 0.5 sp
Add new user low 0.5 hrs 3 sp
Sort query
med 2 hrs 8 sp
results
Deposit cash high 1.5 hrs 1 sp
Validate high 3 hrs 5 sp
transfer
Henrik Kniberg 61
62. Step 3: Sort the list
Automate first!
Manual Test Automation
Test case Risk
Cost Cost
Block
account high 5 hrs 0.5 sp
Validate
transfer high 3 hrs 5 sp
Transaction
history med 3 hrs 1 sp
Sort query
results med 2 hrs 8 sp
Deposit cash high 1.5 hrs 1 sp
Security
alert high 1 hr 13 sp Automate last
Add new (or never)!
user low 0.5 hrs 3 sp
Change skin low 0.5 hrs 20 sp
Henrik Kniberg 62
63. Step 4: Allocate capacity
Product backlog
PO 80% Sprint backlog
Test automation backlog
20%
Henrik Kniberg 63
64. Top 10
Customer
requirements
Top 5 Internal
improvements
Recommendation:
Test automation
backlog
What about you?
No! Yes!
64
Henrik Kniberg
66. Have you learned anything new today
that you will try to apply?
No! Yes!
Henrik Kniberg 66
67. Perfection is a direction, not a place
! Find a balance: appreciate your current
solution, while looking for a better one.
! Just because today’s solution seems better,
doesn’t mean yesterday’s solution was bad.
! Copy/pasting solutions from other contexts
is OK, as long as you also adapt.
! Keep experimenting &
make sure the learning never stops.
Henrik Kniberg 67