Feral coding agents vs. hand-editing code
For a web application I was developing last week, I noticed something interesting.
Because there are times when using a coding agent seems more work than just editing the code manually.
Not always; to be sure, using the agent is often the faster route. That's my experience. But I did not quite understand why it was not ALWAYS faster.
Here's the epiphany I had, which I have never seen anyone write or say before:
If the code is organized just right, adding certain valuable features becomes so simple, it's quickest to do it by hand. And it's possible to use the coding agent to get the code organized "just right".
I realized this while using my coding agent to develop a set of view functions in a Django webapp. A complex process that went much faster thanks to that coding agent.
And I suddenly found I had a mini-framework built into the structure of the code, that made adding new views extremely straightforward.
So straightforward, that I could do it faster, and with less cognitive load and WAY less stress, by editing the code directly. Rather than try to explain it in the sloppy imprecise semantics of English, as the input to a aggressively non-deterministic code generator, and praying this feral thing did what I actually wanted.
The obvious limitation is that it's a mere slice of the development process. Adding that specific type of view.
But there's no reason this cannot be done again, with difference slices. Using the coding agent to smoosh the code into a shape that turns hand-editing the code into the easiest thing in the world, for some high-value task or another.
So this is the mindset I am leaning into now, when using coding agents:
How can I end up with a codebase that is super easy to extend, in the ways I want to extend it?
It is interesting how many good code quality factors fall out of this, like readability, modularity, et cetera. Good for humans, and good for LLMs.
Reply and tell me if you have experienced this yourself, or what you think of the idea.