Professional Documents
Culture Documents
The Art of Doing Twice The Work in Half The Time (PDFDrive)
The Art of Doing Twice The Work in Half The Time (PDFDrive)
• Then:
• Select a team name
• Select a Product Owner
• Select a Scrum Master
• Create a learning backlog – what do you hope to get out
of the class individually and as a team
Do Doing Done
Chaos
Requirements
Complex Empirical Process (Scrum)
Complicated Lean
Production
Techniques
Scrum Lean
21
© 1993-2014 Jeff Sutherland
State of Agile
Chaos Manifesto 2011, Standish Group International, Inc.
The agile process is the universal remedy for software development project
failure. Software applications developed through the agile process have
three times the success rate of traditional waterfall method and a much
lower percentage of time and cost overruns. The secret is the trial and error
and delivery of the iterative process.
Scrum Production
!
Amsterdam
32/33
Product
Scrum
Backlog
Product Owner
Sprint Backlog
Social Objects Roles Scrum Master
Scrum Board
Make Work Burndown Chart
Visible Points Team
Velocity
Ceremonies
Product
Backlog Sprint Planning Daily Scrum Sprint Review Retrospect-ive
Refinement
• Scrum Artifacts
• Product Backlog
• Sprint Backlog
• Amount of work remaining in Sprint
!
• Useful tools
• Scrum Board
• Burndown Chart
• Show work remaining
• Helps calibrate velocity
Value
• The right product set to excite customers
• At the right time Time
• In the order that maximizes business value
!
• Time: 5 minutes
Teams That Finish Early Accelerate Faster: A Pattern Language for High Performing Scrum Teams!
47th Hawaii International Conference on System Sciences (HICSS) !
62
© 1993-2014 Jeff Sutherland
Run a Lean Scrum
Tools divided P1 Create Value P4 Deliver Fast P7 See the Whole P3 Defer Commitment
into three Management T1 Eliminate Waste T11 Queue theory T22 Contracts T7 Options thinking
dimensions T2 Value streams T12 Cost of delay T21 Measurement T8 Defer commitment
T10 Pull T9 Decisionmaking
66
© 1993-2014 Jeff Sutherland
Systematic Pilot Results
Project effort
100 % Rework
100%
Work
90%
CMMI Process focus
80%
50 % 69 %
70%
9% SCRUM
60%
50%
40% 50 % 35 %
4%
30%
50 %
20% 25 %
10%
10 % 6%
CMMI 1 CMMI 5 CMMI 5
SCRUM
Source: Systematic Software engineering 2006
Examples on causes:
!
• Special competencies
• Disk full
• Setup misunderstood
• COTS failed
!
... bugs turn into features at midnight ...
Here we discuss bugs that arise within the sprint. Preexisting bugs should be prioritized
by the Product Owner and managed in the Product Backlog. Bugs appearing from outside
the sprint such as customer emergencies should be handled by the Illigitimus non
Interrupus pattern.
Velocity is limited because a team spends time dealing with too many bugs.
It is natural to want to keep a list of bugs. There are several forces that encourage this.
• One of the most compelling reasons to put bugs on a bug list is that developers are
busy with other tasks, and shouldn’t be interrupted.
• Managers can see that adding new features increases revenue, but fixing bugs does
not apparently increase revenue. If the team has a fuzzy Definition of Done, work
might be considered Done.
• Bugs that arrive might be considered low priority, and it’s nice to have a place to put
them.
• In short, deferring the fixing of bugs until later is borrowing against your future velocity.
69
© 1993-2014 Jeff Sutherland
Good Agile: Use Definition of Done to
Drive Performance
Daily
Meeting
Sprint R
E
T
R D R
E O O
S
A Remove N P
E
D Impediments
E C
T
Y I
Value V
E
Velocity
D AV E Dave
LIS Lisa
Never keep a
customer waiting
!
BOB Bob
Start early
= Finish early ERI Eric
M AR Maria
Policy D AV E Dave
Limit WIP
L I SA Lisa
(work in process)
!
Current limit = Bob
1 customer
at a time
Eric
Maria
75
© 1993-2014 Jeff Sutherland
Prioritizing Between Projects
Product A A1 A2 A3 = A
Product B B1 B2 B3 = B
Product C C1 C2 C3 = C
A B C
A A A B B B C C C
76
© 1993-2014 Jeff Sutherland
This product rocks!
Swarming
Care about the whole product
Boy are we effective
as a team!
SM T
Problem
Strategy
3.
Inc
rea Typ Typ
4.
1. se
Fi
Re int
ne
ce e Fix
xt
int
ak
e
82
© 1993-2014 Jeff Sutherland
Case Study:
Developing Products >5x Faster
15 12
8
Lisa
Concept Graphics Sound Integr. &
Sam assigns Dev
2d 1m
pres.
6m resources 1w
design design
6m 6m
deploy T
2h 4h 1d 1m 3w 3m 3w
(1m+2m)
Games out of date
⇒ Missed market windows Process
⇒ Demotivated teams 3.5 m value added
time = 14% cycle
⇒ Overhead costs 25 m cycle time efficiency
Estimate
w1 w2 w3 w4 w5 w6 w7 w8
87
© 1993-2014 Jeff Sutherland
© 2014 Scrum Inc.
88
© 1993-2014 Jeff Sutherland
Exercise
• Think of the most difficult problem in your
company.
• Share the problem with the team.
• Team pick the most interesting problem to write
an A3.
• The person with the real problem picked by the
team is the Product Owner
• Develop an A3 in three short sprints (8 minutes
each) that will enable the Product Owner to
return to his/her company and implement a
countermeasure.
Check
Root Cause Analysis
• Why- engineers had different design concepts Follow-up (Actions)
• Why- Team members not communicating •Introduced prioritized automated testing
• Why- Scrum Master not doing good job •Introduced code reviews
• Why- No continuous integration N •Cut deployment time in half
91
© 1993-2014 Jeff Sutherland
As a Scrum Master I need to
Scrum the Scrum
to get an effective Retrospective
Sprint
Half-day
planning nce
First story confere
ready for
Sam sick
test
Story #25
removed
from sprint
New desks Server New build Sprint
installed Big crashed LAN server
Team flow! demo
argument shootout
Velocity
1 2 3 4 5 6 7 8 9 10 11 12 13
Sprint
4/27/09"
6/27/09"
8/27/09"
10/27/09"
12/27/09"
2/27/10"
4/27/10"
4x FTEs = 4x
6/27/10"
16x output with
8/27/10"
10/27/10"
12/27/10"
2/27/11"
4/27/11"
6/27/11"
8/27/11"
10/27/11"
12/27/11"
2/27/12"
4/27/12"
6/27/12"
Raw Scrum Inc. Velocity History
8/27/12"
10/27/12"
12/27/12"
2/27/13"
(not adjusted for fluctuation in team capacity by sprint)
4/27/13"
6/27/13"
8/27/13"
10/27/13"
Results: Scrumming the Scrum Using Happiness Metric
© 2011-2014
1993-2014 Jeff Sutherland
102
© 1993-2014 Jeff Sutherland
As a Scrum Master I need to
Run a Good Daily Meeting
to help the Team improve performance
80
82 Companies
60
40
20
0
0 20 40 60 80
Number of Roles
Communication Saturation and Roles. Organizational Patterns of Agile Software Development by
104
© 1993-2014 Jeff Sutherland
© 2014 Scrum Inc.
All Blacks, New Zealand http://www.youtube.com/watch?v=0C434QFTjok 105
© 1993-2014 Jeff Sutherland
Purpose of Daily Scrum
• Build team focus
• All arms linked - intense collaboration
• Mental attitude - we will crush impediments
• Create team spirit
1.5-3
3-5 5-7
9-11 15-20
108
Source: http://www.qsm.com/process_01.html (491 projects) © 1993-2014 Jeff Sutherland
Scrum of Scrums
• Scrum is an object-oriented
organizational framework!
• The organization will need to be
refactored to maximize flow!
• Small steps regularly!
• Large changes periodically
Communication Paths!
Waterfall Comm Paths! n(n-1)/2 per team!
n(n-1)/2 for 120 people! 5(4)/2 = 10!
120(119)/2 = 7140! 24 teams(10) = 240!
+ a few cross team!
110
© 1993-2013
© 1993-2012Jeff
JeffSutherland© 1993-2014 Jeff Sutherland
Sutherland
As a Scrum Master I need to act on
Scrum Board Warning Signs
in order to improve team performance
Sprint Goal:
To Do: Doing: Done! Get a ready release!
Kaizen
Daily Clean
Code
Burndown
3pts
100
Buffer
90
80
33 70
60
Points
code 50
write a failing
cleanup. 2
test.. 2 pts.pts
40
Deposit Integration
test
DAO
30
3pts
2 pts
20
10
Tapestry ry
Migration code spike
write a failing
8 pts
cleanup. 2 test.. 2 pts.
0
GUI spec
Tool 2 pts pts Miigration 8
pts Days
Sprint Goal:
To Do: Doing: Done! Get a ready release!
Kaizen
Daily Clean
Code
Burndown
3pts
100
90
Buffer 80
33 70
60
Points
code 50
cleanup. 2
pts write a failing DB Design
Deposit
40
test.. 2 pts.
3pts
Integration
DAO
30
test
3pts
2 pts
20
10
GUI spec
Migration 2 pts code write a failing
test.. 2 pts.
0
cleanup. 2
Tool Tapestry ry
spike
pts Miigration 8
8 pts
pts Days
Sprint Goal:
To Do: Doing: Done! Get a ready release!
Kaizen
Daily Clean
Code
Burndown
3pts
100
80
60
Points
code
write a failing cleanup. 2 50
test.. 2 pts.
pts
DB Design
40
Deposit 3pts
Integration
test
DAO
30
3pts
2 pts
20
10
pts Days
Integrate w//
Backend boss
Implement
Miigration 8 pts GUI
write a failing
test.. 2 pts.
8 pts
Login 5 pts
GUI design
Clarify Req
Backend 5 ptsImplement 3 pts
write a failing
User test.. 2 pts.
GUI
Admin 5 pts
Sprint Goal:
To Do: Doing: Done! Get a ready release!
Kaizen
Daily Clean
Code
Burndown
100
90
Buffer 80
33 70
60
Points
code 50
cleanup. 2
write a failing
pts 40
Deposit Integration
DB Design
test.. 2 pts.
3pts
DAO
30
test
3pts
2 pts
20
10
Tapestry ry code
Tool spike
cleanup. 2
Miigration 8
pts
8 pts pts Days
Backend Implement
GUI
Integrate w//
boss
write a failing
test.. 2 pts.
Login 5 ots 8 pts
GUI design
Clarify Req
Backend write a failing 5 ptsImplement 3 pts
User test.. 2 pts.
GUI
5 ots
Admin
Sprint Goal:
To Do: Doing: Done! Get a ready release!
90
60
Points
code 50
cleanup. 2
write a failing
pts 40
Deposit Integration
DB Design
test.. 2 pts.
3pts
DAO
30
test
3pts
2 pts
20
10
GUI spec
Migration 2 pts
code
write a failing
test.. 2 pts.
0
Tool Tapestry ry
spike
cleanup. 2 Miigration 8
8 pts
pts pts Days
Sprint Goal:
To Do: Doing: Done! Get a ready release!
Kaizen
Daily Clean
Code Burndown
100
90
Buffer Buffer Fix Bug
White Paper
Customer
Down!
80
2 pts 5 pts
12 33 Points
13 pts
70
60
Points
50
write a
DB Design
failing test.. 2 code 40
Deposit Integration
test
3pts
DAO
pts.
3pts
cleanup. 2
pts 30
2 pts
20
GUI spec 10
write a 2 pts
Migration code failing test.. 2
Miigration 8 pts.
Tapestry ry
0
cleanup. 2
Tool pts
pts spike
8 pts
Days
Daily
Meeting
Sprint R
E
T
R D R
E O O
S
A Remove N P
E
D Impediments
E C
T
Y I
Value V
E
Velocity
preferences,
As a premium frequent
so I save time flyer I want to request an
upgrade So I can be more
comfortable
A B C
• User Stories slice through all GUI
layers
!
Client
• Customer facing value
delivered every sprint Server Stuff not
2 people at
Effective whiteboard
2 people on
phone er)
sw
n
Communication d -a
Video an
effectiveness n-
recording t i o
es
( Qu
2 people
on email
er)
w
ans
Audio n-
tio
recording ues
o q
( N
Document
Ineffective
132
© 1993-2014 Jeff Sutherland
Irrelevant Information
Spec 1 Same spec
A
+ irrelevant details
B
A
C
B
C
20 hrs
39 hrs
SM
SM
133
© 1993-2014 Jeff Sutherland
Enabling Specification
• User stories notes may be enough for a web site
• For a complex system you need enabling specification
• Short - 3-5 pages for a feature
• Usually a lightweight use case
• Product Owner documents critical information in
collaboration with team
• User experience (design)
• Business logic
• Data structures
• Stories are derived from the enabling specification
• The enabling specification is a living document
• Updated over time
• Global picture of the feature
• Allows traceability of stories back to product design
Daily
Meeting
Sprint R
E
T
R D R
E O O
S
A Remove N P
E
D Impediments
E C
T
Y I
Value V
E
Velocity
2006 2007
Requirements
Coding
Release
Testing?
Q1 Q2 Q3 Q4 Q1 Q2
We are here
2007
Jan Feb
We are here
Test/integr
feature X feature X feature Y Test/integr
feature X feature X feature Y
Test/integr
feature Y
Test/integr Test/integr
feature X feature Y feature Y Test/integr
feature X feature X feature Y
feature X Test/integr
feature Y
feature X Test/integr
feature X feature X Test/integr feature Y Test/integr
feature X feature Y feature Y
Test/integr
feature Y
feature X Test/integr Test/integr Test/integr
feature X feature X Test/integr
feature Y feature Y feature Y
feature X feature Y
feature X Test/integr
feature X feature Y
feature X Test/integr Test/integr
feature X feature Y feature Y
feature X Test/integr
feature X feature Y
PO
SM
SM
Exercise so that Z
As a X
I want Y 2
so that Z
• Estimate stories
As a X
• Pick smallest story and give it 3 story I want Y 3
points so that Z
As a X
I want Y 2
so that Z
As a X
I want Y 5
so that Z
As a X
I want Y 13
155
© 1993-2014 Jeff Sutherland
Case Study Continued
Total:
Total:
180 points 70 points
2 2
2 5
? 3
Sprint 1 30 9
Sprint 2 25 10
Q1 Q2 Q3 Q4 Q1 Q2
We are here
Velocity = 10 points/sprint
Fix impediments
Increase Pressure on team
Ineffective build & test environment
Lack of teamwork, discipline & motivation
Disruptions & context switching
Unrealistic expectations
ROOT CAUSE: Company not focused
Q1 Q2 Q3 Q4 Q1 Q2
20
actual
10
9-10
Q1 Q2 Q3
2007
User admin 3
Find user
13
Administrate
users User admin 2
Edit existing
user
User admin 8
Delete user
Sprint # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
V V
V
2009
Apr
2008
May
2008
June
2008
2010
Q3
2008
Q4
2008 2011
2009
2012
174
© 1993-2014 Jeff Sutherland
Measuring Velocity
Beginning of sprint End of sprint
Product
Backlog Sprint
Sprint
Backlog
Backlog
8 Done! Actual
8 velocity =
8 Estimated 18
5 velocity = Done!
26 5
5 5 Done!
3 5
5 Almost done
5 3
3 Not started
5
5 5
5
3
5
of Scope, Velocity
and Time 200
!
• Vital for identifying 100
and addressing
unreasonable 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
expectations Sprint
Source: Henrik Kniberg
176
Email Address:
Password:
Register
181
© 1993-2014 Jeff Sutherland
Acceptance
Acceptance Criteria
• Acceptance Criteria specifies the details
that the team can then build against:
• Following the example for Password:
• Must be at least 8 characters and no more than 12
• Must contain only alpha-numberics and the period
• Must contain at least one digit
• Must contain at least one character
• Etc. (there may be more criteria)
ajx972dab
! Valid
Stage
Plan
PID
Project
Brief
Project
Mandate
Notification Highlight
Next Stage Report
190
Rev. 2013 - 01 Rev. 2013 – 08 10 September 2013
12
Velocity and Technical Debt
!
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
!
private Executor executor = Executors.newFixedThreadPool(18);
private int CACHE_SIZE = 50;
public Dog()
{
try
{
Class.forName("oracle.jdbc.ThinDriver");
connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead");
!
new Thread().start();
}
} catch (SQLException e) {
return null;
} catch (IllegalArgumentException x) {
throw x;
!
}
}
Simple code:
1.Passes all tests
2.No duplication
3.Readable
4.Minimal
!
Simple is hard!
400
We’ll be
done by
300 sprint 10!
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sprint
Code duplication
Test coverage
Code readability
Vmax Vmax
Vactual
Vactual
Sustainable pace!
velocity
velocity
time time
he
ll
ac e!
g p
eas in
Sustainable pace Incr
Second step
First step (optional)
Slow down Slow down even more
Stop accumulating debt Start repaying debt
Product Sprint 1
Jackass team, sprint 15
Backlog Backlog !
Sprint goal
- Beta-ready release!
!
Sprint backlog
- Deposit (5)
- Migration tool (13)
- Backoffice login (3)
- Backoffice user admin (5)
(Estimated velocity = 26)
!
Schedule
- Sprint period: 2006-11-06 to 2006-11-24
- Sprint demo: 2006-11-24, 13:00, in the cafeteria
- Daily scrum: 9:30 – 9:45, in conference room Jimbo
!
Team
- Jim
- Erica (scrum master)
- Tom (75%)
PO
Scope
As a helpdesk
operator I want
to see who is
logged in
Cost Priority PO
SM
T
DB
DAO
12h design
2h
Integr
T
Test
8h T
4h
Refact. GOAL: Beta-ready release!
End users
v1.0.0 v1.1.0
Timeline
v1.0.1
Bug!
Timeline
Product Owner
Engineering
Practices
Scrum & XP
Team
Daily Scrum
XP
Sprint
backlog
Whole
team
Coding Burndown
Collective chart
ownership TDD standard
Product
backlog
Customer
tests Pair Refactoring Planning Sprint
Product programming game Planning
owner meeting
Metaphor
Small
Scrum Master releases
Sprint
213
© 1993-2014 Jeff Sutherland
Feedback Cycles
Sprint demo
Daily Scrum
Continuous
integration
Unit test
Pair
programming
214
© 1993-2014 Jeff Sutherland
© 2014 Scrum Inc.
215
© 1993-2014 Jeff Sutherland
Scrum Team Exercise