Tool or not
There is an interesting discussion happening right now around whether AI is a tool or not. The core argument seems to be the necessary skill. People argue that sufficiently advanced AIs will require no skill to use; thus they are not tools. Now while this argument could be true in a hypothetical future, I do not find it correct for the current state of AI.
The current best usage of AI seems to be the centaur. A symbiosis of a skilled software engineer and AI can achieve far better results than either could alone. I’ve been working as a centaur for quite some time and I find it to require a lot of skills; in fact I would argue I had to learn a lot more about architecture, frameworks, system design and requirements engineering than ever before.
Experience as a centaur
I have evidence for this, as I work with junior engineers, who are massively worse at the centaur lifestyle. In fact the less technical skill someone has, the more AI dominates them. AI fills in the blanks and the less experience someone has, the more blanks there are. The worst AI slop always comes from someone giving up control. This is also true for me. I have had AI build features that I didn’t fully understand; all of them had to be refactored down the road.
Software engineering is an interesting area, as even a slight change in a requirement can have a massive impact on the cost of development. That’s where someone with little technical skill falls flat and where unchecked AI can have disastrous consequences. I’ve seen entire features duplicated and hundreds of files touched, simply because someone didn’t have the exact vision of the required code for the feature in his head or wasn’t willing to push back on stupid requirements.
Autocomplete for the mind
The best formula right now seems to be to use AI as an autocomplete for the mind. Even before AI, you were able to put together grammatically sound but logically incoherent sentences with an autocomplete. Obviously writing well still required great skill, even with an autocomplete. It especially required you to have the writing in your head, and autocomplete was simply a tool to put it on the metaphorical paper.
AI is the same, just for everything. I find AI can produce fantastic output at an insane speed, as long as you understand what you are building. You still need to question the requirements, understand their impact and evaluate how it fits in the codebase. Obviously AI can assist with this; in fact I find it fantastic to challenge every single idea I have, but I still find the judgement of a senior engineer vastly exceeds the judgement of an AI.
The future
I try to avoid predicting the future, as I am mostly wrong about that. We obviously live in interesting times and AI changes fast. It’s entirely possible that all of this is irrelevant in a year and technical skill is obsolete.
However, I find the trajectory to be the opposite. If you truly understand what you are doing and use AI as an autocomplete, you are far more productive than someone that gives up his brain to AI. I have seen no evidence of this trend reversing. It requires great skill and understanding to steer AI and great technical judgement to push back against AI.
That’s why I’m firmly in the “AI is a tool” camp. The output of the current AI is heavily determined by skill. It’s just a different kind of tool than an IDE or a shovel. Instead of wielding it, you use it as a translator between your mind and reality. So the skill sits in the artifact you are producing, not the usage of AI itself.