liveBook · Manning

Technical debt

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

The future cost of deliberately choosing a less-than-ideal software design or implementation in order to deliver value sooner.

Technical debt is the future cost of an explicit architectural decision to use less-than-ideal design or code so value can be delivered sooner. Like financial debt, it creates an obligation to repay through later work. section 3.1.5

The distinction from ordinary cruft matters: deliberate debt acknowledges stakeholders, risks, and consequences, while implicit design problems may arise without awareness and create unexpected risks. Making decisions explicit helps teams manage the resulting trade-offs. section 3.1.5

Unpaid technical debt can lead to:

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Defines deliberate debt, distinguishes it from implicit cruft, and outlines delivery and social consequences without detailing repayment procedures.
Examples
Uses inability to add functionality, slower production delivery, hacks, bugs, frustration, and communication breakdown as consequences.
What it assumes
Assumes familiarity with software design and architecture while teaching the distinction between deliberate debt and unintended cruft.
What you can do after
Evaluate deliberate design trade-offs and make their risks and consequences explicit through collaborative modeling.
How it connects
Connects technical debt with architectural decisions, cruft, implicit architecture, collaborative modeling, and social dynamics.

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 Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.