Every time a new AI model is released — especially after Fable and now with GPT-Astra — everyone exclaims, ‘Software engineering is dead’. I decided to write this after watching a well-known data scientist who, without offering any justification, utters that phrase yet again.
The only “proof of authority” for this claim is: “I sit down at the table with executives from Microsoft, Google, and other companies that have built software products without writing a single line of code”.
I believe this statement is completely wrong, and I’ll first give you some technical reasons, followed by an anthropological explanation as to why this phrase is repeated periodically.
Technical reason #1: Software engineering is not only about code.
We all know that a great part of our job was to write code because the code is our way of solving problems (because, let’s not forget, being an engineer means solving problems, not just building things).
Now, let’s ask ourself “Can AI detect problem and solve it?” Yes, it can, but with some issue: first of all, problems comes from human interaction with a product, AI can’t interact with a product the way humans do.
Sometimes not even the best programmer in the world can detect problems ahead of time because no one can think at every edge case.
We can reduce the production error number using automated test, but still the probability never drop to 0%.
Why is that? For the same reason told before, both software and AI can interact with software, but NEVER the way humans do because we are structurally different.
Technical reason #2: Software engineering is about infrastructure.
Another huge part of our job is to design the infrastructure where the code will run. We decide the architecture, we decide if and eventually which cloud provider use, we decide how much resources give to our application, we decide if use a CI/CD approach or not, we decide how to track changes, and counting…
Can AI do this? Yes, it can, but who decide is still a human. AI can decide that my application will use a monolithic approach, but maybe I want to use a microservices one, so I still have to tell AI how do things. If I tell AI how to do things, AI can do the dirty work, but it’s not completely automated.
This lead us to another question: Who is the product owner, who decide how a product works?
If the product owner is a human, then the human decide how things works, then can tell the AI to make it, but still he/she will need software engineering knowledge to decide crucial points (otherwise you go toward the risk of deploy something that isn’t designed to scale up).
Technical reason #3: current AI is made to predict words.
Don’t get me wrong, AI is very good at programming, but the real question is: why?
Programming, at its core, consists of writing a sequence of words in a very specific order. Changing the order of these words or the words themselves depends on the data the models were trained on. Therefore, it’s natural to think that AI is good at writing code, but this view treats programming as if it were a natural language that changes based on grammar and the meaning you want to give the sentence.
I speak Italian, English, and Spanish. Every day I write Java code for work and C code as a hobby, but when I talk to my girlfriend, I don’t use Java or C. Can you imagine that? “Hey honey” would become the text printed by Spring Boot in the terminal when the server starts up, and then “while(isNotDinnerTime(currentTime)) relaxAndHaveSomeSex();”
Even the AI “agent” system is nothing more than a development environment that follows commands spewed out by an LLM in a specific format.
If I were to write the instructions in the same format as the LLM, then I could use this “agent-based” system because it’s essentially just a simple looping runtime. It gives you the impression that it’s actually doing something, but it doesn’t do anything magical, and it does it in a context that any developer could have created. As things stand, I find it impossible for an AI to replace my debugging sessions across different microservices that call each other. It would have to be able to use AWS, Jenkins, and IntelliJ to manage code, logs, releases, and tests in a pre-production environment. You could build something that does that, but it would be limited to the specific tools being used. If a product were migrated to Azure tomorrow, the entire agent would have to be scrapped and rebuilt for the new stack, whereas a human would be ready to go.
Finally, even if it were capable of doing so, it would consume an unimaginable number of tokens (the same ones my brain produces in the form of thoughts throughout the entire development process — with the difference that my brain uses a specific area and a nearly fixed neural pathway, unlike LLMs, which repeatedly use all their layers).
Anthropological explanation #1: Sitting at the table with big companies doesn’t mean that you or the person next to you know everything.
Do you remember Sam Altman and Elon Musk back in 2020? I do. They were still on excellent terms and both said, “In the next 11 months, all white and blue collar jobs will disappear.” Then the CEO of Anthropic chimed in: “In the next two years, there will be no more need for human labor.”
And finally the boss of all those AI-revolution idiots: The CEO of Nvidia.
“In one year english will be the programming language”; “The first job that disappear is radiologist”; “If my 500k $/year doesen’t spend AT LEAST 250k $/year in token, I’ll be deeply concerned”. Nice point of view from someone who is selling tokens.
The core explanation here is: EVERYONE can be wrong and everyone can be right. AI is a rapidly evolving field, that’s why the probability of being wrong or right is almost 50%, it doesen’t matter if you send rocket to Mars, if you produce gpus or if you just finished your phd.
People seem to forget the nonsense spouted by these jerks and keep listening to them, failing to realize that they have a massive financial stake in preventing a collapse that will inevitably come knocking on the door sooner or later.
Anthropological explanation #2: Software engineering is the most hated profession of our time.
During the pandemic, the entire job market came to a standstill. Every job was at risk. Only one group was spared: software engineers who could work remotely.
During that time, the internet was flooded with posts from developers traveling to the Maldives with their laptops, boasting about a fake lifestyle consisting of huge salaries, ocean-view work, and the freedom to go wherever they wanted at a time when the entire world was stuck at home. That was the exact moment when anyone working in-person at a company began to feel frustrated with their job, while another group of people seemed free. Now they think we’re dead because of their desire for revenge.
In my opinion, this is why developers are the most targeted group. There are tons of other jobs that use words on a daily basis: singers use words, translators, writers, teachers, music producers use notes (which are essentially words that any run-of-the-mill software can turn into music), advertising agencies, politicians, and I could go on forever.
And yet, after every new model is released, I don’t hear people saying, “Singers are finished,” “Writers no longer have a reason to exist,” or “Science communicators? Obsolete.”
If you’ve made it this far, thank you so much for reading my words.
Top comments (0)