Cruft
Cruft is unnecessary or redundant software code and structure that increases complexity and makes a system harder to change or maintain.
Architecture Modernization: Socio-technical alignment of software, strategy, and structure
Cruft is avoidable software complexity caused by a codebase differing from its ideal structure or implementation without changing its intended functionality.
- How it is used
- Diagnoses avoidable complexity that raises maintenance costs and slows change, especially in supporting subdomains.
- How deep it goes
- Defines cruft, identifies structural forms, and relates it to modernization strategy without prescribing detailed refactoring techniques.
- Examples
- Uses Gran Turismo’s penalty model and the suspect supporting subdomain as examples of complexity assessment.
- What you can do after
- Evaluate whether complexity is avoidable, prioritize reduction, and choose coordinated modernization or lightweight maintenance.
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.
- How it is used
- Frames cruft as a design-and-architecture consequence that motivates explicit decisions and collaborative modeling.
- 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.
Read how Collaborative Software Design: How to facilitate domain modeling decisions explains cruft →
Related concepts
- complexityproduces · Complexity is the degree of difficulty in understanding, analyzing, changing, or operating a system or problem, arising from its structure, behavior, or interacting parts.
- technical debtpart of · Technical debt is the future cost, effort, or risk created by technical choices or deferred work that make a system harder to change, maintain, or operate.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

