If you want the short answer: probably not.
If you want the long answer, read on.
I recently had an interesting conversation with one of my clients. They were very concerned about the impact that advanced AI like GPT-4 would have on the market for programming jobs. In other words, they were worried they wouldn't be able to find a job. As someone who tutors developers, is a developer myself, and runs a company that could benefit from applications of generative AI, I feel like I'm in a fairly good position to see several different sides of this issue.
To think about who's likely to be affected by generative AI, let's think about who is involved in the software development industry and what they do.
AKA: Your clients.
If the application works, meets the business needs and it's cheap, then it's usually not that important to the client what process happened to produce it. To give an example, this blog is being hosted on Ghost's servers. I could host it myself but then I'd have to deal with self-hosting, server outages, content distribution, etc - and it'd only save me about $5 a month to do so.
In other words, your clients (assuming they're rational actors) are likely to be less concerned with if humans made the product than whether it meets their needs and is cheap. This can make a compelling case for using AI, but it can equally make a case against it. Since AI is such a black-box process, it's hard for clients to shape specific details of a product generated by an AI. In order to do that they'd need to understand the inner workings of the product, which is more a task for our next group.
Senior Developers, Architects, etc.
Many college grads and junior developers are surprised to learn that a lot of senior developers spend relatively little time writing code. This is because the job of a senior developer generally involves understanding, designing, and integrating code according to business requirements. In other words, senior developers are likely to be doing things like:
- Designing the tech stack for an application
- Reviewing junior engineers' code and accepting or rejecting merge requests
- Training other developers in specific technologies
- Learning about new technologies: their capabilities and limitations
- Communicating technical challenges to other stakeholders
Unlike the role of a junior developer, these kinds of tasks tend to involve less time in front of a computer and more time sitting in meetings (to the disappointment of many greybeards).
So these types of roles are unlikely to be particularly affected by AI. The key role of a senior developer is advisory rather than mechanical: their ability to write good code (while helpful) isn't the main reason they're hired. While generative AI can provide research help to these kinds of roles, the amount of context and communication needed to successfully navigate technical challenges is beyond what current AI are capable of.
As alluded to above, the role of a junior developer is often, to a large degree, to write code. But junior developers aren't just code monkeys, they should also be doing other tasks which move them towards becoming good senior developers (sidebar: if you feel like the song 'Code Monkey' applies to you, start looking for a new job).
Depending on what exactly a junior works on, they might have a range of different responsibilities. But let's consider a frontend web developer as an easy-to-understand (and very common) example. A junior frontend developer's responsibilities might include:
- Translating designs or prototypes by UX designers into working code
- Taking responsibility for specific sections of a web application (the notorious login page)
- Understanding technical and business requirements and writing code that complies with them
- Understanding how to use some specific technologies such as React or Vue to meet the requirements of a client
You'll note that the last two requirements involve elements of social orientation just like the role of the senior developer, and of course it's these capabilities that need to be developed (rather than just raw coding skills) for a junior to be successful in the long run.
AI can augment the task of a typical junior developer but it can't replace the social aspects of that work as again, this requires a deep and ongoing awareness of social context which current AI lacks.
In the future, perhaps we will see the training and role of a junior developer becoming less focused on the task of writing code and more focused on the social and design aspects of coding.
These guys are going to have problems. Since their main role is to produce a working product from a clients' spec and they're notorious for being slow to adapt to changes to that spec, they have pretty much the same capabilities as a generative AI, except with slower turnaround and a much higher cost.
It's possible then that outsourcing companies, who mostly just provide a cost-effective way for clients to get a lot of working code, find themselves outcompeted by AI in the next few years.
The companies that survive will be the ones that take a more creative and collaborative approach to working with clients, and specifically those which can provide value beyond selling a ton of code and a functional product.
This is a fairly brief consideration of the role that AI will play in the tech industry in the next few years, but one thing seems fairly clear: being able to write code is now not the most important factor for developer job security. What's less clear is whether this represents as huge a shift as some outlets claim. The role of some of the most skilled professionals in the industry is already mainly social rather than mechanical, and generative AI tools like GPT-4 are just likely to accelerate that trend.
Perhaps the best effect generative AI will have in the industry, then, is to return our focus to humans: their wants, needs, and complexities.
Frank, Director @ Milk Tea Tech