I spend my days building financial models and forecasting engineering costs. One of the hardest things to model is technical debt.
Then I found the McKinsey research, and suddenly I had numbers to work with.
The McKinsey Numbers
From a survey of 50 CIOs at financial services and tech companies (all with $1B+ revenues):
- 10-20% of the technology budget dedicated to new products is actually diverted to resolving tech debt issues
- Tech debt amounts to 20-40% of the entire technology estate value before depreciation
- 30% of CIOs believe more than 20% of their “new product” budget is actually going to tech debt
Let me translate that into finance terms:
If you’re budgeting $10M for new product development, $1-2M is actually going toward fixing old problems, not building new value. And that’s the optimistic scenario.
Why Finance People Should Care
I’ve seen engineering teams ask for “refactoring time” and get rejected because they can’t quantify the business case. Here’s the business case:
The Productivity Tax
According to a Stripe study, developers waste approximately 33% of their time dealing with technical debt and maintenance. CodeScene puts it even higher - up to 42% of developer time.
Let’s do the math on a 20-person engineering team at $200K fully-loaded cost per engineer:
- Team cost: $4M/year
- 33% productivity loss: $1.32M/year in wasted capacity
- That’s capacity you’re paying for but not getting
The Velocity Penalty
McKinsey found that organizations with high technical debt:
- Spend 40% more on maintenance costs
- Deliver new features 25-50% slower than competitors
If you’re losing 6-12 months on a major product launch because of tech debt, that’s not an engineering problem. That’s a market share problem.
The Quality Multiplier
High-debt codebases experience 2-3x more production bugs. Testing cycles expand by 30-50% as QA teams verify both new functionality and potential regressions.
More bugs = more support costs = more engineering time on fixes = less time on features.
It compounds.
Why This Is Hard to Model
Here’s my challenge as a finance leader: tech debt doesn’t show up as a line item.
Nobody writes “Tech Debt Resolution: $2M” in the budget. Instead, it appears as:
- Projects taking 30% longer than estimated
- Higher-than-expected maintenance spend
- “Unexpected” production incidents
- Engineers asking for more headcount despite constant hiring
If you don’t explicitly track tech debt, you just see “engineering is always behind” without understanding why.
What I’ve Started Doing
At my company, we’ve started quantifying tech debt in business terms:
-
Incident cost tracking: Every production incident gets a dollar cost (engineering time + support time + revenue impact)
-
Velocity benchmarking: We track story points per engineer over time. When it starts declining, that’s a tech debt signal.
-
“Tax rate” estimation: I now build a 15% tech debt tax into all engineering forecasts. It’s not perfect, but it’s better than pretending it’s zero.
-
Refactoring ROI models: When engineering proposes a refactoring project, we model it like any capital investment: cost now vs. productivity gain over time.
Questions for This Community
-
How do you communicate tech debt costs to leadership? What frameworks or metrics work?
-
Do you explicitly budget for tech debt reduction? Or does it just come out of “new development” capacity?
-
For engineering leaders: What metrics would help you make the business case for addressing tech debt?
I’m convinced tech debt is one of the most underappreciated drags on company performance. But we can’t fix what we can’t measure.