10 ways to screw up with scrum and xp.ppt10 ways to screw up with scrum and xp we don’t have...
TRANSCRIPT
10 ways to screw up with Scrum and XP
Henrik Kniberg - Crisp ABAgile coach, certified scrum trainerJava guy
Cofounder / CTO of Goyada (mobile services)30 developers
Lead architect at Ace Interactive (gaming)20 developers
Chief of development at Tain (gaming)40 developers
[email protected]+46 70 4925284
2
1: ScrumMaster
isn’tis tech guruis too busy to do SM stuffis line manageris not dedicated to teamdoes not know Scrumdoes not have animpediment backlog
Henrik Kniberg 2
SM
10 ways to screw up with Scrum and XP We have work to do. We can’t afford the overhead
of a ScrumMaster!
Impediment backlog• No impediment backlog• Slow workstations• No test environment• No contact with customer• Crowded office
3
2: Definition of Donedon’t have a default DoDdon’t obey itis outside of team’s control
Henrik Kniberg 3
10 ways to screw up with Scrum and XP
See who islogged in
100 concurrentusers
Default Definition of Done• Releasable
• Acceptance tested• release notes written
• No increased technical debt
Default Definition of Done• Unit/Integration tested• Ready for acceptance test• deployed on demo server
But you said you were done!
= I haven’t messed up the codebase
4
3: Velocityisn’t knownisn’t usedis misuseddeath marchesteam asked to promise datesincluding stories that aren’t DoneYo-yo velocity
Henrik Kniberg 4
10 ways to screw up with Scrum and XP What is your velocity?
Huh?
EXAMPLE• Today is Aug 6• Sprint length = 2 weeks• Velocity = 30 - 40
What will be done by X-mas?(10 sprints)
PO
See who islogged in
100 concurrentusers
5
3
8At least
At most
5
4: Retrospectivedoesn’t happendoesn’t result in a list of improvementsimprovements aren’t executedimprovements aren’t followed upunwanted people at the meetingeverybody doesn’t talk
Henrik Kniberg 5
We’re too busy, let’s just start the next sprint
instead
10 ways to screw up with Scrum and XP
Sprint
Vel
ocit
y
4 5 6 7 8 9 10 11 121 2 3 13
6
2008-01-30
Henrik Kniberg6
Sprint retrospectivePart 1: What happened?
Jeff sick
Week 1 Week 2 Week 3
Story #25 removed
from sprint
LAN shootout
First storyready for
test
First storyready for
test
SprintdemoBig
argument Team flow!
10 ways to screw up with Scrum and XP
7
2008-01-30
Henrik Kniberg7
Sprint retrospectivePart 2: What do we do differently next sprint?
10 ways to screw up with Scrum and XP
8
5: Team commitmentTeam is pressuredTeam doesn’t track & learnAlways undercommittingAlways overcommittingVelocity = 0Not allowing slack
Henrik Kniberg
10 ways to screw up with Scrum and XP You have to do more!
EstimatedVelocity
ActualVelocity
40 3030 2830 3330 30
Estimated Actual
40 3040 3040 30
Estimated Actual
40 3050 3060 30
9
6: Technical debtLetting it pile upIgnoring it
Henrik Kniberg
10 ways to screw up with Scrum and XP We don’t have time to write unit tests or
refactor code!
Vmax
Vactual
velo
city
time
Vmax
velo
city
time
VactualSustainable pace!
• Duplicated code• Lack of test coverage• Unreadable code
10
Dealing with technical debt
Henrik Kniberg
10 ways to screw up with Scrum and XP
Vmax
Vactual
velo
city
time
First stepSlow down
Stop accumulating debt
Second step(optional)
Slow down even moreStart repaying debt
Sustainable pace
Definition of Done• .... bla bla ....• No increased technical debt
Definition of Done• .... bla bla ....• Technical debt decreased
11
7: TeamworkFixed rolesPersonal backlogsNot helping each otherImplementing all stories in parallellExternal management
Henrik Kniberg
10 ways to screw up with Scrum and XP Well, at least I finished my stuff!
12
8: Product backlog & product owner
PBL doesn’t existPBL not visibleNever-ending storiesToo big storiesPBL not maintained by POPO surprised at sprint demoPO not prioritizing
Henrik Kniberg
10 ways to screw up with Scrum and XP I don’t have time to maintain the damned
product backlog!
PO
See who islogged in
100 concurrentusers
5
3
8
8
5
3
5
5
5
35
5
8
ProductBacklog
13
V V V
V
2009
Q42008
Q32008
June2008
May2008
2009
2010
2011
2012
Henrik Kniberg
Apr2008
10 ways to screw up with Scrum and XP
14
9: MergophobiaNo ”Done” branchNo branch policiesNot integrating dailyNot taking responsibilityHiding behind branches
Henrik Kniberg
10 ways to screw up with Scrum and XP Merging is a pain, so we do it as seldom as possible
Sorry, but
You can’t get an agile company without agile engineering practices
XP, anyone?
15
Version control – multiple teams
TrunkPolicy:
Only stuff that is DONE!
m1
Timeline
Sprint 1
m2
Release!
Team A workPolicy:
Unit tested
a1 a2 a3
Team B workPolicy:
Unit tested
b1 b2 b3
Day 1 Day 2 Day 3 Day 4 Day 5
a4
Day 6
Henrik Kniberg
Guidelines• Trunk always releasable• Broken trunk = stop the line• Merge from trunk every day• Copy to trunk each time
a story is completed
16
10: Sprint backlogdoesn’t existtoo far from the teamtoo complicatednot used during Daily Scrumformat not chosen by teamnot owned by the teamno burndownnot updated dailywarning signs ignored
Henrik Kniberg
10 ways to screw up with Scrum and XP Oh you mean that thing that the ScrumMaster
fiddles with sometimes?
17
10 ways to screw up with Scrum and XP
Henrik Kniberg 17
Burndown
Warning signs
18
11: Worrying too much about the problems
Henrik Kniberg
10 ways to screw up with Scrum and XP We should stop this agile stuff, since we’re
obviously doing it all wrong
Problems are normalNever stop looking for problemsDon’t panic, don’t despairVisible problem = killable problem
= opportunity for improvement!Prioritize and fix problems - one by one!Look back once in a whileand pat yourselves on the back
19Henrik Kniberg 19
Sail with pleasure!The rocks make it more exciting :o)