Our Limits Are Not Our Imagination
AI doesn't just make coding faster—used well, it can make code more rigorous than anything we wrote unassisted: property-based testing, formal verification, strict architecture checks, and more review than ever. The ceiling isn't our imagination. It's the development system we build around the agent.

Production Is Where the Rigor Goes
In early February, Martin Fowler and the good folks at Thoughtworks sponsored a small, invite-only unconference in Deer Valley, Utah—birthplace of the Agile Manifesto—to talk about how software engineering is changing in the AI-native era. The longer I sit with this recap, the more troubled I am by what it doesn't say. I worry that the most respected minds in software are unintentionally replicating a serious blind spot that has haunted software engineering for decades: relegating production to the realm of bugs and incidents.
Read Now
Yesterday, my partner told me about his new automated pipeline from a conversation recording to publication of a whole podcast, with social media blurbs and graphics and everything. It did more than he'd predicted the agent could do.
"We are limited by what we can imagine," he said. Cheesy, but it kinda gave me goosebumps because it's (almost) true.
Most of the experienced developers I know are concerned.
Another way to code with AI
A few weeks ago, in a panel at ExploreDDD, Chris Richardson worried about all the AI code we're going to be stuck with for years.
In the audience, I looked to my left and thought: no. The future is different.
Next to me sat Gagan Vats. He's 24, he's never coded without AI, and he develops all his code with unprecedented rigor.
Property-based testing! Formal verification! Architecture tests and strict domain-driven design principles.
It helps that he works on greenfield software, so he can set this up from the start. Or from re-start, after he vibecodes the first version to get a grasp on the domain. We can do that now: we can prototype, throw it away, and then build solid code using practices I could only play with back when I wrote code by hand. (I can finally have all the observability I want.)
AWS uses formal verification for critical systems like S3. Now, we can do formal verification on whatever state machine we whipped up this morning! Agents make that level of rigor practical.
As Gagan put it: “Rigor is now the affordable default.”
AI code can be more rigorously developed and more thoroughly checked than what we write unassisted. We can have nice things!
Faster, or better?
When we use AI to do what we already do, only faster—then yeah, that code might be worse.
When we use AI to develop features better, new options are open to us. Our code can have consistent domain language, strict boundaries, gorgeous design docs, expressive traces, and all the -ilities we get from sixteen different code reviewers who have more time and attention than I ever will.
Avdi Grimm uses a software factory process in which agents review code from multiple perspectives. His code gets more review than it did before AI, not less. The quality is higher.
If the AI is writing worse code, step back. Change the development system. Add deterministic tests. Instrument the software so you can see what it does. Remove deprecated patterns. Evaluate and iterate on your reviewers. Each feature can go through the whole process in less time than we used to spend writing a few unit tests.
Better is safer. Safer is smoother. Smoother is faster.
Imagine a better system
Today, I told Diana Montalian what I felt about "We are limited by what we can imagine."
Diana objected:
“Without systems thinking, your imagination will far outstrip what the AI can do.”
We can imagine all kinds of features and ask an agent to build them, but the agent doesn't magically make the software good. That's a property of our guidance, the agent's capabilities, and the whole development system.
So let's imagine what that system could be.
What if every change got the rigor we used to reserve for the most critical systems? What kinds of verification, architecture checks, and observability will be in the normal path from idea to production? And what kind of impact reporting will we demand after production?
AI expands what kinds of systems are possible. Great systems expand what AI can do, and what we can do.
We are limited by the systems we can imagine.
