liveBook · Manning

Technical debt

As explained in The Art of Code

Technical debt is the future cost of maintenance and change created by expedient technical choices or unresolved implementation deficiencies.

Technical debt is the future cost of shortcuts, outdated dependencies, tangled design, or unresolved implementation deficiencies. Like financial debt, it accumulates interest: later changes become harder, slower, riskier, and more expensive. section 3.1.1

Technical debt accumulates when:

  • A deadline encourages a temporary solution instead of a clean design. section 3.1.1
  • External systems preserve outdated protocols, or libraries and frameworks remain unsupported and unsecured. section 3.1.1
  • Business logic, database queries, and user-interface code become entangled, making debugging and extension error-prone. section 9.1
  • Generated patches solve immediate failures without restoring a coherent design or shared understanding. section 1.2.2

A patch loop

An AI agent produces an incorrect first draft. Repeated requests to fix it add patches rather than improving the underlying solution. The code may compile and pass tests, yet later bugs or requirement changes force developers to reverse-engineer code they never fully understood. section 1.2.2

Durable design limits debt by separating concerns: distinct modules and protected domain logic make systems easier to extend and allow technical details to change without rewriting core rules. section 9.1

How The Art of Code covers it

How deep it goes
Explains causes, compounding consequences, and architectural responses, but does not provide a debt-measurement method or repayment workflow.
Examples
Uses AI-generated patch loops, outdated protocols, obsolete libraries, spaghetti code, layered architecture, modules, and hexagonal architecture.
What you can do after
Evaluate expedient technical choices and recognize when clearer boundaries are needed to keep software changeable and understandable.
How it connects
Connects technical debt with code complexity, comprehension debt, maintainability, software architecture, dependencies, and separation of concerns.

Also explained in

Compare how 10 books explain technical debt →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of The Art of Code. The section links point to the parts of the book it draws on.