As is obvious from my recent posts about my affair with AI coding agents, I’ve been seeing a lot of benefits from these tools and having fun using them. In my day job, how we integrate AI agents into our work has also been a very hot topic of conversation with my fellow managers and with my team as a whole. We are really trying to figure out how these tools can be used in a responsible manner. I believe that these tools can be a benefit to engineers. Well, that isn’t 100% true. I believe that these tools can be a benefit to senior engineers. I have doubts about early career engineers.
In order to use these tools to develop software that is sustainable requires a level of wisdom that only comes through making a ton of mistakes. It requires building a heuristic of what good software is. It requires becoming a craftsman. And that only comes through trial and error. It reminds me of my childhood and the debates of when to allow students to use calculators in school. As a student I wanted to use one immediately to solve problems. But the powers that be prevailed and I wasn’t allowed to use a calculator to do X until I knew how to do X by myself; until I had learned how X was supposed to work so I could tell if the calculator was giving a result that “felt” right. Developing that intuition was an apprenticeship. So what happens when you no longer need apprentices? How do people learn that intuition?
That intuition is like a trapdoor function. It takes time to develop, but once you have it, it is quick to apply.
This topic has been nagging at me for a while. I am terribly worried that the advent of these coding agents is going to decimate the ranks of entry level engineers because the senior engineers can use the tools to orchestrate what is in effect an entire team of entry level engineers and use their intuition to guide and evaluate what they produce. Companies are looking at this and may decide that they no longer need to hire new engineers. In our market driven, quarterly profits are all that matter world, it makes sense. But what is it going to do to our industry in 10 years? or 20? I’ll be retired. And many of the engineers who grew up before these tools existed will be too. Will their be a next generations to pick up where we left off?
The counterargument is that the tools will keep getting better and the wisdom that I value so much about coding will no longer be required. Just like I don’t need to know anything about assembly. (I would argue, though, that I have the benefit of knowing how the hardware works at that level.)
I don’t know and maybe I am just caught in “old” thinking.
Is the answer to “restrict” the tools to be used only by people who have already learned how to write software? That could work, but it will never happen. If these tools become embedded in our lives, do they become the teachers? The new masters of the trade raising the next generation of apprentices?
I guess we’ll find out.