It is hard to spend a single day without being bombarded with some prediction that software engineers are now obsolete.
Is that true?
To understand whether this will happen, we need to dig a bit deeper.
We’ll look at what happened when the last two jumps in software engineering productivity became widespread: the Internet and the Cloud. Understanding how that affected the labor market for software engineers will help us predict the changes that will happen to the labor market this time around.
The Internet (2002)
While the Internet, as we know it, started around 1994, it was really around 2002 that it was widespread as Google became used frequently.
Prior to the Internet, software engineering was much less productive. Engineers had to read books or ask their colleagues how to do a particular task. This took much longer and resulted in much lower quality.
After the Internet, engineers could “Google” their task and get enough guidance to do it much faster. This resulted in a jump in software engineer productivity.
The Cloud (2014)
AWS launched in 2006 but it took till 2014 until use of the cloud became dominant.
Pre cloud, software engineers spent a large portion of their time setting up and managing the infrastructure of databases, application servers and web servers.
The cloud enabled these engineers to build and deploy their software in much less time.
Effect of the Productivity Jumps on the Labor Market
The productivity increases in both cases were largely absorbed into building more complex and higher number of solutions.
The number of people in computer occupations went from 2.7M in 2002 to 3.6M in 2014 to 4.6M in 2022. Comparing to all occupations, computer occupations went from 2.12% in 2002 to 2.66% in 2014 to 3.12% in 2022.
Made with Visme
Source: Bureau of Labor Statistics (https://www.bls.gov/oes/tables.htm)
Note: BLS changes its classification system over time so the numbers are directionally useful but not exactly correct.
What happens to productivity increases?
In simple terms, we can think of the total software engineer productivity of a company as number of engineers x average productivity per engineer.
As total productivity increases, this creates a gap between the people hours in a company (number of people x number of hours per person) and the current total productivity of the company.
There are usually three options a company has to take advantage of this gap:
- Remain at the current total productivity and cut costs by laying off software engineers.
- Take advantage of adding productivity to build more complex and new solutions.
- Start new ventures that were not profitable at the previous productivity levels.
The choice depends on the company and the competition they face.
Option 1 is the most attractive if the company feels that leveraging the additional productivity will not result in material increase in revenue and they are not concerned that their competitors will be able to leverage their extra productivity to take revenue from them.
Option 2 is likely the path in competitive industries where there is opportunity to gain revenue. As their competitors leverage their productivity to improve their solution, the company will face increased pressure to keep up.
Option 3 is the path for new ventures which will need software engineers to succeed.
How do these options balance out is hard to predict. Will Option 1 lose more jobs than Option 2 & 3 will maintain and create?
I believe the most likely outcome, based on past data, is that we will continue to see a slow increase in number of software engineers needed. Most markets in the U.S. are competitive and companies desire to maintain and grow revenue is strong.
Change in software engineering needs
So far we’ve discussed the number of engineers. However the type of engineers required by the companies will change.
Prior to the internet wave in 2002, the engineers in high demand were backend engineers that would work on enabling backend systems to talk to each other and Windows Application engineers that would build the applications that users would use. This demand went down and the demand went up for web engineers that would build the web applications. In the 2010s, as the focus shifted to mobile devices, the demand shifted to mobile engineers.
Prior to the cloud wave in 2014, there was a lot of demand for system engineers that would setup and run the various databases, application servers and other infrastructure. Nowadays due to the cloud the demand for such engineers has dropped while the demand for data engineers has gone up.
So what kind of change will the age of AI cause? AI tools like ChatGPT, Github Copilot and others reduce the need for simple programming. Today ChatGPT can generate simple programs much faster (and in many cases) much better than the average programmer can. And in a fraction of the time. With the ChatGPT ability to reason in plain English, some of the work of querying data can be shifted to people who are not engineers.
I believe the demand will now shift to AI engineers. These are engineers who focus on how to integrate AI functionality into products.
Junior engineers, in particular, will face tough competition from ChatGPT (and similar solutions). Their best bet would be to get good at leveraging these tools and to explore becoming an AI engineer.
Summary
The dire predictions of software engineers becoming obsolete appear unlikely to happen based on past productivity jumps: the Internet and the Cloud.
Companies that are not in competitive markets will likely lay off software engineers to become more profitable.
Companies that are in competitive markets will tend to leverage the extra productivity to build more complex solutions to keep up with their competitors.
New products will become practical to offer in the market due to the reduction in cost.
The demand in software engineering will shift from data engineers and web/mobile engineers to AI engineers; engineers that integrate AI functionality into products and platforms.
Junior engineers should learn these tools and explore AI engineers to compete in the market now.