Technical Debt

Implementation choices that make systems harder to change later — now compounding faster in AI-generated codebases that re-derive decisions each session.

Also known as: technical debt, Technical debt (Osmani's framing within the triple model), Agentic technical debt, agentic technical debt, Contextual debt / architectural debt, contextual debt, muddling, tarpit, dock rot (doc rot), integration cost

Behavioral Code AnalysisVelocity Debt / Debt Accelerator

How authors use it

Oldest first (extraction date when no publication date is known).

AuthorTheir termTheir meaning
Technical Debt Quadrant
Martin Fowler · 2009-10-14
Technical DebtA metaphor for design/implementation choices that yield value sooner but impose ongoing costs later — evaluated by whether the metaphor is useful for thinking and communicating, not by a strict definitional test of intent.
How do software development teams manage technical debt? - An empirical study
Jesse Yli-Huumo, Andrey Maglyas, Kari Smolander · 2016-08-08
Technical debt (TD)"A badly structured technical solution or architectural design in the system, incurred by either an intentional decision or an unintentional side effect, which causes omitted quality and productivity." Explicitly excludes social/people debt, which the authors treat as a *source* of TD rather than TD itself.
Meet the Scope Creep Kraken
Tim O'Brien · 2026-04-16
integration costThe hidden expense of making every AI-generated feature work with every other feature — testing, maintenance, and coherence — that is obscured by the visible speed of generation.
[FULL WORKSHOP] AI Coding For Real Engineers - Matt Pocock, AI Hero
AI Engineer (channel); speaker: Matt Pocock (AI Hero) · 2026-04-24
dock rot (doc rot)Old PRDs/plans persisting in the repo and being treated as authoritative by future agents even though the code, names, and requirements have drifted. Pocock's answer: don't keep them in the repo; close them as GitHub issues — visible-as-done but retrievable.
Genie Tarpit
Kent Beck from Software Design: Tidy First? · 2026-04-29
muddlingThe common state where software mostly works but is very difficult to change
Genie Tarpit
Kent Beck from Software Design: Tidy First? · 2026-04-29
tarpitThe region on the features-futures diagram where genies get stuck — low on both axes, with complexity preventing escape
The Agentic P&L: Beyond the Empire of Headcount
Shreshta Shyamsundar and Anmol Jain · 2026-05
Contextual debt / architectural debtThe latent liability of poorly curated knowledge enclaves and inflated headcount; reframes hallucinations and large teams as debt rather than feature
The Founder's Playbook: Building An AI-Native Startup
Claude (Anthropic) · 2026-05-05
Agentic technical debtA new variety of technical debt specific to AI-generated codebases: debt that compounds because each session re-derives architectural decisions without persistent context, producing functionally adequate but structurally incoherent code. Distinct from traditional debt because it accrues silently and surfaces late.
The Intent Debt
Addy Osmani (addyosmani.com) · 2026-06-06
Technical debt (Osmani's framing within the triple model)Implementation choices that make the system harder to change later — tangled modules, leaked abstractions, deadline shortcuts. Lives in the code. Announces itself via slow builds, fragile tests, dread of touching a file. Increasingly cheap to take on AND increasingly cheap to pay down because an agent can refactor.
AI coding creates two kinds of debt. You're only measuring one
Antonija Bilić Arar · 2026-06-18
Technical debtUsed strictly as the contrast term: a known, well-understood engineering tradeoff that leaders already know how to find and repay (refactor). Its familiarity is what makes cognitive debt's unfamiliarity and irreversibility legible.
Does code quality still matter?
Mark Seemann · 2026-07-23
technical debt (in this essay's extended sense)Generalized beyond human-authored code to any accumulation of structural choices — even within a hypothetical LLM-native language or at the level of machine-code register allocation — that make a system more expensive to change later

Documents (38)

Propositions touching this concept (55)

By publication month, oldest first (extraction month when no publication date is known).

2009-10

2016-08

2018-03

2022-03

2025-09

2025-10

2025-11

2025-12

2026-02

2026-04

2026-05

2026-06

2026-07

2026-09

2026-10

Tensions

Can harness engineering actually solve the AI code quality problem?
from: What is the right approach to building harnesses around AI coding agents, and where are the limits?
Assessment: This is the central divergence in the literature. Osmani is most optimistic, operating from benchmark evidence that harness changes produce dramatic improvements on coding tasks. Böckeler occupies the middle ground, distinguishing solvable from unsolved harness domains. Beck is most skeptical, questioning whether harnesses address the root cause at all. The disagreement is partly empirical (what do the benchmarks actually measure?) and partly about scope (Osmani focuses on task completion; Beck focuses on long-term code value including flexibility). They may not be contradicting each other so much as talking about different time horizons: harnesses help with immediate task success, but the tarpit emerges over accumulated changes.
Will better models make current harness practices obsolete?
from: What is the right approach to building harnesses around AI coding agents, and where are the limits?
Assessment: Osmani makes the strongest case for permanence with concrete evidence of scaffolding migration. Beck keeps the door open for the Bitter Lesson hypothesis. The truth likely depends on the type of harness: mechanical safeguards (sandboxes, permission controls) may always be needed, while knowledge-transfer patterns (AGENTS.md, priming docs) may become less necessary as models improve at in-context learning.
Context size: should you shrink the problem to fit a small usable window (decompose / reset), or grow and trust a large window?
from: When working with AI coding agents, how should you select the model, its reasoning/effort level, and its context size for a given task?
Assessment: The apparent 'grow / trust the big window' position for CODING largely dissolves once retrieval is separated from coding — which is exactly Pocock's move ('good for retrieval, less good for coding') and musistudio's (longContext is a routed escalation, not the coding default). No text argues you should code inside a full 1M window. The only genuine pressure toward trusting a bigger window is the vendor-forward Fable 5 / Opus 4.6 claim that coherence loss is being engineered away — but that is a moving target (convergence 5), not a stable dial, and even the harness paper only relaxed context resets AFTER measuring that the new model no longer needed them. A secondary, live sub-dispute survives: reset vs compact. Pocock, the harness paper and best-practices favor clearing/resetting to a fresh agent; Hills and Osmani lean on compaction. The reset camp has the better argument on today's models — compaction preserves the same anxious agent — but the disagreement is real and unresolved. Verdict: shrink-and-decompose is the default for coding; grow only as an explicit retrieval escalation; prefer reset over compact unless the model version has demonstrably killed context anxiety.
Does AI adoption improve output and developer experience together, or do they decouple — with more output bought at the cost of the developers?
from: What is the future of software development in the agentic/AI age?
Assessment: This is the specific, evidence-bearing form of the optimism/pessimism split, and it cuts directly against any simple reading of 'DevEx = AgentEx' as good news. The harmony camp (Nilsson, Ördög) speaks from felt experience and in-group mood; the decoupling camp (Thoughtworks, Vella) and Fowler's own cited HBR study bring the harder data, and it shows output and wellbeing pulling apart. Notably Fowler holds both 'same-size teams do much more' and the burnout finding without resolving them — the single clearest internal contradiction in the corpus, and a sign the harmony framing is doing more reassuring than the evidence supports.
How should newly-empowered citizen developers be made safe — constrained platform, human stewardship, or supported API-first tooling?
from: What is the future of software development in the agentic/AI age?
Assessment: All three agree citizen developers are inevitable and must not be blocked, but the safety mechanism differs — encode it in a constraining platform (Ocytko), transfer it through human relationships (Laycock), or expose it as consumable interfaces (Bangser). Ocytko's platform-first case is strongest on the specific failure mode both he and Ördög name (non-engineers leaking or bypassing production-data access), which stewardship alone cannot prevent at scale. Laycock's stewardship answers a different problem — sustaining the junior-to-senior pipeline — that a platform does not. The positions are complementary in principle but compete for the same finite investment, and none supplies a concrete governance model for vibe-coded shadow IT.

Open gaps (81)