Defaults Nobody Revisits
Best practices are useful until they become borrowed conclusions that no longer match the system’s actual constraints.
Notes on Systems
For most of software history, change was expensive.
Humans wrote the code. Humans hesitated. Humans coordinated.
That friction was not a flaw.
It was the stabilizing force.
Most of our architecture patterns, monorepos, microservices, CI pipelines, code review, ownership models, were built around a quiet assumption:
Change would be limited by human effort.
That assumption is dissolving.
Software systems work because change is naturally constrained.
Not by rules.
By people.
A developer considers the blast radius before refactoring. A team weighs whether touching a stable subsystem is worth it. A reviewer pushes back when something feels unnecessary.
Those pauses shape the system.
They create stability not by policy, but by friction.
AI systems can now:
When production cost drops toward zero, the limiting factor shifts.
It is no longer writing code.
It is coordinating it. Understanding it. Trusting it.
And those costs do not shrink at the same rate.
What happens when 30% of your codebase changes in a week?
Not because strategy changed, but because optimization became automatic.
Reviews become procedural. Ownership becomes symbolic. Tests validate motion more than intent.
The system becomes fluid.
But not necessarily clearer.
We are entering a world where the cost of producing code collapses while the cost of understanding it remains stubbornly human.
That asymmetry is the real shift.
When coordination becomes painful, we add structure:
We call this scaling.
Often, it is complexity redistribution.
The system becomes easier for machines to operate on.
Harder for humans to reason about.
At some point, the coordination layer consumes more energy than the product itself.
The system becomes the product.
Software has never been hard because we could not produce enough code.
It is hard because:
A system optimized for constant motion loses the ability to say:
“This is done.”
Without that boundary, everything becomes provisional.
That is not agility.
It is restlessness.
When change is cheap, the scarce resources become:
These do not scale linearly with automation.
They become more valuable as production accelerates.
Not less.
AI expands what we can generate.
It does not automatically improve what we should generate.
Architecture was never just about managing code.
It was about managing change.
And in a world where change is abundant, the role of restraint becomes structural, not optional.
Protect the real bottleneck: human judgment.
Because once judgment becomes secondary, complexity becomes inevitable.
Best practices are useful until they become borrowed conclusions that no longer match the system’s actual constraints.
Speculative flexibility often looks responsible at first, then quietly raises the cost of understanding, testing, and changing the system.
Systems age whether we plan for it or not, and the best design decisions are often the ones that remain legible long after their original context is gone.
Newsletter
Get new essays on systems, AI, data, and software in your inbox. No launch theatrics, just thoughtful notes when something is worth sharing.
RSS is available too: subscribe via feed reader.