“Relax, this loop only runs forever sometimes.”
“Oh great, Schrödinger’s bug.”
That’s the snippet from the above AI-generated image I used to open a recent talk—and honestly, it captures today’s AI software development experience better than any chart ever could.
The 80/20 of AI-Generated Code
When I created that image, I had a simple prompt: generate a comic-style visual, with a robot nervously coding and a human trying to reassure it. The style came out perfect. The humor landed. But there was one problem—the arrows in the image pointed to the wrong characters. Fixing it would’ve taken more time than generating the entire image.
That’s AI in a nutshell today:
80% of the work gets done in 20% of the time. But the remaining 20%? That takes the other 80%.
I left the image as-is in my presentation as a visual reminder of this inverted Pareto principle. And that same principle applies when coding with AI. (Btw, if you are curious to see me wrestle with the 20% in public here's the talk I did recently)
From Legacy to Lightning
Traditional software development followed a familiar loop:
Think → Develop → Test → Repeat.
You got a ticket. You read the acceptance criteria. You built a feature. You moved on.
But AI development flips this. We now:
Think → Prompt → Wait.
We write a prompt. AI writes the code. And we watch.
It feels magical—especially the first time you watch a full React front end scaffold itself with hardcoded JSON as a backend in just a few minutes. You experience instant gratification. It's fast. It works. It feels like cheating.
But then, things break.
Schrödinger’s Bug
The AI generated a sign-in flow even though I never asked for it. Or it silently created too many files. Or it failed mid-install and didn’t tell me whether it was done or still thinking.
In traditional development, if your code breaks, you fix it.
In AI development, if your code breaks, you're not even sure what broke—or why.
And reviewing AI-generated code is like reading someone else’s code, every time. Even if it’s technically your project, it doesn’t feel like yours. Which leads to a new insight:
AI just made writing new code cheaper—but maintaining, reviewing, or modernizing that code just got more expensive.
Oversight Is Not Optional
This is why I emphasize oversight and systems thinking when working with AI.
We used to follow disciplined practices—Agile, Test-Driven Development (TDD), Continuous Integration (CI). Now, we must bring those same principles to the AI era. Otherwise, you’ll end up with massive codebases that “work” but nobody understands or wants to touch.
Craft, Reimagined
The loop of software craftsmanship—Think → Test → Develop → Refactor—still applies. But now we need new loops:
Think → Prompt → Observe → Verify
Define → Standardize → Prompt → Observe
Develop → Validate → Refactor
In other words, prompting is the new programming, but system design, clarity of thought, and contextual guidance are more important than ever.
Tools & Tactics That Help
If you're thinking of jumping in to code using AI, here’s what I recommend:
Ask AI to explain itself – Don’t just accept suggestions. Ask “Why?” Treat it like a junior dev pair programming with you.
Use MCP (Model Context Protocol) – Define goals, constraints, dependencies, and structure clearly for each session.
Focus on design first – AI can generate code. It can’t design resilient systems. That’s still your job.
Document as you go – Not just for others, but for AI. Feed your documentation back into the context.
Beware of new tech – When using bleeding-edge libraries, drop official docs into your project directory or context. AI struggles with what it hasn’t seen before.
Remember: AI building AI is still hard.
Final Thought: From Pilot to Air Traffic Controller
There’s a popular analogy where AI is your co-pilot. But that’s already outdated.
You won’t be piloting the software anymore.
You’ll be the air traffic controller, coordinating a sky full of AI agents writing and deploying code in parallel. The challenge won’t be writing better code—it’ll be directing the skies so that nothing crashes.
And in this new world, your most valuable skills won’t be knowing syntax or writing code.
They’ll be:
Thinking clearly,
Standardizing decisions,
Designing resilient systems,
And communicating all of the above—clearly and in writing.
Because soon, software development won’t be about typing fast.
It’ll be about thinking slow.