do we do next? or: colour is your backlog?
TRANSCRIPT
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 1
What do we do next?Or:What colour is your backlog?Or: What colour is your backlog?
Philippe KruchtenScrum Gathering
Orlando, March 16‐20, 20091
Philippe Kruchten, Ph.D., P.Eng., CSDP
Professor of Software EngineeringDepartment of Electrical and Computer Engineering
University of British ColumbiaVancouver, BC [email protected]+1 604 827‐5654
Founder and president
Kruchten Engineering Services LtdVancouver, BC [email protected]+1 604 418‐2006
2
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 2
Outline
• Context• Software development
• Estimation• BuffersSoftware development
• Backlog• Time‐box• Features &Value • Work & Cost• Invisible features
Buffers• Defects• Technical debt• Constraints• Time and depreciation• Tool support
• Dependencies• Release and budget• Dollars, or points & utils
pp• Colours• Research agenda• Recommendations
3
No more planning
4
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 3
Context
• Research on modern software development practicespractices
• Software project management• “Evidence‐based software‐engineering”• Old stuff in new clothes ?• Integrationg
• Financial support from Scrum Alliance
5
A Conceptual Model of Software Development
4 key concepts 3 key attributes4 key concepts, 3 key attributes
Intent
Product Time
Q litWork
People
Quality
Risk
6
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 4
Intent, Work, People, Product
7
Adding Time, Quality & Risk
Intent Product
TimeQualityRisk
TimeQualityRisk
TimeQualityRisk
Work
TimeQualityRisk
People
8
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 5
9
Project: Tension between Intent and Product
Intent
δV
Product
δT10
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 6
Iterations
11
Backlog
12
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 7
The BacklogThe Backlog
Feature RequestsFeature Requests
Priority
13
Sprint PlanningSprint Planning
Feature RequestsFeature Requests
PrioritySprint Backlog
14
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 8
Painting your backlog
Features Architecture infrastructure
Defects Technical DebtDebt
15
Time‐box
16
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 9
Time‐box
Staff
Work (≈Cost)
Time17
Time‐box
better than
Brooks, Mythical Man‐Month,1975Boehm, COCOMO, 1981
18
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 10
Time‐boxes: Releases
Release 1 R2 R3 R4
Time
19
Time‐boxes: Iterations (sprints)
Release N
ITERATION 1 It. 2 It. 3
Time
20
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 11
Features
Intent21
Features
22
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 12
Features
Rn
23
Work and Cost
• How much work is associated to a feature?
• Work is strongly related to cost in software development (a human‐intensive activity)
• Overall budget is roughly the size of the time‐box(es)
• Time box budget• Time‐box = budget
• Features must fit in budget
• Q: How do we select what goes in the box?
24
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 13
Features
?
Rn
25
Features & Value
46
4
6
52
7 3
12
53
5
26
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 14
Maximizing value
4
2
3
3
4
4
5
5
6
7
12
Highest value firstIgnore time
27
Value = Cost?
46 $8$5
4
6
52
7 3
12
5
$15
$5$2
$5
$5
$5
$1
35
$5$5
28
Only for simplest cases
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 15
Value /= Cost12 $15
7 $2Cost
6 $8
7 $2
4 $5
5 $5
4 $55 $1
3 $5
3 $5
2 $5Value
Value and Cost
• Value: to the business (the users, the customers the public etc )customers, the public, etc.)
• Cost: to design, develop, manufacture, deploy, maintain
• Simple system, stable architecture, many small features:– Statistically value aligns to cost
• Large, complex, novel systems ?
30
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 16
Time
Intent
Time
Product
Value
TimeQualityRisk
TimeQualityRisk
Time
Work
Time
People
TimeQualityRisk
TimeQualityRisk
Cost31
Efficiency vs. Effectiveness
Efficiency Effectiveness
• relationship between the output in terms of goods, services or other results and the resources used to produce them
• relationship between the intended impact and the actual impact of an activity
32
Cost Value
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 17
Earned‐Value System ?
33
“Spent‐Cost” System
34
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 18
Invisible Features
1212
?
$10$15
$5
35
Invisible Features
• Architecture
• Infrastructure
• Common elements
• Libraries
• Reuse
36
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 19
Features
37
Dependencies
38
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 20
Release Planning
• Time‐box = budget
• Fill the time‐box with a combination of visible and invisible features
• … while maximizing value
• Product manager: maximize value (green stuff)stuff)
• Project manager: maximize budget utilization
• Techie: maximize the fun stuff (yellow) ?
39
Units of Cost and Value
• Value in Dollars ?– Increases confusion value vs costIncreases confusion value vs. cost– Very hard to define
• Priority– High, medium, low– MoSCoW
• Relative index• Util
• Matches “points” for cost
43
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 21
Utils & Points
• ValueM d i Util
• Cost ≈ effortM d i P i t– Measured in Utils – Measured in Points
∑ ∑Dev. $$$Rev. $$$
∑ ∑∑ points∑ utils
44
Bass et al 2003Rick Kazman, SEI
Research: Value “Flow down”
• Heuristics to allocate value to invisible featuresfeatures
• Assign value to visible features (utils)• “Borrow” value from visible features and allocate to invisible features, using dependencies
• Keep total value constant• Goal: using value and dependencies to sequence development
45
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 22
Points (cost) and Utils (value)
47
Points (cost) and Utils (value)
49
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 23
Points (cost) and Utils (value)
50
Points (cost) and Utils (value)
52
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 24
Points (cost) and Utils (value)
53
Heuristics?
• Value of invisible feature = Max (value of all dependents)dependents)
• Value of invisible feature = Max + f(number of dependents)
• Value of invisible feature = total value achievable if implementing it – total value hi bl ith t i l ti itachievable without implementing it
• …(Not there yet)
54
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 25
More on value & cost
• CBAM = Cost Benefit Analysis MethodChap 12 in Bass Clements Kazman 2003– Chap 12 in Bass, Clements, Kazman 2003
• IMF: Incremental Funding Method– Denne & Cleland‐Huang, 2004– Software by numbers
A l ti Hi h P (AHP) S t 1990• Analytic Hierarchy Process (AHP) Saaty, 1990• Evolve* ‐ Hybrid
– Günther Ruhe & D. Greer 2003, etc…
55
IMF: Incremental Funding Method
• MMF = Minimum Marketable Features
• AE = Architectural elements
• Cost
• MMF depends on AE
• Time and NPV = Net Present Value
• Strands = Sequences of dependent MMFs
• Heuristic
56
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 26
What colour is your backlog?
(so far)
57
Features
58
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 27
Visible &Invisible Features
59
Estimation
• Cost estimation
• Work
• Estimate– Ideal case?
• Things go wrong
– Worse case?– Worse case?• ∑ all worse cases = impossible implementation
60
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 28
Buffers
• E. Goldratt: Theory of constraints
• D. Anderson
• Buffer: unallocated effort (work)
• Shared by all staff members and all explicit work
61
Time‐box
62
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 29
Time‐box with Buffer
63
Defects
• Defect = Feature with negative value
• Fix (defect) has a positive cost (work)
• Time/place of discovery– Inside development (in‐house, in process)
– Outside development (out‐house?) in a released product
64
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 30
Buffer for in‐process defect
65
Defect Value
Perfect product Imperfect product Defect
66
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 31
Fixing a Defect
• Defect have both value and cost
• Value of fixing a defect = −Value of the defect
• Cost of fixing a defect (estimated)
• Defects have dependencies– Defect fix depend on invisible feature
– Visible feature depending on a fix
67
What colour is your backlog?
(so far)
68
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 32
Visible and Invisible Features
69
Visible & Invisible Features + Defects fixing
70
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 33
Technical Debt
• Concept introduced by Ward Cunningham• Concept introduced by Ward Cunningham
• Often mentioned, rarely studied
• All experienced SW developer “feel” it.
• Drag long‐lived projects and products down
71Cunningham, OOPSLA 1992
Technical Debt (S. McConnell)
• Implemented features (visible and invisible) = assets = non‐debtassets = non‐debt
• Type 1: unintentional, non‐strategic; poor design decisions, poor coding
• Type 2: intentional and strategic: optimize for the present, not for the future.– 2 A short‐term: paid off quickly (refactorings etc )– 2.A short‐term: paid off quickly (refactorings, etc.)
• Large chunks: easy to track• Many small bits: cannot track
– 2.B long‐term
72McConnell 2007
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 34
Technical Debt (1)
12 $15 12 $16 12 $18
12
12
a
$15
$5
12
b
$16
$3
12 $18
$20 $19 $18
73
Technical Debt (2)
12 $15 12 $16 12 $18
12
12
a
$15
$5
12
b
$16
$3
12 $18
8 8 $5 8 $8 8 $10
$25 $27 $28
74
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 35
Technical Debt (3)
12 +$212 $18
12
12
a
+$2
$5
12 $18
8 8 $5
$30
75
Technical Debt
• Defect = Visible feature with negative value
• Technical debt = Invisible “feature” with negative value
• Cost of fixing
• Value of repaying technical debt
76
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 36
Interests
• In presence of technical debt• Cost of adding new feature higher• Cost of adding new feature higher
• When repaying (fixing), additional cost for retrofitting already implemented features
• Technical debt not repaid => lead to increased cost, forever
• Cost of fixing increases
77M. Fowler
Buffer for debt repayment
Estimate
Defect correction
DebtRepayment
Simple workEstimate uncertainties
78
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 37
Colours in a Product
Visible Invisible
VisibleFeature
Hidden, architectural feature
Visible d f t
Technical D bt
PositiveValue
Negativedefect DebtValue
79
• YAGNI = You Ain’t Gonna Need It– But when you do, it is technical debt
– Technical debt often is the accumulation of too many YAGNI decisions
• Again the tension between the yellow stuff and the green stuff.g
80
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 38
What colour is your backlog?
(so far)
81
Visible & Invisible Features + Defects fixing+ Technical Debt payment
82
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 39
Time and depreciation
Denne 200483
Net Present Value
84
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 40
In which release?
R1 R2 R3 R4
8
Time85
Value decreases
R1 R2 R3 R4
8
Time86
8 7.5 7 6
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 41
Technical debt: increase (?)
R1 R2 R3 R4
8
Time87
8 8.5 9 10
Tool support
• Strategic and tactical planning– Release and iteration (sprint) levelRelease and iteration (sprint) level
• Uses:– Value and cost– Dependencies– Depreciation
• Integrate concept of buffers• Graphical UI (hence the colors)• Add‐on to existing scrum supporting tool• Needed for experimentation and validation
88
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 42
89
90
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 43
91
92
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 44
Constraints
• Use rules and heuristics to do an initial plan
• Force (move) elements from one time‐box to another
• Dependencies will “drag” things around
• Proceed similarly at both levels:R l l i– Release planning
– Sprint planning
93
Constraints (cont.)
• Dynamically re‐arrange with new informationC l t d l t– Completed elements
– Actual costs (buffer consumption)– New elements (in all colours)– New estimates– New dependencies – De‐scoping– Additional scope– Loss of resource
94
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 45
95
Dilbert: XP & user story
96
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 46
Summary of Research Questions
• Heuristic to allocate value to invisible features• Heuristics to define size of buffer in a time‐box• Heuristics to define size of buffer in a time‐box
1. For absorbing errors in estimations2. For defect correction3. For debt reduction
• Definition of the “value” of technical debt• Impact of time on unpaid technical debt• Visual paradigms (for tool)
• Use of surfaces (software team room)97
Supported by Scrum Alliance
Support from NSERC?
SurfNet Research
98
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 47
Suggestions for project management
• Separate the processes for estimation of cost d land value
• Avoid monetary value (points & utils)
• Identify invisible features and make them more visible to more stakeholders
• Allocate value to invisible feature• Allocate value to invisible feature
• Use nominal and worse case estimates for cost (effort); create shared buffers
99
Suggestions (cont.)
• Make technical debt visible– Large chunks (McConnell type 2)
• Assign some value to technical debt type 2.B and include in backlog
• Allocate a buffer in a release time‐box for debt reduction for type 1 and 2 Areduction for type 1 and 2.A
• Allocate a buffer in an iteration (sprint) time‐box for type 1 (systematic refactorings)
100
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 48
3 Kinds of Buffers
Estimate Defect
correction
DebtRepayment
uncertainties
Straighforward work 101
Toward the 1st release
102
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 49
A later release
103
Manage all colours in your backlog!
104
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 50
Suggestions (cont.)
• Manage all work together, not in separate ilsilos: – new development,
– architectural or infrastructure work,
– defect fixing and
– debt reduction.debt reduction.
• Single tool…?
105
106
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 51
107
108
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 52
109
110
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 53
111
Architecture: Value and Cost
• Architecture has no (or little) externally visible “customer value”customer value
• Iteration planning (backlog) is driven solely by “customer value”
• YAGNI, BUFD, Metaphor…• “Last responsible moment!” & Refactor!E hit t l ti iti t i• Ergo: architectural activities are not given proper attention
• Ergo: large technical debts
113
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 54
Role of Architecture
• Novel system• Gradual emergence of architecture• Gradual emergence of architecture• Validation of architecture with actual functionality
• Early enough to support development
Zipper model…• Not just BUFD• No YAGNI effect
114
Zipper: Weaving the functional and architectural work items
115
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 55
Questions
Questions?
116
ReferencesAgile Alliance (2001) Manifesto for Agile Software Development. http://agilemanifesto.org/Bass, L., Clements, P., & Kazman, R. (2003). Software Architecture inBass, L., Clements, P., & Kazman, R. (2003). Software Architecture in Practice (2nd ed.). Reading, MA: Addison-Wesley.Beck, K., & Fowler, M. (2001). Planning Extreme Programming. Boston: Addison-Wesley.Boehm, B. and Lane, J.A. (2007) Using the incremental commitment model to integrate system acquisition, system engineering, and software engineering, University of Southern California, Los Angeles, September 2007.Boehm, B. & Ross, R. (1989) "Theory-W Software Project Management: Principles and Examples." IEEE Transactions on Software Engineering 15 (4) 902 916(4) 902-916. Cohn, M. (2006) Agile Estimating and Planning. Upper Saddle River, N.J.: Prentice-Hall.Denne, M., & Cleland-Huang, J. (2004). Software by Numbers: Low-Risk, High-Return Development, Prentice Hall.
117
Scrum Gathering March 17, 2009
Copyright © 2009 Philippe Kruchten 56
References (cont.)Denne, M., & Cleland-Huang, J. (2004). The Incremental Funding Method: Data-Driven Software Development IEEE Software, 21(3), 39-47.Karlsson, J. & Ryan, K. (1997). A Cost-Value Approach for PrioritizingKarlsson, J. & Ryan, K. (1997). A Cost Value Approach for Prioritizing Requirements, IEEE Software, 14 (5) 67-74. Kruchten, P. (2007). Voyage in the Agile Memeplex: Agility, Agilese, Agilitis, Agilology. ACM Queue, 5(5), 38-44.McConnell, S. (20087) Notes on Technical Debt,http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical‐debt‐2.aspxRuhe, G. and Ngo-The, A. (2004) Hybrid Intelligence in Software Release Planning. International Journal of Hybrid Intelligent Systems, 1, pp 99–110.Saaty, T. (1990). How to make a decision: The analytic hierarchy process. E j l f ti l h 48(1) 9 26European journal of operational research, 48(1), 9-26.Wiegers, K. (1999). First Things First: Prioritizing Requirements. Software Development Magazine, 7(9), 48-53.
118
Slides at philippe.kruchten.com/kruchten_backlog_colours.pdf
119