Viewed from one perspective, artificial intelligence (AI) is the best thing to happen to software development since the advent of high-level programming languages in the mid-twentieth century. Theoretically, AI can help developers work faster and smarter than ever, while minimizing the toil they have to suffer while writing code.
From another angle, however, AI is the bane of software developers’ existence. In certain key respects, it makes their jobs much harder, and has the potential to cause many more problems than it solves.
This, in a nutshell, summarizes why developers tend to have mixed feelings – to put it mildly – about AI. Keep reading for a deeper dive as we unpack the good, the bad and the ugly of AI’s role in software development today.
AI and software development: The basics
Let’s begin by discussing the main ways that AI impacts software development.
As you probably know if you’ve followed the development of AI tools over the past several years, today’s developers have access to new types of AI technology – specifically, generative AI – that opens the door to a host of innovative capabilities, such as:
- Automatically generating code instead of requiring developers to write it by hand.
- Reviewing code in real time, as developers write it, to detect potential performance or security issues.
- Suggesting optimizations to enhance the performance of code.
These are among the key features of AI-assisted development tools, like GitHub Copilot, that have made huge waves in the software development community in recent years.
The benefits of AI in software development
In some ways, those features bring real value to software developers.
For developers, the main advantage of AI as the technology currently stands is that it can dramatically reduce the effort coders must spend on tasks that are time-consuming but not especially rewarding – such as writing code for performing common tasks, like connecting to a database or transmitting data over the network.
The ability to mitigate security issues and maximize performance with minimal effort on the part of developers is also a key advantage of AI. Few coders enjoy tediously reading through lines of complex code, looking for potential buffer overflow vulnerabilities or ways to save a few CPU cycles.
So, from the perspective of developer experience, AI has the potential to do a lot of good.
Why developers (sometimes) hate AI
The keyword there, though, is potential. Just because AI can remove the tedium from software development doesn’t mean it actually will in every case.
And it turns out that many developers are not very optimistic when it comes to AI’s potential in this regard. As of early 2024, nearly one-third of programmers said they don’t trust AI, suggesting that they don’t believe it can reliably produce secure, high-quality code.
They have at least something of a point. Research has shown that AI-assisted development tools are prone to issues like package hallucination (which creates a unique type of security risk by introducing fake software packages into codebases), and that only about 27 percent of the code suggested by CoPilot is actually accepted by developers (the rest is presumably rejected because it doesn’t do what developers expect).
Problems like these certainly don’t mean that AI tools are useless. But they do mean that the extent to which developers can outsource “boring” programming tasks to AI is limited, simply because they can’t trust AI to make the right decisions all the time.
On balance, it’s worth noting that a strong majority – about 75 percent – of developers report that AI tools like Copilot help them code faster. But working faster is not the same as getting more fulfillment out of your work by being able to automate the most boring or tedious parts of it.
How to increase AI’s value for software development
The takeaway from data points like those cited above is that, to make developers actually like AI, AI tool vendors should focus on making AI more reliable and consistent.
The issue with AI in software development isn’t that it fails to deliver at all on its promises of helping developers work faster. It’s that it fails to deliver on that promise on a sufficiently consistent basis for developers to be able to hand off boring tasks to AI without worrying about introducing major software performance or security issues in the process.
So, before building even more AI-based features, the people behind today’s AI-assisted development tools should work on optimizing the reliability of the capabilities they’ve already created. Developers want to use those features, but they need the features to be reliable enough to use on an everyday basis.