liveBook · Manning

Cruft

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

Poorly written, redundant, or otherwise unnecessary software code and structure that makes a system harder to change or maintain.

Cruft is poorly written or redundant code and structure that makes a system harder to change and maintain. It can prevent new functionality, slow delivery, and encourage bug-producing hacks. section 3.1.5

Cruft becomes costly when it leads to:

Cruft may result from conscious technical-debt decisions made to deliver value sooner, or from implicit design decisions caused by limited skill or awareness. Making decisions explicit helps expose risks, alternatives, and consequences before they become harder to manage. section 3.1.5

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

How deep it goes
Distinguishes deliberate technical-debt cruft from unintended cruft caused by implicit design, but does not detail remediation steps.
Examples
Uses blocked functionality, delayed delivery, bugs, and developer hacks as concrete consequences of cruft.
What you can do after
Evaluate cruft by its origins and consequences, then support decisions that make risks and trade-offs visible.
How it connects
Connects cruft to technical debt, architectural decisions, collaborative modeling, architecture, and social dynamics.

Also explained in

Compare how 2 books explain cruft →

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.