Tech debt = near-zero steady state
Tech debt near-zero steady state is the L5 condition where technical debt does not accumulate over time because the rate of debt remediation equals or exceeds the rate of debt creation.
- ·Tech debt is at near-zero steady state (new debt is paid down within the same sprint it is created)
- ·Agent fleet maintains, upgrades, and patches codebases 24/7 without human scheduling
- ·CVE remediation is autonomous: detect vulnerability, generate fix, test, and ship
- ·Mean time from CVE disclosure to deployed fix is under 24 hours for critical vulnerabilities
- ·Tech debt score (measured by static analysis) has been stable or improving for 6+ months
Evidence
- ·Tech debt trend dashboard showing near-zero steady state
- ·Agent fleet activity logs showing 24/7 maintenance operations
- ·CVE remediation traces: detection to deployed fix with timestamps
What It Is
Tech debt near-zero steady state is the L5 condition where technical debt does not accumulate over time because the rate of debt remediation equals or exceeds the rate of debt creation. This is not a debt-free codebase - debt is continuously created by feature development under time pressure, changing requirements, and evolving standards. It is a codebase where debt is continuously eliminated as fast as it is created, producing a stable, low-debt baseline rather than the compounding backlog that characterizes L1-L2.
The mechanism is continuous agent-based maintenance. At L5, an agent fleet runs 24/7 against the codebase: updating dependencies, applying refactoring recipes, migrating deprecated patterns, resolving lint warnings, and improving test coverage in areas where new features left gaps. These agents operate asynchronously, produce PRs that are reviewed on a lightweight SLA, and collectively handle more debt reduction per day than any human team could produce. The rate of automated debt reduction is high enough that the debt inventory stabilizes near zero rather than growing.
This is qualitatively different from the L3 state of "agents reducing debt." At L3, agents work through a backlog - there is a queue, and the queue is getting shorter, but it started from a large accumulated balance. At L5, there is effectively no backlog because debt is addressed before it accumulates into a backlog. A deprecated API introduced in a library update is replaced within days of the update, not months. A lint rule violation introduced in a feature PR is resolved in the next agent cycle, not flagged and deferred. The debt inventory is managed at the velocity of creation, not at the velocity of a periodic cleanup project.
The organizational implication is significant: at L5, engineering velocity is no longer capped by accumulated technical debt. Teams work in a codebase that stays clean because it is continuously cleaned. The "this area is too messy to touch" experience that characterizes L1-L2 development is absent because the messy areas are continuously improved. Developer experience is measurably better, and the productivity ceiling of a high-debt codebase is removed.
Why It Matters
- Removes the velocity ceiling imposed by accumulated debt - In high-debt codebases, developer velocity declines over time as debt accumulates; in near-zero steady state, velocity is stable or improving because the debt ceiling is continuously removed
- Eliminates the debt paydown project category - At L5, there are no multi-week migration sprints, no "tech debt Q3" initiatives, no debt reduction projects competing with features; debt is handled continuously at maintenance cost, not project cost
- Produces consistently high developer experience - Developers working in a near-zero debt codebase report higher satisfaction, faster onboarding, and less time spent fighting the codebase; the quality of the work environment is a direct function of codebase quality
- Reduces incident rate from debt-related failures - A significant fraction of production incidents trace back to deferred maintenance: outdated dependencies with security issues, legacy code paths with insufficient test coverage, stale configuration that no longer reflects current infrastructure. Near-zero debt steady state addresses the root causes of this incident category.
- Enables compound improvement - A clean codebase is easier for both humans and agents to improve further; near-zero debt creates a positive feedback loop where quality improvements compound rather than being offset by accumulating debt
Getting Started
- Measure current debt velocity - Before attempting to reach steady state, establish baseline metrics: debt items created per sprint, debt items resolved per sprint, net debt growth rate. Without this baseline, you cannot determine when you have reached steady state.
- Achieve backlog clearance first - Near-zero steady state is not achievable while starting from a large accumulated backlog. The path to steady state runs through L3 and L4 backlog clearance. Ensure the inherited debt backlog is near-empty before targeting steady state maintenance.
- Establish debt creation detection - Instrument the development workflow to detect debt creation: lint warnings in new code, deprecated API usage in new PRs, dependency bumps that immediately fall behind. These are the inputs to the maintenance agent's work queue.
- Configure agents for proactive maintenance - Move from reactive debt resolution (agent addresses items from the inventory) to proactive maintenance (agent monitors for debt creation and addresses it before it enters the inventory). This requires agents with code review integration and continuous monitoring capabilities.
- Set a debt age limit - Define a policy: no debt item older than 30 days in the codebase. Items older than 30 days that have not been addressed by an agent are escalated to human review. The 30-day limit prevents steady state from silently degrading into a slow-growth backlog.
- Review steady-state metrics monthly - Track debt inventory size, debt age distribution, and agent PR merge rate. If the inventory is growing, the agent's output rate needs to increase or the debt creation rate needs to decrease. Monthly review ensures the steady state is actually maintained, not assumed.
The transition from "agents reducing the backlog" to "agents maintaining near-zero steady state" requires a configuration change, not just continued operation. The backlog-clearance agent is optimized for throughput: process items quickly, batch similar work, prioritize by severity. The maintenance agent is optimized for coverage: catch every new instance of debt creation, address it within the SLA, never let anything slip into backlog. These are different operational profiles.
Common Pitfalls
Declaring steady state before the backlog is clear. If the inherited debt backlog is not cleared first, "steady state" maintenance will be continuously overwhelmed by the historical backlog. The sequence matters: clear the backlog, then transition to maintenance mode.
Not accounting for drift in debt creation rate. A new framework release, a major refactoring effort, or a large new feature area can temporarily increase the debt creation rate above the agent's maintenance capacity. Monitor the debt age distribution regularly; if the 90th percentile age is growing, the maintenance capacity needs to increase.
Automating without human oversight. Near-zero steady state does not mean zero human oversight. The agent fleet requires periodic review: are the PRs it is generating correct? Are there categories of debt the agents are missing? Are there new patterns being created that the agents do not yet recognize as debt? Monthly human review of agent activity is the minimum viable oversight.
Treating all debt equally in steady state. Not all debt requires the same urgency. Security debt (CVE-exposed dependencies) should be addressed within hours, not within the standard 30-day limit. Architectural debt in rarely-touched code may safely have a longer limit than debt in hot-path code. The steady-state policy should have tier-based SLAs, not a single limit for all categories.
Letting test debt accumulate while fixing other debt types. Test debt - gaps in coverage created by new features, flaky tests that obscure signal, tests that verify implementation rather than behavior - is the debt type that most undermines the agent's own effectiveness. Agents that cannot validate their output reliably cannot operate at steady-state autonomy. Test debt must be a first-class target for the maintenance agents, not an afterthought.
How Different Roles See It
Bob's organization has been at L4 for 18 months. The migration backlog is cleared. Dependency versions are current. The dead projects have been modernized or retired. The debt inventory, which had 240 items when he started tracking it two years ago, now has 12 items, all recent and most in review. For the first time in his career running this team, the codebase is clean.
The transition to steady-state maintenance requires a shift in how Bob manages the agent fleet. The backlog-clearance agents that ran high-throughput migrations are replaced by maintenance agents that run on a daily cycle, monitoring for new debt creation and addressing it immediately. Bob should define the steady-state policy: what categories of debt, at what SLA, and what escalation criteria. He should also communicate to the team that the old concept of "tech debt reduction initiatives" is retired - debt is now handled continuously by the maintenance system, and developers should not expect to spend sprint time on debt cleanup.
Sarah's metrics look different at L5 than at any previous level. Developer velocity is no longer eroding over time as it was at L1-L2. PR cycle time is stable rather than growing. Incident rate attributable to technical debt has dropped to near zero. Onboarding time for new developers has declined because the codebase is comprehensible and documented.
Sarah should establish a "codebase quality index" as a standing organizational metric: a composite of debt inventory size, average dependency age, test coverage, and lint error count. At L5, this index should be stable or improving. If it degrades, the maintenance system is not keeping up and needs attention. Publishing the codebase quality index monthly gives the organization visibility into technical health at a glance and makes the investment in agent-based maintenance legible to non-technical stakeholders.
Victor manages the agent fleet that maintains steady state. His weekly routine has changed completely from L1-L2: instead of firefighting debt-related incidents and manually executing migrations, he reviews agent activity logs, tunes agent configurations, and handles the escalated items that agents could not resolve autonomously. His workload related to technical debt has dropped from 60% of his time to approximately 15%.
The primary challenge at L5 for Victor is maintaining the agents themselves. The agent configurations, recipe libraries, and task specifications that power the maintenance system are themselves code that ages. New framework versions require new recipes. New debt patterns emerge that the existing agents do not recognize. Victor's job has evolved from "staff engineer who also does debt management" to "platform engineer for the debt maintenance system." He is now building and maintaining the infrastructure that maintains the codebase, rather than directly maintaining the codebase. This is the characteristic shift of L5: the humans build the systems; the systems do the work.
Further Reading
From the Field
Recent releases, projects, and discussions relevant to this maturity level.
Where does your team actually sit on this?
This guide describes one level of one area. Run the assessment to place your team across all 16 areas, see which gates you have passed, and get a report you can take to your stakeholders.
Tech Debt & Modernization