Technical Debt –
Understanding Its
Sources and Impacts
Through a Game
David Croley - @davidcroley
David Croley
Agile Velocity
Principal Consultant
Certified Scrum Manager ( CSM)
@davidcroley
dcroley@agilevelocity.com
Transforming Technology Organizations
2
We’d prefer to deliver a fast, steady
stream of new features…
But sometimes delivery feels slow, even
stagnant.
CC	BY	2.0	http://www.flickr.com/photos/usfwspacific/6121377305/
And we hope it doesn’t feel like this!
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
Martin	Fowler’s	Technical	Debt	Quadrants
http://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
Late	Deliveries
Mounting	
Defects
Rising	Development	Costs
Poor	Customer	
Responsiveness
Long	Delivery	Times
Frustrated	and	Poor	
Performing	 Teams
Impact	of	Tech	Debt
Impact of Technical Debt
“Agile	Project	Management”,	Jim	Highsmith,	second	edition
Let’s do an exercise to understand the
concept further.
Form into Teams of at least 4 people.
Feature
Cost: 15
Feature
Cost: 10
Feature
Cost: 5
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
Set up your board as follows
Feature
Cost: 15
Feature
Cost: 10
Feature
Cost: 5
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
Add	up	the	total		impact	of	all		
technical	debt	items
-35
25
-35
X
Feature
Cost: 10
Feature
Cost: 15
Feature
Cost: 10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
You have 25 Points to Spend
Select the cards you want to spend your points on.
No partially done work.
Feature
Cost: 5
Feature
Cost: 5
-35
25
10
15
15
X
Feature
Cost: 10
Feature
Cost: 15
Feature
Cost: 10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
You have 25 Points to Spend
Select the cards you want to spend your points on.
No partially done work.
Feature
Cost: 5
Feature
Cost: 5
Iteration	Card
Cost: 10
Database	is	getting	large	and	complex.	We	need	to	add	
automated	migrations	 to	reduce	manual	work	and	
support	refactoring.
Impact:	-5
The goal is to complete as many feature
points at the end of 5 iterations.
Go!
-35
25
X
The goal is to complete as many feature
points at the end of 5 iterations.
Stop!
Theoretical Capacity
Technical Debt
Productivity
Time
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
Capture your debt
Visualize and Estimate
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
Need to invest time, team needs slack
Boy	Scout	slide
Incrementally make your code better
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
21
21
1
2
1 2 1 1
One Backlog Prioritized by the Product Owner
Feature Story
Technical Debt Story
21
21
1
2
1211
21
21
1
2
1211
Feature Story
Technical Debt Story
Two Backlogs Prioritized Independently
80/20 Allocation Strategy
Discuss how you could apply these
concepts to help your teams.
For More Information:
Working Effectivelywith Legacy Code by Michael Feathers
Clean Code: A Handbook of Agile Software Craftsmanshipby Robert C. Martin
http://www.ontechnicaldebt.com
https://medium.com/@joaomilho/festina-lente-e29070811b84(Tech debt 101)
David Croley – dcroley@agilevelocity.com
Website – AgileVelocity.com
Blog – AustinAgile.com
Twitter - @austinagile, @davidcroley
Thanks!

Technical Debt: Sources and Impacts