← Home

Please, write the code

No matter how fast agents can generate code: please, let's still write it ourselves.

Yes, agents are remarkably fast at producing code. But we know (deep down, you know it too) that unchecked agent output is mediocre at best. One-shot solutions to small problems are often reasonable, sometimes matching what you'd write yourself. But complexity changes everything. Context windows are limited. Recall is imperfect.

Perhaps tomorrow these limitations will vanish, but I suspect we're playing whack-a-mole against a moving target: it's quite clear that quality degradation scales with codebase complexity. It would be fascinating to measure this ratio: is it linear? Exponential? Maybe somebody already did measure it, actually. Either way, the pattern is clear.

So: write the code. Understand it. Maybe it's just me, but I can't talk about something I don't understand, let alone reason about it. The discomfort of working blind is unbearable. Knowing how the damn thing works is what makes you ask better questions about it, including asking them to a model.

Knowing the implementation because you wrote it makes you better at questioning it. It makes you more precise at your prompts, and it makes you more deliberate in your choices, like accepting or refuting an agent's first or second idea.

The fantasy of pure architecture, planning the system and letting agents handle implementation, doesn't work for serious software.

Implementation matters. The minute details matter.

This isn't philosophical, it's painfully concrete. You feel it when production breaks. When a data migration fails. When any of a million things go wrong, because they always have. Software breaks, that's a rule of life. The pain makes it real, the pain teaches you that details matter.

Use your agents. Use your LLMs. Let them help you write better software. Possibly, faster than without them. But not in the reckless way they tempt you toward. "Faster" is relative: being 1.5x more productive without outsourcing the thought process beats flexing "10x lines of code" that break ten minutes in (and for goodness' sake: lines produced is not a meaningful metric).

Use these tools as research companions. Use them to analyze code you wrote and understand, to improve it. They can spot bugs, suggest missing tests, perform all sorts of useful work. But they shouldn't run the whole process.

Not yet, anyway.