Can Artificial Intelligence(AI) Replace Software Engineers? My Opinion On ChatGPT
The impact artificial intelligence(AI) tools could have on software engineering
Imagine a robot with hands, sitting at a desk and performing the responsibilities of a software engineer. Not far-fetched right? Artificial Intelligence (AI) has been in the news lately especially in the tech industry, with many experts and commentators speculating about the potential of AI to revolutionise and massively impact various industries. One particular field in question is software engineering. The question many have asked and still contemplate including myself is: can AI replace software engineers?
With the release of the chatGPT chatbot recently, it is almost impossible to completely ignore this question. With the capabilities that it has to generate code, and write an essay or a poem. AI has the ability to automate some tasks that software engineers typically perform in their daily jobs, such as detecting bugs or generating code. However, it is also important to note that AI systems generally require a lot of data and training to be effective. This means that the process involved in getting AI to a satisfactory point to be able to adequately perform these tasks can be very costly and time-consuming.
What is ChatGPT?
ChatGPT is a natural language processing chatbot developed by OpenAI. It has been described as an optimising language model for dialogue; meaning you can have conversations with the bot. After it was released, it gained traction and raised a lot of discussions online which has led to the question of AI replacing humans. It has been lauded as the most advanced AI chatbot with great capabilities. However, it still has its limitations.
So what is chatGPT trained on? ChatGPT has been trained on a massive corpus of data and the exact figure of the amount of data used to train the model is not publicly available. However, it is believed to be up to about hundreds of billions of words. This is why it can respond with a human-like text to questions you give it. This is a very different form of search from Google. We’re all used to the phrase: “Google is your friend” but think of chatGPT as a brother or sister that knows what you want.
Here is a comparison of chatGPT response and Google response to my search of “how to write a for loop using java 11 streams in java”
You can see the clear difference in the response from both. Google has a vast amount of data but it uses a very different model as it relies on information on a website/page, whereas chatGPT doesn’t. It provides a more accurate response as it answers your question (prompt) directly where Google will list several links that may have the answer you’re looking for. The response in chatGPT is very direct, it gives you an example followed by an explanation of how it works followed by a second example.
Can AI, or in this case chatGPT replace software engineers?
If we were to overlook the challenge of the cost and time of training the model, there are several reasons why I think AI cannot replace software engineers; at least not completely.
Firstly, software engineering is more than writing code. Anyone could search for how to build an app or how to write a for loop as I have done. But not everyone would also know to search for how to write a for loop in the first place unless they had an understanding of a problem that required a loop. Software engineering involves the processes of designing, building, testing, and maintaining software systems. This requires a deeper understanding and knowledge of the problem, the ability to think creatively to solve problems, and the ability to collaborate and work in a team. These are the essential skills that chatGPT lacks at the moment.
Additionally, software engineering is a highly dynamic and challenging field that requires the ability to quickly adapt to changes in current technologies, programming languages, and frameworks. At the moment, ChatGPT will struggle to adapt quickly. This is because it is only currently trained with data up to 2021. This is a limitation that has to be controlled by humans as it needs predefined parameters and is not able to think outside the box. Here is an example of chatGPT restricted by this limitation in responding.
Due to its limited training data, its current state is in 2021 2 years ago. Besides this limitation, chatGPT is a very powerful tool that has certainly blown and opened my mind to the possibilities of AI.
AI can become an important collaborative tool
In my own opinion, the role of AI in software engineering is best understood or taken as a tool rather than a replacement. This tool can be very beneficial to software engineers as it can be a companion and assist to reduce the amount of mundane and repetitive tasks they have to deal with. This will allow them to focus on more complex tasks and improve productivity and allow more time for creative thinking. This is where software engineers shine, as they usually possess the ability to think creatively outside the box to solve complex problems with innovative solutions.
With chatGPT gaining more popularity across multiple industries, it raises a lot of concern for many and ironically, those that built the tool. It is only normal for people to become obsessed and fearful with a tool we suddenly see as competition when it comes to performing our daily tasks. However, this is where we need to learn to adapt. Rather than seeing it as a tool to replace us, we can look at it from a different angle of how can we utilise and harness the possibilities of AI to be more productive and effective in any area we find ourselves.
ChatGPT is a very powerful tool, but it’s not yet advanced enough to be at the stage of replacing software engineers. There will most likely be a shift towards more collaboration with smart tools such as chatGPT to create better, more efficient, advanced and useful software systems. While AI has the potential to automate most software engineering tasks, it is clear that it has a lot to offer software engineers, but humans will continue to be essential for software development.