Matt Levine often writes about how crypto is rediscovering modern finance from first principles.[1] In a similar vein, when people get excited about approaches to improve agentic engineering, I can't help but think they are just talking about the practices we should already have in place as software engineers. The kind of work we typically cut because of time pressure.
A classic example is using an issue tracker to organize details about the change and describe the requirements so you can hand off the work to an agent. That way the agent can comment on the issue with questions and update the status as they work. This is just normal software engineering.
Some more examples:
- Documentation strings on methods.
- Descriptive pull requests.
- Keeping documentation up to date or even writing it in the first place.
- Writing meaningful tests or even just having tests.
- Automated linting to ensure consistency or even just having agreed upon code conventions.
- Planning, architecting, and receiving feedback on designs before implementing.
- Capturing notes from meetings, and confirming that everyone agrees on what was decided.
- Having conversations in open, searchable channels rather than only sending DMs.
Once again, these are all normal software engineering practices. I am relieved to see that people are excited to do them now. I'm just bummed it took agentic engineering to encourage the change. Why are we holding the bots to higher standards than ourselves?
A coworker recently said:
I reviewed a PR where I noticed some missing context on guiding principles. I'm now making changes to the documentation to encode those principles so other engineers' agents will respect them in the future. We could have updated the documentation in cases like this before, but realistically it wouldn't have much effect. It would have required having a talk with the whole team to be sure they memorized it in their heads. Now, with proper documentation structure, all engineers' agents will read and adhere to the documentation.
Software engineers have automated their work since time immemorial. I am not upset that we have code formatting checks in CI. If I wanted to draw a line in the sand on when to automate, I would look to James C. Scott's mētis from Seeing Like a State:
"mētis is better understood as the kind of knowledge that can be acquired only by long practice at similar but rarely identical tasks, which requires constant adaptation to changing circumstances... Knowing how and when to apply the rules of thumb
in a concrete situationis the essence of mētis."
Mētis is always local to a particular situation. Code syntax is a well described human construct [2]. Other engineering principles are free form and thus harder to prescribe and make legible. A written form of these rules will always be less flexible when dealing with the nuance of a particular issue. A written rule is not a judgment. To be sure, a frozen legible system is better than nothing at all.
Remember, programming sucks[3] in general. A friend at a company struggling to applying AI tools told me he just had to throw out a bunch of agent output:
I had to do a small refactor because my team decided to make changes on one of my dependencies, mid sprint, without communicating.
If "agentic engineering is just normal engineering with robots" then I have a corollary as well:
Anything that makes engineering harder makes agentic engineering much harder. Agents don't have the mētis to navigate the situation the way a person would.
If you are having a hard time with agentic engineering, stop, and think about whether normal software engineering is also tough for your company. Slapping AI on a dysfunctional system, be it people or software, will not fix your problems. Since 1975 we've known that adding more people to late projects makes them later. Adding a fake person is no better.
- As well as repeating all the same mistakes. ↩︎
- Though I admit this varies by language. The important thing is as an organization you will hopefully agree on one set of style conventions. ↩︎
- I remember reading this piece my junior year of university and thinking "Well this is what the rest of my life will feel like I guess". 12 years later and it's still accurate. ↩︎