Is AI going to replace software developers in the future

With the latest advancements in AI and the release of advanced language models (LMs), there has been a strong sentiment that AI is most definitely going to take over the jobs of software developers. In this post you'll learn why AI will not replace software developers, at least not in the near future, and what are the limitations of current AI in terms of software developer jobs.

2023 marks the year when new conversational AIs became generally available such as; ChatGPT, Bard, and Bing.

One of the features of these AIs is their ability to output code samples in multiple different programming languages. They are also capable of solving coding problems when inputing specific problems to be solved.

With this feature now generally available for the open public, there has been a strong sentiment that it wouldn’t take long before AIs will put software developers out of jobs and coding will be taken over by AI.

Does ChatGPT think it can replace software developers in the future

When asked ChatGPT, whether it thinks it can replace software developers in the future, it doesn’t think that it will be able to do so.

Here are the input and output from ChatGPT:

So, ChatGPT says that because software development requires “creativity, problem-solving, and critical thinking”, it cannot replace software developers entirely. However, ChatGPT is more than capable of these characteristics and therefore it’s not a very good argument.

It then proceeds to point out that software development “involves communication and collaboration with other developers, stakeholders, and clients” which is the key when we think about the case for AI replacing software developers in the future.

So, as long as there are other humans involved and there is a need for real human interactions, AI will not be replacing software developers. But, can it replace the entire chain of people that are involved in a software project? It’s highly unlikely that will be the case, at least not in the near future.

ChatGPT points this out as well by saying that “the field of AI itself requires a significant amount of research, development, and maintenance, all of which require skilled human workers” (AKA software developers).

So, before AI becomes completely autonomous, there will always be a need for human touch within software projects to at least look after what the AIs are doing.

4 reasons why AI won’t replace software developer jobs

With ChatGPT itself claiming that it won’t be able to replace software developers in the near future, let’s look at some of the daily tasks inside a software project that could be potential bottlenecks for AIs.

1. Requirement gathering

Understanding specific business processes and problems is a very essential part of any software project. Software is built to solve real-life problems or to make things easier. Relying on AIs to understand every single use case and corner case of a business process is quite unlikely in the near future. Also, not even all businesses and customers themselves understand how software can help them solve the problems they are looking to solve.

2. Automation

Building automation systems, such as CI/CD pipelines that include the running of specific stages and steps, such as; build processes, testing, deployments, etc. is very manual work to configure correctly. AIs are still very far away from being able to understand complex software and then generate all the required build processes, automation tests, and deployment strategies, out of which it should then build an entire CI/CD pipeline.

3. Testing

While AI seems to be somewhat capable of generating, for example, unit tests from an existing code, it will not be able to generate tests that test the actual business processes themselves because again, this requires a good understanding of what the software does and why it does it.

4. Maintenance

Software systems often combine multiple pieces of different software which often requires manual maintenance. This can mean the maintenance of npm libraries on the client side, third-party libraries on the backend side, updating plugins inside CI/CD pipelines, server maintenance and upgrades, and so much more. Blindly updating any specific piece of software when an upgrade is available requires a good understanding and knowledge of what has changed and how an upgrade will impact the entire system.

How AI can help software developers

One of the main characteristics of working as a software developer is the ability to adapt and learn new technologies. This is not an exception with AI and AI should be seen as just another tool to learn and master to make building software easier and less cumbersome.

After the first testing of AIs ability to create code, it does seem that they lack the understanding of context entirely. AIs skills are still very limited to writing very specific and generic functions that do not require many contexts from the entire software system.

With this in mind, it is good to have a companion, such as ChatGPT that could help you with creating some simple boilerplate functions, especially on a completely new code base that doesn’t need a lot of contexts.

Software development Programming Artificial intelligence

Related contents

  1. Making money with ChatGPT plugins
  2. 7 jobs that are in danger of being replaced by an AI
  3. Why Tina CMS might be the best tool for bloggers
  4. 15 ways to manage technical debt as a software developer
  5. Simple Jenkins pipeline for running and automating Gradle tasks