Will AI Replace Software Developers?
If you analyse software development as a profession, it's easy to conclude with that our job is to "manufacture code". LLMs such as ChatGPT or Claude can produce code at a speed that dwarfs most human software developers. This implies that one well written AI agent can in theory replace 1,000 software developers and deliver 1,000x as fast. This has obviously created a lot of buzz, and Mark Zuckerberg and Jensen Huang claims that Meta and Nvidia will be replacing mid-level software engineers in 2025, but is it really that simple ...?
What I do
A large part of my job is to analyse and understand customer requirements, for then to create formal specifications for a potential software solution to their problems. This part of my work is based upon 42 years of experience as a software developer, 27 as a professional, and some roughly 18,000 commits towards GitHub the last 10 years.
The nuances of this implies understanding psychology, different personalities, nuances in what one particular customer means when he's using a specific word, and how it is different from another customer using that same word. In addition it's a dialog, with the customer, allowing me to "extract" his requirements out of him such that I can transpile it into working software.
This process is the majority of what I do in fact, and not producing code as others tends to think.
In addition, I might need to configure our Kubernetes cluster, SSH into a Linux server to read its HTTP log, or query some database to find the answer to my customer's questions. Once you make it down to "manufacturing code" I've already spent 80% of my day, implying I'm actually only producing code about 20% of my time.
This implies that even if the LLM can entirely replace the process of "manufacturing code", it's still only doing about 20% of my job. The rest is still up for grabs by humans, and also arguably the most important parts of the job.
A Software Developer's Brain
As a software developer I am used to thinking about processes, and explain complex constructs using natural language. I can also take natural language as input, for then to iteratively create formal specifications from it, by asking the client questions as I proceed.
This is a long process, often implying multi-cultural nuances, being able to understand vague requirements, asking difficult questions, for then to come up with solutions - Most of which are some sort of compromise that sometimes are extremely difficult to explain, without dumbing it down to the level of my client's understanding. To illustrate the dilemma, let's imagine a user needing an HTTP endpoint for his frontend to retrieve data from some 3rd party API.
Create a Python endpoint that fetches xyz from "some-url"
Any schmuck without a CS degree can probably ask an LLM for the above. However, now I've got to put it into my existing program, without destroying other parts that are already working perfectly. Then maybe I'll need to temporary cache the result, if the endpoint is costly to invoke, such that I can return the result from my cache for some 5 to 10 minutes, without having to round trip the 3rd party endpoint every single invocation.
Without a basic understanding of how HTTP works, and knowledge of the latency and overhead of invoking my 3rd party endpoint, combined with an understanding of my existing class hierarchy and file structure - There's no way I can correctly do the above.
The "Specification Problem"
Unless non-software developers can somehow understand the HTTP protocol, the advantages (and disadvantages) of using a cache, and are able to read and understand the existing code they already have - There's no way they will be able to correctly describe what they want.
And to understand the HTTP protocol, how a cache works, and the existing codebase - Requires a human being that understands software development. This implies that in theory you can replace the manufacturing of code with an AI, but you'll still need a software developer to prompt the LLM. And even once you've completely automated the manufacturing of code, there's the additional 80% parts of the job that still needs to be done.
Market Size
AI will obviously make software developers much more productive. Instead of thinking of it as a threat, we should think about it as a cognitive assistant, whom we can "outsource" specific parts of our jobs to, in order to become more productive. If you do, you will rapidly realise that with AI you can easily double your output, without you having to work longer hours.
This implies that prices of software development inevitably will plummet, due to most of us being able to deliver twice as much result for the same price as previously. Implying software development will become a "race to the bottom".
As this happens, the market will grow in size. This occurs because of people not being able to afford custom software development previously, can now all of a sudden hire a software engineer for a couple of hours, and in those two hours, that developer can produce software that previously would require 10 hours to deliver. If that developer is charging 50% more for those two hours, the end client is still saving 70% of his TCO. Hence ...
The client pays less, the developer earns more per hour!
AI is "only" Another Tool
It's easy to get lost in all the FUD and FOMO surrounding AI and LLMs these days. Some of the more fruitcake conspiracy theorists are seriously discussing stuff such as eternal life, destruction of all life in the universe, Judgment Day, and God knows what. My piece of advice is to simply ignore both sides of this discussion. I seriously suspect they've both got some sort of mental disease, that you might be inflicted from if you spend too much time debating them online.
AI for me however, has drastically increased my velocity and ability to deliver working software. For me personally it's a revelation of productivity, and even if it never progressed beyond the point where it's at today, I'd still continue using it for the rest of my life. This is because of that AI makes me more productive the same way a pocket calculator makes me more capable.
Fundamentally, there's no difference between a calculator and ChatGPT
Yet, you don't see Hollywood going on strike because of pocket calculators.
Wrapping up
The fear of AI is quite frankly absurd. As always when we invent new technologies, there are things we need to be careful with. Cars are (still) killing more people in the US annually than terrorists, yet you don't see the US President creating "export sanctions on cars" - Even though technically cars are the most lethal invention we've probably ever invented.
If you enjoy watching my "talking heads" videos, you can see my breakdown of the future for software developers below. However, do I think we'll become obsolete? No! At least not until we're able to somehow teach 8 billion people how to "think like a software developer" - At which point they're (also) software developers, and it could be argued the only result we accomplished, was to increase the number of software developers in the world from 30 million to 8 billion.
I doubt Mark Zuckerberg's and Jensen Huang's "experiment" with replacing software developers will succeed anytime soon, because software development (still) will require a human in the loop. Maybe this will change in 2025. However, I doubt it - There will always be room for smart people with smart brains capable of communicating (correctly) with a computer, and guess what? We've got a word for those, and it's as follows; Software Developers!
Software developers will be laid off in 2025, a lot of them due to AI optimising our ability to deliver working software. However, those of us remaining standing after the dust settles, will probably end up earning more, much more - Because of that AI allows us to deliver more for less money, yet still earn more.
My piece of advice is to treat it as such. Implying it's a tool you can leverage to become more productive, resulting in that you make more money while spending less time delivering. At least, this is the way it works for me, and have worked for a couple of years now - And I don't see that fundamentally change anytime soon ...
Have a Custom AI Solution
At AINIRO we specialise in delivering custom AI solutions and AI chatbots with AI agent features. If you want to talk to us about how we can help you implement your next custom AI solution, you can reach out to us below.