The 42 Principles · Principle XXII
Complexity Is a Cost
Technical, operational, cognitive, and human costs created by unnecessary complexity.
People often think of complexity as a technical problem.
More code.
More servers.
More dependencies.
More configuration.
More moving parts.
Those are certainly costs, but they are only the costs we can easily measure.
The true cost of complexity extends far beyond the project plan or the budget spreadsheet.
A fragile application consumes support hours.
An unclear architecture slows every future enhancement.
A rushed workaround becomes a permanent dependency.
A difficult deployment erodes confidence.
An unstable system quietly steals evenings, weekends, and holidays from the people responsible for keeping it alive.
Complexity rarely sends its bill directly to the person who created it.
A developer builds a fragile application.
The deployment becomes unpredictable.
Support incidents multiply.
An engineer stays late to keep the system running.
Then he stays late again.
And again.
Dinner grows cold.
His children begin asking why Daddy is never home.
His wife carries the evening alone: meals, homework, baths, disappointment, and the burden of explaining an absence she did not create.
One night, already overwhelmed, the cat gets under her feet.
She kicks it away in frustration.
The cat has never seen the application.
It does not know the developer who designed it.
It has no understanding of technical debt, brittle dependencies, or missed refactoring.
Yet its fear is still connected to those decisions.
That is how complexity behaves.
Its consequences travel.
They move through systems, teams, schedules, relationships, and homes until someone far removed from the original choice is forced to pay.
The farther the consequence travels, the harder it becomes to trace back to its source.
That is why complexity is so easy to underestimate.
Its true cost is rarely contained in the project budget.
Complexity always sends a bill, but it rarely sends it to the person who created the debt.
Related Principles
Continue the idea.
These Principles share themes with Principle XXII.
Principle XXIII
Design for Failure
Resilience, graceful failure, recovery, preparation, visibility, and accepting failure as a design constraint.
Read Principle XXIII →Principle XXV
Every Dependency Has a Price
Capability, coupling, concentration risk, external reliance, and understanding what every dependency can cost.
Read Principle XXV →Principle XXXVII
Solve Real Problems
Prioritization, scope, user needs, problem selection, opportunity cost, and refusing to optimize what does not matter.
Read Principle XXXVII →Principle III
Understand Before Optimizing
Root-cause thinking, measurement, troubleshooting, constraints, and separating symptoms from causes.
Read Principle III →