Engineers spend 2-5 days per month on tech debt (25% of budget)—When does this become unsustainable?

I’ve been thinking a lot about technical debt lately, and I’m curious to hear how other leaders are navigating this challenge.

At my current company—a Fortune 500 financial services firm where I lead a team of 40+ engineers—we track time spent on tech debt pretty closely. The data is sobering: our engineers spend between 2-5 days per month managing technical debt. That’s roughly 25% of our engineering capacity, which aligns with industry research showing that organizations carrying significant IT technical debt typically dedicate 25-40% of their total capacity to managing existing debt rather than building new capabilities.

What This Looks Like in Practice

The symptoms are familiar to anyone who’s scaled a team:

  • Sprint capacity declining quarter over quarter. Features that used to take one sprint now take two.
  • New engineers struggling to onboard. Our codebase complexity has grown faster than our documentation.
  • Firefighting becoming the norm. We’re spending more time on incidents and hotfixes than planned work.
  • Technical design taking longer. Every new feature requires navigating around existing debt.

The tension I’m feeling—and I suspect many of you feel too—is the pressure from leadership to deliver new features while our technical foundations are showing cracks.

When Does Strategic Debt Become Unsustainable?

Here’s what keeps me up at night: we all know some technical debt is strategic. In the early days, you move fast and make pragmatic trade-offs. That’s healthy. But when does that strategic debt cross the line into unsustainable burden?

Research from Accenture suggests that organizations should allocate around 15% of capacity as a standing allocation for debt reduction. Companies that maintain this discipline consistently project revenue growth roughly one percentage point ahead of peers who defer remediation.

But here’s my question: How do you actually know when you’ve crossed that line?

Is it when:

  • Your velocity drops below a certain threshold?
  • Customer incidents increase?
  • Engineering morale starts to suffer?
  • New feature development takes 2x as long as it used to?
  • Your best engineers start leaving?

The Reality of Leadership Conversations

In my quarterly business reviews, I’m increasingly having uncomfortable conversations with our CFO and business leaders about why we need to invest time in “maintenance” instead of new revenue-generating features. Some quarters I win that argument, some I don’t.

I’ve started treating technical debt like financial debt—it needs regular service, or the interest compounds until it becomes crushing. But making that analogy stick with non-technical stakeholders is harder than I expected.

What I’m Curious About

For those of you leading engineering teams or working closely with technical organizations:

  1. What’s your threshold? At what point do you say “we must pause new features and address this debt”?
  2. How do you measure it? Beyond gut feel and engineer complaints, what metrics actually tell you when debt is becoming critical?
  3. How do you get buy-in? What’s worked for you in making the case to leadership that debt reduction is a business imperative, not just an engineering preference?
  4. Architecture review cadence? Some sources suggest reviewing your architecture every 18-24 months. Does that match your experience?

I’m genuinely curious to hear different perspectives on this—from CTOs, product leaders, engineers, anyone who’s navigated this tension. The 25% budget allocation feels unsustainable long-term, but I’m not sure where the right balance is.

What’s your experience been?

Luis, this resonates deeply. I’m seeing the exact same patterns at my company—and the 25% figure you cited matches our experience almost exactly.

The Threshold Question

Here’s what I’ve learned after navigating this at two different companies: technical debt becomes unsustainable when it starts affecting your competitive position or customer experience in measurable ways.

At our current SaaS company, we hit that threshold last year. We were losing deals because competitors could ship features 2-3x faster than us. Our deployment frequency had dropped from daily to weekly, then to bi-weekly. Customer-reported bugs increased by 40% quarter-over-quarter. That’s when we knew we’d crossed the line.

Treating Debt Like Financial Debt

Your analogy about treating technical debt like financial debt is spot-on, and I’ve used that successfully with our board. But here’s what made it click for our CFO: we started tracking the “interest payments” on our technical debt in dollars, not just engineering time.

For example:

  • Lost deals due to slower feature velocity: $450K/quarter
  • Customer churn from quality issues: $200K/quarter
  • Premium cost for senior engineers who can navigate the complexity: $150K/year above market

When we framed it as “we’re paying $850K/quarter in interest on technical debt,” suddenly the conversation about a $1.5M, 3-month modernization project became much easier. The ROI was clear.

The 20% Standing Allocation

We implemented a standing 20% allocation for debt reduction, inspired by the same Accenture research you mentioned. It was controversial at first—our head of product was frustrated about the velocity impact. But here’s what we found:

After 6 months, our actual feature delivery velocity increased. Why? Because we stopped context-switching to emergency fixes, new engineers could onboard 30% faster, and developers spent less time navigating around existing problems.

The Cognitive Debt Problem

But here’s something that keeps me up: what about cognitive debt? Even if we refactor the code, if no one can explain why design decisions were made, we haven’t really solved the problem. I worry that we’re measuring technical debt but missing the organizational knowledge debt.

When your best engineers leave (and you mentioned this as a warning sign), they take context with them. How much is that “knowledge interest payment” costing us?

My Framework for the Threshold

To answer your direct question about thresholds, here’s the framework I use:

Yellow flag (15-25% capacity on debt): Monitor closely, start planning remediation

  • Velocity declining but manageable
  • Quality issues contained to non-critical paths
  • Team morale stable but engineers expressing frustration

Red flag (25-40% capacity on debt): Immediate action required

  • Customer-facing incidents increasing
  • Competitive position being affected
  • Engineers actively disengaging or leaving
  • New features taking 2x historical time

Critical (40%+ capacity on debt): All hands on deck

  • System stability at risk
  • Unable to attract or retain talent
  • Business growth materially constrained

We hit “red flag” last year and that’s when we secured buy-in for the 3-month focused remediation sprint.

Architecture Review Cadence

The 18-24 month architecture review cadence feels right to me, but with a caveat: it depends on your growth rate.

If you’re scaling rapidly (like we are—went from 50 to 120 engineers in 18 months), you need more frequent reviews. We do quarterly “architecture health checks” and annual “do we need to rearchitect” reviews.

For more stable organizations, 18-24 months probably makes sense. But the key is treating it as a standing commitment, not something you do when you have time.

The Real Question

Luis, you asked how to get buy-in from leadership. Here’s what worked for me: stop asking for permission to fix technical debt, and start reporting on the business impact of not fixing it.

Track and report:

  • Time to deploy new features (and trend over time)
  • Customer incidents attributable to tech debt
  • Lost opportunities due to technical constraints
  • Recruiting challenges due to legacy systems

When these metrics are in your quarterly business reviews alongside revenue and customer metrics, the conversation changes from “engineering wants to refactor” to “we have a business problem that requires technical investment.”

What metrics are you currently tracking to make this case?

I’m coming at this from the product side, and I have to admit—Luis’s post makes me uncomfortable because I recognize myself in the “pressure from leadership to deliver features” dynamic.

My Confession

For the first two years at my current company, every time engineering said “we need to refactor” or “we should address this tech debt,” I internally translated that to “we don’t want to build features.” I’m not proud of that, but I think it’s a common product leader mindset, especially when you’re trying to hit aggressive growth targets.

The Wake-Up Call

What changed my perspective was a customer-facing incident last year. We had committed to a Fortune 500 client that we’d launch a specific feature by their fiscal year-end. The feature itself wasn’t complex—conceptually it was straightforward. But when engineering started implementation, they discovered that our data pipeline architecture couldn’t support the real-time requirements the feature needed.

The result? We missed the deadline by 3 months. Lost a $2M contract. And I had to personally call the client to explain why we couldn’t deliver.

That’s when I realized: the tech debt wasn’t an engineering preference, it was a business constraint I hadn’t been seeing.

Michelle’s Dollar Framework Changed Everything

Michelle, your framework about tracking “interest payments” in dollars is brilliant, and I wish someone had explained it to me this way earlier. When you say:

Lost deals due to slower feature velocity: $450K/quarter

That’s a language product and business leaders understand immediately. We’re all familiar with opportunity cost—we just hadn’t been applying that thinking to technical infrastructure.

Since that incident, I’ve started including a “technical constraint” column in our roadmap reviews. It’s been eye-opening to see how many features are delayed or descoped not because of product decisions, but because of technical debt.

How I Now Think About This

Here’s my current mental model as a product leader:

Technical debt is product debt. If we can’t build features customers need because of our technical foundations, that’s a product problem, not just an engineering problem.

Velocity theater vs real velocity. I used to celebrate when we’d commit to 8 features in a quarter. But if 6 of them got delayed to next quarter because of unexpected technical complexity, what were we actually celebrating?

Michelle mentioned that after implementing a 20% standing allocation for debt reduction, actual feature delivery velocity increased after 6 months. That matches what we’ve seen too. Sustainable velocity beats sprint velocity.

Questions for Engineering Leaders

Luis and Michelle, here’s where I still struggle:

How do you make technical debt tangible for non-technical stakeholders?

I get the dollar framework now, but in our quarterly roadmap planning, when you say “we need to spend Sprint 3 on refactoring the payment service,” how do you help product leaders like me understand:

  1. What we’re buying with that time? Is it speed? Stability? Flexibility? All three?
  2. What happens if we defer it? You mentioned the “interest compounds” analogy—but how do you quantify that compounding?
  3. How do we prioritize debt reduction? Not all debt is equal, right? Some must be fixed now, some can wait. How do you make those trade-offs visible?

Architecture Reviews as Product Reviews

Michelle, your point about treating architecture reviews as standing commitments resonates. At our company, we have quarterly product strategy reviews that are non-negotiable. The exec team blocks the time, everyone attends, we make decisions.

Why don’t we do the same for architecture?

I’m proposing to our CTO that we add quarterly “architecture & technical health” reviews to our standing exec meeting calendar, with the same level of rigor and attendance expectations as product reviews. The agenda would include:

  • Current technical debt metrics (using Michelle’s framework)
  • Architecture decisions made this quarter and their rationale
  • Upcoming architectural needs based on product roadmap
  • Technical constraints that will impact next 2 quarters of roadmap

Would that format be useful from an engineering leader’s perspective?

The Uncomfortable Truth

Here’s what I’ve come to realize: as a product leader, I was incentivized to maximize feature output, but not held accountable for the technical consequences of that approach.

My bonus was tied to shipping features and hitting revenue targets. Nobody measured whether I was accumulating technical debt that would slow us down in 18 months. That misalignment of incentives is a problem.

Luis, to your original question about getting buy-in from leadership—I think part of the answer is: we need to change how we measure product success.

If product leaders are only measured on features shipped, we’ll always push for more features. But if we’re also measured on “sustainable delivery velocity” or “architecture health score,” suddenly the incentives align.

What do you think? Am I missing something from the engineering perspective?

David, your story about the $2M lost contract hit way too close to home. I’m going to share something I don’t talk about much: how technical debt killed my startup.

The Startup Death Story Nobody Tells

When we were building our B2B SaaS product, we were so focused on getting to market fast that we made every classic mistake. Our engineering team (just two people at the time) kept saying “we should refactor this” or “this won’t scale,” and I—as the founder—kept saying “let’s ship it and fix it later.”

Except “later” never came.

We got our first big customer. Then our second. Then our third. And suddenly, “later” turned into “we can’t fix this now because it would require taking the system down for days and we have paying customers depending on us.”

When the House of Cards Collapsed

About 18 months in, we hit what Luis described: simple changes started taking weeks instead of days. Our codebase had become so fragile that every new feature had unexpected side effects. We’d fix one bug and create three more.

The breaking point came when a major prospect asked for a feature that should have taken 2 weeks to build. Our technical co-founder said it would take 6 months because we’d have to rewrite our entire data layer first.

We didn’t have 6 months of runway. We lost the deal. That was the beginning of the end.

The Design Parallel

This conversation reminds me so much of design systems debt, which is something I deal with now in my current role. When design teams don’t maintain a design system:

  • Designers create inconsistent components
  • Engineers build the same button five different ways
  • The UI becomes a patchwork of different styles
  • Simple updates require touching dozens of files
  • Onboarding new designers takes forever because there’s no source of truth

Sound familiar? It’s the exact same pattern as technical debt.

What I Wish Someone Had Told Me

Luis asked: “How do you know when you’ve crossed the line?”

Here’s what I learned the hard way: you’ve crossed the line when fixing the debt requires pausing the business, but you can’t afford to pause the business.

That’s the death spiral. You’re too far in debt to keep moving forward efficiently, but you’re also too dependent on the broken system to fix it. It’s like being trapped in a burning building because you’re carrying too much stuff to fit through the door.

David’s Question About Visualization

David, you asked about visualizing technical debt for non-engineers. Here’s what finally worked when I was trying to explain design system debt to stakeholders:

I created a “complexity map” that showed dependencies.

For design systems, it looked like: “If we change this button component, we have to update 47 screens. But if we had a proper design system, we’d change one component and it would update everywhere automatically.”

For technical debt, could you do something similar? Like: “Here’s a heatmap of our codebase. Red areas are where changes take 3x longer than they should. Here’s how much time we lost in red zones last quarter.”

Make the pain visible. Not just “we have tech debt” but “tech debt cost us 240 engineer-hours last quarter, which is $120K of salary for work that didn’t ship features.”

The Incentives Problem Is Real

David, your point about misaligned incentives is so important. In my startup, I was incentivized to show growth to investors. Nobody measured whether that growth was sustainable. Nobody asked “what’s your tech debt ratio?” in our board meetings.

Maybe investors and boards should ask: “What percentage of your engineering capacity is going to debt service vs new capabilities?” Just like they ask about burn rate and runway.

If that number is consistently above 30%, that’s a red flag that the business model might not be as healthy as the growth metrics suggest.

What I Do Now

In my current role leading design systems, I’ve started treating design debt the same way Michelle treats technical debt:

  1. 20% of design time allocated to system maintenance (we call it “design infrastructure”)
  2. Quarterly design system health reviews with product and engineering leaders
  3. Track the cost: “This inconsistency cost us 15 hours of design time and 40 hours of engineering time last quarter”

It was controversial at first. Leadership asked “why aren’t designers focused on new features 100% of the time?”

The answer: because we’re already spending 30% of our time fixing problems caused by inconsistency and tech debt. The 20% allocation actually increases our feature output.

The Question I Can’t Stop Thinking About

Michelle mentioned “cognitive debt”—when nobody can explain why decisions were made. This haunts me.

At my failed startup, our original tech lead left after 10 months. He took all the context with him about why the system was architected a certain way. Every decision we made after that was essentially archaeology—trying to understand ancient decisions with no documentation.

How do you prevent cognitive debt? Is it just documentation? Decision logs? Architecture diagrams? Or is there something else?

I feel like that might be even more dangerous than the code itself, because at least code can be analyzed. But lost context is just… gone.