← Back to Blog
The Bar Was Always There

The Bar Was Always There

Damien Chomat
EngineeringLeadership

I keep a playbook and a set of principles on this site — architecture patterns, engineering concepts, opinions about how teams should operate. Reading through them recently, one thing stands out: almost none of it is new. Most of these ideas have been in textbooks and conference talks for twenty years.

The gap isn't between knowing and not knowing. It's between knowing and actually doing it. Sometimes leadership doesn't allocate the time. Sometimes engineers take the shortcut because good enough ships faster. Sometimes the iteration budget genuinely runs out and the feature needs to go. Test coverage slips. Refactors get deferred. Documentation turns into a graveyard of stale READMEs. The reasons vary — the outcome doesn't.

That gap is closing. And it's not because the discipline finally caught up.

The Cost That Kept Dropping

The shift I keep seeing — in my own work and in teams around me — isn't about new ideas. It's about old ideas getting cheaper to execute.

Writing a thorough test suite for a module used to be a half-day investment. Exploring three architectural alternatives before committing to one meant days of prototyping. Refactoring a working system to be cleaner — not broken, just messy — was a luxury most roadmaps couldn't justify.

AI tools didn't change what "good" looks like. They changed the cost of getting there. The practices are identical. The economics are different. A test suite that took four hours to write now takes forty minutes of steering. An architectural spike that blocked a full day can happen in a conversation. The refactor that never made it onto the sprint gets done between tasks.

The point isn't whether AI writes better code. It's that iteration got cheap enough that doing things properly stopped feeling like a luxury.

What Disappears

When the cost of iteration drops far enough, the excuses start to dissolve.

"We don't have time for tests" stops making sense when tests take a fraction of the time they used to. "We'll clean it up later" loses its weight when later is now and cleanup is fifteen minutes. "Nobody reads the docs anyway" becomes harder to justify when keeping them current is no longer a project in itself.

The bar didn't move. It was always there — in every engineering manifesto, every architecture book, every retro where the team agreed they should have tested more. What moved was the cost of meeting it.

And this is where it gets uncomfortable for experienced engineers. If the gap between what you preach and what you practice was held open by effort and time — and that constraint just shrank — then the gap is now a choice. Not a circumstance. A choice.

The Trap on the Other Side

But cheap iteration has a shadow. When every idea is forty minutes away from a working prototype, the temptation is to build all of them. Three architectural spikes become three half-integrated approaches. A feature that should have stayed on a backlog gets shipped because the effort felt negligible. Scope creeps not through carelessness but through capability — you can, so you do.

The result is a system that no single person — and eventually no AI — can hold in their head. Complexity doesn't care whether it was cheap to produce. Sure, most of it reverts as fast as it was built. But the parts that reach production — the schema migrations, the API contracts, the features users now depend on — those don't revert. They compound.

The old discipline was knowing what corners to cut when time was scarce. The new discipline is knowing what not to build when building is nearly free. That's a harder muscle. Saying no to something that would only take an afternoon requires a clarity of purpose that "we don't have time" never demanded.

Direction Is What's Left

When iteration is nearly free, execution stops being the bottleneck. The constraint shifts to direction — taste, judgment, a point of view about where the product should go and what "better" actually looks like at each stage.

This is the part AI doesn't solve. It can iterate faster than any human, but it has no opinion about where to go. It'll refactor your code in any direction you point it. It'll generate tests for any behavior you describe. It'll prototype three architectures — but it won't tell you which one is right for your users, your team, and the next two years of your product's evolution.

The most valuable skill in this landscape isn't technical execution. It's the ability to look at a product, a codebase, a team — and know what "better" means in this specific context. That's always been true. But when execution was the bottleneck, you could spend an entire career sharpening that muscle and still feel productive. Now the constraint has moved — and the muscle that matters is knowing where to point all this cheap execution. That's a genuine rewiring, not a small adjustment.