liveBook · Manning

Technical debt

As explained in Think Like a CTO

Technical debt is the accumulated cost of choosing short-term technical solutions that make future software maintenance or change more difficult.

Technical debt is the future maintenance and change cost created by short-term technical shortcuts. It accumulates when teams hardcode values, perform minimal checks, skip security or upgrade patches, or otherwise defer more durable solutions. Some debt is a reasonable way to move quickly, but it needs deliberate repayment before its cost produces outages, rework, or excessive complexity. section 9.6

Manage technical debt as an operational responsibility:

  • Track known debt during code review, releases, and upgrades, then add it to the backlog even when automated analysis cannot detect the design problem. section 9.6
  • Set repayment capacity according to organizational context; a suggested range is 10% to 30% of team output, with a rest period after every two or three sprints as one possible mechanism. section 9.6
  • Measure what can be measured with code-quality tools such as SonarQube, while retaining human judgment for short-term fixes that are syntactically valid but too narrow. section 9.6
  • Avoid client-specific branches in shared code; prefer broadly valuable roadmap work, import or export paths, APIs, or plugin patterns that extend the system without changing its core. section 9.8

The client-specific shortcut

A conditional such as “if (Client == XYZ)” may satisfy one request quickly, but repeated client exceptions make the code harder to test and harder to change. A separate repository branch is worse: every enhancement and bug fix must be applied and tested across active branches, effectively doubling the workload. section 9.8

Figure 9.3 Servicing technical debt

Use the figure to orient a repayment discussion around servicing technical debt rather than treating it as an invisible maintenance burden. section 9.6

How Think Like a CTO covers it

How deep it goes
Explains causes, repayment allocation, measurement, backlog capture, and sprint practices, but stops short of implementation-level remediation.
Examples
Uses skipped vehicle maintenance, hardcoded values, client conditionals, and separate client repositories as concrete debt scenarios.
What you can do after
Operate a debt-management practice using code-quality tools, backlog entries, review checkpoints, repayment capacity, and extensible client-request designs.
How it connects
Connects technical debt with code review, release management, backlogs, code-quality tools, APIs, plugin patterns, and version control.

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 Think Like a CTO. The section links point to the parts of the book it draws on.