Post on 12-Apr-2017
David Croley
Agile VelocityPrincipal Consultant
Certified Scrum Manager ( CSM)
@davidcroley
dcroley@agilevelocity.com
Transforming Technology Organizations2
But sometimes delivery feels slow, even stagnant.
CCBY2.0http://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 Investment
Visible Invisible
Positive Value
Negative Value
Features
Bugs
Architecture*ilities
Logging, metrics, A/B Testing, etc.
Tech Debt
Good and Bad Debt
MartinFowler’sTechnicalDebtQuadrantshttp://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
LateDeliveries
MountingDefects
RisingDevelopmentCosts
PoorCustomerResponsiveness
LongDeliveryTimes
FrustratedandPoorPerforming Teams
ImpactofTechDebt
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
Addupthetotalimpactofalltechnicaldebtitems
-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
IterationCardCost: 10
Databaseisgetting largeandcomplex.Weneed toaddautomatedmigrations toreducemanualworkand
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
KeystoPrioritizingTechnicalDebt
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
1211
2121
12
1211
Feature Story
Technical Debt Story
Two Backlogs Prioritized Independently
80/20 Allocation Strategy
For More Information:
Working Effectively with Legacy Code by Michael FeathersClean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martinhttp://www.ontechnicaldebt.comhttps://medium.com/@joaomilho/festina-lente-e29070811b84 (Tech debt 101)