I’m such a fan of agentic coding that if you heard me talk, you’d think I hate it.
I know that’s a weird thing to say, but it’s true. Right now I’m racing Claude Code creator Boris Cherney to see who can go the longest delivering software without actually writing a line of code. He’s winning because I foolishly changed a button label on my own instead of burning top-tier credits, but if not for that, I could point to multiple production solutions I’ve shipped without writing a line of code. With that said, I know enough about agents to remain skeptical about claims we don’t need humans in the software engineering process. What has me staying up the most at night? The fact even the most advanced LLM was designed for coherence (looking right) instead of correctness (being right.)
Robots started off sounding smart and never left
Back in the days of yore when ChatGPT was just a chatbot (you know, like 2023), the idea of agentic code was still months away. OpenAI couldn’t predict everything we would use it for. They knew they needed users so chose to prioritize adoption. Having a robot talk like a human was a huge selling point and is one reason that LLMs continue to optimize for sounding plausible.
If we were only talking about chatting, that’s fine. However, now we’re talking about using LLM-powered agents to build mission-critical software in a single prompt and shipping that software to production. And the director of software development in me doesn’t like that at all.
I’m not the anti-AI villain
Which is why I always seem to be such a critic of agentic coding. I’m not. I’m really not. I am, however, still very skeptical that generating code with AI is the end of the software profession. Putting software in production is neither horseshoes nor hand grenades. Close doesn’t count. Correctness is all that matters and for all the information that resides in an LLM, what is “right” is not stored in its encoded weights.
Only humans can determine what’s right. Only humans can legally take accountability for a piece of software and say that it meets given requirements, it conforms to applicable laws and it can be supported once it’s in production. At the end of the day, if the software fails, only humans get sued. That’s why only humans should have the final say if software is ready to ship.
Looks like we need each other
The only way we move forward confidently and with minimal Severity 1 bugs is through AI-enabled engineering. In The AI-Enabled Engineer, I argue that the future of software engineering is synthesis rather than replacement between AI and humans. Humans make decisions. AI makes code. Together, they make magic.
AI-Enabled Engineering in the age of orchestration
The AI-Enabled Engineer was written in the infancy of agentic orchestration. Tools like OpenClaw were just entering the arena, so a lot of my arguments in the whitepaper don’t talk about multi-agent flows going from requirement to user story to code, but my opinion on this has not changed. Even if you have the most sophisticated flow that produces dozens of PRs per day, the role of the human hasn’t changed: add friction and optimize for correctness. The AI still does a lot of work, but the human still needs to do their part.
If there were a contest for agentic coding’s biggest fan, I’d happily toss my name in the ring. It’s just that I understand enough about how LLMs work that I’m not ready to put the future of my company in their hands yet. Maybe the state-of-the-art changes, but for now, I urge everyone to use agents to build as much code as you possibly can. Then, I urge you even more to check that code. Make sure it works. Make sure it didn’t break something else. It may feel like checking coherent code takes time, but fixing production bugs, attending depositions, and repairing damaged reputations takes far, far longer.
Comments
Loading comments…