Upload
dtcroley
View
181
Download
1
Tags:
Embed Size (px)
Citation preview
David Croley
Agile Velocity
Principal Consultant
Certified Scrum Manager ( CSM)
@davidcroley
Transforming Technology Organizations3
But sometimes delivery feels slow, even stagnant.
CC BY 2.0 http://www.flickr.com/photos/usfwspacific/6121377305/
Technical Debt
A useful metaphor similar to financial debt
“Interest” is incurred in the form of costlier development effort
Technical Debt can be paid down through refactoring the implementation
Unlike monetary debt, Technical Debt is difficult to quantify
Development InvestmentVisible Invisible
Positive Value
Negative Value
Features
Bugs
Architecture*ilities
Logging, metrics, A/B Testing, etc.
Tech Debt
Good and Bad Debt
Martin Fowler’s Technical Debt Quadrantshttp://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html
No Blame
Tech Debt is often the result of deliberate decisions or incomplete knowledge
Even perfectly functioning teams will incur Tech Debt
Change over time is another source of Tech Debt
FeatureCost: 15
FeatureCost: 10
FeatureCost: 5
Technical DebtCost 15
Impact -10
Technical DebtCost 15
Impact -10
Technical DebtCost 10
Impact -5
Technical DebtCost 5
Impact -5
Technical DebtCost 5
Impact -5
Iteration Card
Set up your board as follows
FeatureCost: 15
FeatureCost: 10
FeatureCost: 5
Technical DebtCost 15
Impact -10
Technical DebtCost 15
Impact -10
Technical DebtCost 10
Impact -5
Technical DebtCost 5
Impact -5
Technical DebtCost 5
Impact -5
Iteration Card
Add up the total impact of all technical debt items
-35
FeatureCost: 10
FeatureCost: 15
FeatureCost: 10
Technical DebtCost 15
Impact -10
Technical DebtCost 15
Impact -10
Technical DebtCost 10
Impact -5
Technical DebtCost 5
Impact -5
Technical DebtCost 5
Impact -5
Iteration Card
You have 25 Points to SpendSelect the cards you want to spend your points on.
No partially done work.
FeatureCost: 5
FeatureCost: 5
FeatureCost: 10
FeatureCost: 15
FeatureCost: 10
Technical DebtCost 15
Impact -10
Technical DebtCost 15
Impact -10
Technical DebtCost 10
Impact -5
Technical DebtCost 5
Impact -5
Technical DebtCost 5
Impact -5
Iteration Card
You have 25 Points to SpendSelect the cards you want to spend your points on.
No partially done work.
FeatureCost: 5
FeatureCost: 5
Iteration CardCost: 10
Database is getting large and complex. We need to add automated migrations to reduce manual work and support
refactoring.
Impact: -5
Debrief
So how did it go?
What strategy did your team use to mix features and debt?
Is it realistic?
Simplifications
Tech debt impact is usually not so quantifiable.
Delivering significantly fewer features per sprint may be unrealistic.
Cost to fix and impact may increase over time
Tools and Techniques
Use tools like SonarQube, FindBugs, and PMD to help find and measure tech debt
Ask the team
Track defects by location in the code
Make sure the team feels empowered to fix small debt issues every day
Keys to Prioritizing Technical Debt
Have a Clear Definition of Done - Acceptance Criteria
Articulate Business Value
Work Incrementally - Breakdown Items
Make Visible - Add to the Backlog
Prioritize/ Allocate Time
2121
12
12 11
2121
12
12 11
Feature StoryTechnical Debt
Story
Two Backlogs Prioritized Independently
80/20 Allocation Strategy
For More Information:
Working Effectively with Legacy Code by Michael Feathers
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
http://www.ontechnicaldebt.com
https://medium.com/@joaomilho/festina-lente-e29070811b84 (Tech debt 101)
David Croley – [email protected]
Website – AgileVelocity.com
Blog – AustinAgile.com
Twitter - @austinagile, @davidcroley
Thanks!