Subscribe
About

Software developers must master AI

The robots are coming, but not for your job if you are smart about it, as AI is a challenge − and an opportunity − for developers.
Wesley Buck
By Wesley Buck, Custom software developer, Retro Rabbit.
Johannesburg, 13 Sep 2024
Wesley Buck, custom software developer at Retro Rabbit.
Wesley Buck, custom software developer at Retro Rabbit.

The media hype around artificial intelligence (AI) has been, and continues to be, extraordinary. A lot of it has concerned the impact on jobs. It’s a bloodbath: there’s nothing like a good dose of doom and gloom to get journalistic pulses throbbing and clickbait churning in the muddy waters. Software development is one of the jobs most threatened, we are told.

One must admit that there’s a grain of truth in that, but only a grain. A closer, more level-headed look shows that, as always, a disruptive change like this throws up challenges and opportunities − many more of the latter, I believe.

Staying on the subject of hype, the recent release of the Gartner Hype Cycle for Emerging Technologies 2024 provides a much-needed reality check. It identifies 25 disruptive technologies to watch in autonomous AI, developer productivity, total experience and human-centric security and privacy programs.

Development is clearly in the throes of a major disruption. Most are at the beginning of the cycle, climbing the Peak of Inflated Expectations, with a few outliers already on the brink of the Trough of Disillusionment. We are some way off the Slope of Enlightenment on the way to the Plateau of Productivity.

It’s a testing time for developers. This is not a time for quick decisions, but rather for taking the time to examine what’s going on before mapping a way forward.

It’s a tool, not a solution

AI should be welcomed as a useful tool, not feared as a competitor. Yes, it’s true that AI is able to do many of the more mundane tasks that programmers need to complete. These include code automation and generation, bug detection and fixing, and predicting potential bumps in the development process.

The latter would include things like predicting the way in which new features would impact existing systems − one of the big challenges of developing is that it seldom takes place in a vacuum.

This trend is already well-established: 76% of developers already use or are planning to use AI tools for coding. ChatGPT (84%), GitHub CoPilot (49%) and Visual Studio IntelliCode (11%) are the most commonly used by professional and student developers.

Development is clearly in the throes of a major disruption.

Developers also note that the tools are not yet fully trustworthy and cannot cope with high levels of complexity. However, McKinsey estimates that within a few years, existing development teams will be able to double the amount of development work they can do today.

While the future is impossible to predict absolutely, it’s already clear there are several areas in which humans retain the edge on algorithms:

Context and deep understanding: Software is more than code. The developer has to first acquire a deep understanding of the context in which the software will operate. This context includes the existing IT systems architecture, but even more crucially, the nature of the market sector and its drivers. Domain knowledge is critical, and it’s not something that is available to AI assistants, not least because it is not fully reducible to factoids. Unlike humans, AI cannot check its conclusions against reality or experience; the risk is that any misperceptions are magnified over time.

Creativity: It can’t be stated enough: even the most marvellous technology is limited by its construction and the data which it has available. Based on his or her understanding of the problem and the industry, a human developer can come up with innovative solutions that are not “logical” − something that AI, even generative AI, is unable to do, and may never be able to do.

Complex problems: A related point is that development is all about solving complex problems − and the solutions are likely to be as complex. Many factors need to be considered, and there is no correct answer. The exercise of judgement is critical. Again, this is an area where humans excel.

The conclusion is clear: developers should welcome the chance to improve their productivity and avoid some of the more mundane, repetitive parts of their work.

At the same time, though, they need to develop the techniques for assessing the quality of what has been done − as we all saw with the launch of Gemini, AI is susceptible to producing ludicrous results.

All of this means that developers need to understand that they are called upon to develop their own creative and problem-solving skills as the need for spending large amounts of time on lesser tasks reduces.

The real disruption is going to be in the education system, which is ill-equipped for teaching these skills; as always, individual developers will need to take responsibility for ensuring they have the skills needed for this brave new world.

Share