Technical Debt Is a Leadership Problem
Tech debt is framed as a developer failing, but the accumulation pattern is always managerial. Fix the incentives, not just the code.
Ask an engineering manager where the technical debt on their team comes from and they'll usually say something like "we moved fast," or "the team made some shortcuts early on," or — more honestly — "we had a lot of pressure to ship." Then ask whose pressure. That question gets quieter answers.
Technical debt is one of the most consistently misattributed problems in software. Engineers carry the reputation for creating it. Managers carry the responsibility for addressing it. Neither is where the actual causal chain starts.
What debt accumulation actually looks like
Debt doesn't accumulate because engineers are lazy or careless. It accumulates in a specific pattern: a team is given a deadline that can only be met by skipping something. They skip it. They ship. The deadline was real and the shipping was necessary. The skipped thing is now debt.
Then the cycle repeats. The team now has less capacity because part of their time is paying interest on the last shortcut. The next feature takes longer. The next deadline has the same pressure. They skip something else. The debt compounds.
None of this requires any individual engineer to make a bad decision. The decisions are locally rational — ship now, pay later — and they're made under real constraints. What makes them locally rational is the incentive structure. On a team where shipping features is rewarded and reliability work is invisible, engineers and managers both optimize for features. The incentives are working exactly as designed.
This is why "we need to do better about tech debt" as a message from engineering leadership consistently fails. It's asking individuals to act against their incentives while leaving the incentive structure unchanged.
The performance review tells you everything
If you want to understand why your team has technical debt, look at the performance review criteria. What gets a developer promoted? What gets noticed in a quarterly review?
In most organizations, the answer is features shipped, tickets closed, projects delivered. "Refactored the payment module to be maintainable" rarely appears in a performance review as a positive signal. "Launched the new checkout flow two weeks early" does. Engineers are not confused about this. They optimize accordingly.
The same dynamic exists one level up. Engineering managers are evaluated on whether their team ships. A manager who delivers features on time but accumulates debt gets promoted. A manager who holds the line on technical quality but slips deadlines gets questioned. The org is consistent about what it values, even if it's inconsistent about what it says it values.
This is not a cynical observation. It's a structural one. Organizations allocate attention and reward to what they measure. They measure features and deadlines because those are easy to observe. They don't measure structural code health because it's hard to observe and the consequences are delayed. The delay between accumulating debt and paying for it is often long enough that the causal connection is invisible.
Why "20% time for tech debt" doesn't work
The common response to chronic debt is to allocate a fraction of each sprint — 10%, 20%, one week per quarter — explicitly for cleanup. This is well-intentioned. It also fails, predictably, for two reasons.
The first reason is that the allocation gets reclaimed when there's feature pressure, which is most of the time. "We'll make it up next sprint" is a sentence that gets said every time the tech debt sprint gets compressed. It almost never gets made up. The allocation was notional.
The second reason is deeper: debt remediation without changing the mechanism that produces debt just keeps you on a treadmill. You spend 20% of your time cleaning up messes while spending the other 80% making new ones at the same rate. The balance stabilizes at some level of accumulated debt, but it doesn't decline.
The mechanism has to change. That means changing what gets rewarded. It means treating a reliability improvement as a first-class delivery, not a maintenance tax. It means holding deadline-setting accountable for the downstream cost of the shortcuts those deadlines produce. It means asking, explicitly, what debt this sprint will create and whether you're willing to pay for it.
What leadership accountability actually requires
There are specific behaviors that separate leaders who manage debt from leaders who just complain about it.
The first is visibility. Most teams don't have a shared, maintained inventory of their technical debt. They have individuals who know about specific problem areas and a vague collective awareness that "the authentication module is a mess." Making debt visible — a living document, a service health score, a quarterly engineering review — creates shared ownership instead of diffuse anxiety.
The second is explicit trade-off language. When a deadline is set that requires cutting corners, the cut should be named, tracked, and assigned a remediation timeline. Not as a gotcha mechanism, but as a commitment device. "We're shipping with this known issue and we'll address it by Q3" is a different accountability structure than "we shipped fast and hope it works out." The first requires that someone actually schedules the Q3 work. The second requires nothing.
The third is defending engineering time against feature pressure at the leadership level. This is the hardest one. Individual engineers can't protect cleanup time when there's product pressure to ship. Managers can't protect it alone when their own managers are evaluating them on delivery velocity. It has to be protected at a level where the trade-off between long-term structural health and short-term feature velocity is actually being made. Usually that's VP-level or above.
The question every engineering leader should answer
If your team's technical debt is growing, the question to ask is not "how do we get developers to write cleaner code?" It's "what would have to be true about our incentive structure for developers to prioritize quality without being penalized for it?"
That question usually leads somewhere uncomfortable. It leads to compensation and promotion criteria. It leads to how you respond when someone asks for a deadline extension to do something right the first time. It leads to whether your own performance is measured in ways that incentivize you to push debt downstream.
Most technical debt conversations stay at the code level because the code is visible and the organizational incentives are not. But the code is a symptom. The root cause is always upstream — in who owns the deadlines, who sets the performance criteria, and what behavior the organization actually rewards when the tradeoffs are real.
Developers write the debt. Leadership builds the conditions that make it rational to do so. Fixing it requires addressing the conditions, not just the code.
Work with me
I consult with engineering teams on AI adoption, cloud architecture, and engineering effectiveness. If this post surfaced a challenge you're facing, let's talk.
Get in touch →Related posts
Explore more on these topics: