Managing Technical Debt
Felix Sargent
It’s not just you
We all suffer from technical debt.
What is technical
debt?
Bugs … Bugs
Everywhere
Cause: Management pushing for features and functionality with high pressure,
low use of "best practices" such as code review, architectural review, ordered
backlog
How did we get here?
- Management pushing for features and functionality
- No code or architectural review
- Little Structure
- Firefighting
We actually need
to fix this...
Killing bugs is not
the answer
How do we fix this?
● Strongly defined goal
Strongly Defined Goal
● Refactor Permissions code to support new Permissions Model
● Eliminate HTTP 500 type errors caused by Flux Capacitor Instability
● Reduce time to load page by at least 20%. From 2 seconds >= 1.6 seconds.
● Break PHP app into services to separate concerns
How do we fix this?
● Strongly defined goal
● Healthy development practices
Healthy Process
● Code Reviews
● Healthy, equitable discussions
● Reliable automated software Tests
How do we fix this?
● Strongly defined goal
● Healthy development practices
● Time
Time
● Make the case to management
● Output will decrease for a period of time
● But we will be able to deliver more later
Strongly Weakly Defined Goal
● Refactor Permissions code to support new Permissions Model
● Eliminate HTTP 500 type errors caused by Flux Capacitor Instability
● Reduce time to load page by at least 20%. From 2 seconds >= 1.6 seconds.
● Break PHP app into services to separate concerns
● Remove and refactor code to improve readability
^^ Kidding - don’t do this.
Nothing gets
released
Cause: Scope of technical fix was not properly defined, or attached to customer
functionality
Technical Debt is
Inevitable
It’s OK to accrue
technical debt
Exploration
One Offs
Technical Debt is
Philosophical
Problem
Wabi-Sabi
Kintsugi
Thank you!

Managing Technical Debt