·Tech Culture·5 min read

On senior engineers and good code

Questions that are more relevant than ever before.

The myth of progress is nothing more than the illusion of a creature that has lost its center and moves faster and faster precisely because it no longer knows where it is going.
—Julius Evola

Are we all seniors? Is anybody a senior?

I might be missing something, but copy-pasting from AI seem fundamentally incompatible with being an expert. In fact, if your judgment is based on experience entirely derived from generated code you are implicitly assuming that the measure of good engineering is whatever AI generates. Not only writing code is being delegated to AI, but also testing and reviewing it is delegated, directly or indirectly, to an external system that is not under your control. At that point, thinking of "being in control" is a generous concession.

Another issue I want to put forward regards the impoverishment of our problem-solving ability as well as the erosion of skill. This has been explored in several papers already. There isn't a single human skill or ability that is retained for long periods of time without practice, and I'm not talking about riding a bicycle or drinking a glass of water, but solving complex problems. In fact even a cursory look at the history of human endeavors is sufficient to reveal that constant practice and pushing the boundary are necessary to obtain mastery.

Coming back to the title of this article, the copy-paste cool-aid is shifting the perception of the collective understanding of what constitutes a project well executed, or good engineering design. I like to think that that's a conquest that cost us, in the past few decades, many failures and discomforts. Simply repeating "AI can do it", seems a vague, unfalsifiable claim that doesn't address any concern.

Many new developers have never read the code of a significantly large and complex software written entirely by humans, which means they've never put the kind of effort it takes to understand the logic behind the code, let alone reaching an understanding of the overall approach, philosophy and tradeoffs. They don't seem to be interested in writing code either, and how can they acquire that skill if they explicitly avoid taking the steps that are required to learn?

Conclusion

I'm aware that manually written code should not be glorified. The fact that much of what we do every day in software is simple, allows generated code to be sufficiently functional to be usable in many production systems. But this has always been true well before AI. Nothing wrong with reusing code that works. Automation is possible, at least to some extent. There is a price to pay though, and I think many don't want to look in that direction. Through vague, sensational language and unspoken presuppositions, many are agreeing to things they're not aware of. The new reality is to just accept AI code and close our eyes hoping for the best. It's less expensive to change our engineering culture and believe that everything is going to be fine and rationalize doubts away, than to actually build a solid foundation being aware of risks and tradeoffs. But alas, technological realism isn't as attractive as AI sensationalism.