We’re seeing a wave of new generative AI tools that can write text, generate images, create music and more. Some can even write computer code, which makes sense when you think that computer code is just another type of language. From a well-known, generic tool like ChatGPT to specific AI coding tools created for developers, new tools are rapidly emerging that offer code suggestions and even write entire code. And it can all be done based on natural language prompts or by learning from existing code.
Naturally, this is already changing the work that software developers do. But what are the long-term implications of this? Will we even need software developers in the future? Read on to find out.
What Can Generative AI Do?
Generative AI can accelerate and automate the software development process in several ways:
- Gathering requirements: All software development starts by identifying requirements (such as “user wants to do X, Y and Z”). Generative AI can aid this process by generating a list of requirements. It can also be used to review requirements and check that nothing has been missed.
- Generating code: Generative AI can turn natural language instructions into functioning code, which essentially turns English (or whatever your native tongue is) into a computer programming language.
- Completing code: As coders type, a generative AI tool can suggest code completions, which saves coders time, especially when working on repetitive or mundane tasks. As an added advantage, this can help to reduce human error.
- Reviewing code: Generative AI can also be a useful tool when it comes to reviewing software. For example, a generative AI tool can check through existing code and suggest improvements or create alternatives that are more efficient. It can also analyze code according to coding style guidelines to ensure code is consistent.
- Fixing bugs: Generative AI can be used to identify and fix bugs in code to create a better end product.
- Testing software: Generative AI can carry out many of the testing phases, such as generating test cases, generating test code and analyzing test results.
- Predicting how software might fail: Looking ahead, generative AI may also be able to predict how systems and software might fail before the code goes into production—and tell developers how to fix it.
All of which means that generative AI can aid the work of coders, programmers and developers and speed up the software development process. In one example, coders at software company Freshworks have been using ChatGPT to write code—and, in the process, cut the development time from around 10 weeks down to less than a week. According to a GitHub study, developers who used the GitHub Copilot generative AI tool coded up to 55% faster than those who didn’t.
But how good is generative AI at creating computer code? Well, when the Alphabet-owned DeepMind lab pitted its AlphaCode AI model in competition against human coders, AlphaCode’s performance roughly corresponded to “a novice programmer with a few months to a year of training.” It's not bad at all for an AI. Given that generative AI’s capabilities are progressing so fast, we can expect the technology to catch up with more experienced developers in the not-so-distant future.
What Does The Future Look Like For Software Developers?
So does this mean we won’t need human software developers in the future? No, I don’t believe so. But it does mean they will increasingly work alongside AI, just as other professionals will. Almost all jobs will be affected or augmented by AI-driven automation to some extent, and software development is no different.
Admittedly, the work of junior coders could potentially be at risk as more development tasks are automated by AI. However, I see an even bigger application of generative AI than simply automating the work that junior coders would otherwise do. I see generative AI adding enormous value as a copilot or co-coder for even the most experienced programmers—especially when you consider that generative AI can be used to gather requirements and debug codes, make sure that code adheres to certain requirements and write the code itself. That takes some of the more repetitive and mundane tasks off developers’ plates, allowing them to focus on more valuable tasks.
And let’s not forget that, for someone like a higher-level developer or programmer, writing code isn’t the main thing they do all day. In fact, writing code may take up as little as 20% of their time, with the rest spent on gathering requirements, testing, meetings, collaborating with users, overseeing projects and other tasks.
What’s more, even when using generative AI tools to automate or help with programming work, we’ll still need experienced developers to write detailed prompts that get the best out of the AI. (You could argue writing detailed prompts that tell the AI exactly what you want it to do is just another form of programming.)
But the biggest takeaway from this is that rather than simply automating the more tedious aspects of software development and speeding up software development, generative AI will help developers work smarter, tackle more complex problems and come up with more creative solutions. It could therefore prove to be a game-changing tool for programmers.