Subscribe
About

Don’t bother learning how to code

In the realm of software engineering, is AI the assistant or the overlord?
By Tamsin Mackay
Johannesburg, 19 Sep 2024
Richard Frank, Flow Communications
Richard Frank, Flow Communications

Jensen Huang, CEO of Nvidia, thinks that computing technology needs to be created so that “nobody has to program”.

“And that the programming language is human. Everybody in the world is now a programmer. This is the miracle of artificial intelligence,” he told the World Government Summit in Dubai in early 2024. AI is here and it will do the heavy lifting while humans do other things like, as Huang suggested, education and farming. Except, that isn’t quite what he was saying. Huang was focusing on the value of AI and how it allows for anyone to become a programmer. The skill isn’t being able to code, but, rather, how and when to use AI and code effectively.

AI is demystifying software engineering and coding for a vast subset of people. Tools such as OpenAI, Codex and AlphaCode have become adept at creating code at speeds and efficiencies that are overtaking the human programmer. As far back as 2022, Deep- Mind published a study in Science that showed how programmes submitted by AlphaCode were as good as those of a junior coder. It could solve problems that needed a significant amount of reasoning, even though it had not seen them before.

THE DATA BEHIND AI PRODUCTIVITY

The GitHub survey into the efficacy and impact of Copilot for software engineers uncovered some interesting statistics around how developers engaged with the tool, and how they perceived its value. The statistics below unpack some of the key findings from those using GitHub Copilot:

  • 60%-75% of GitHub Copilot users are more fulfilled and feel less frustrated
  • 73% find it keeps them in the flow
  • 87% believe it helps them to preserve mental energy when undertaking repetitive tasks.

The table below, taken from the GitHub blog, shows the responses to the queries around Copilot usage from participants. The speed at which GitHub Copilot users completed tasks was also interesting – the table below shows how two teams tackling the same task performed when compared with one another. The results were impressive – Copilot cut the time spent on the task almost in half.

This is one side of the conversation. The other is that AI isn’t ready to take over the software engineering role and probably shouldn’t be, without sounding like an excerpt from The Matrix. There are nuances to the broad statements of “the end of coding is nigh” and these are not easily unpacked in just a few sentences. AI is changing the shape of software engineering, but that doesn’t mean people will be replaced.

“When we think about AI, we think about it in terms of the different subsets across machine learning, deep learning, robotics, and natural language processing, but generative AI has been the most talked about,” says Pat Ramadass, practice lead: Microsoft Services, DVT. “We use it internally to enhance and streamline our software engineering across code generation, code refactoring, automation of repetitive tasks, and with testing and bug fixing. Our roles are evolving in line with this shift.”

There’s obviously an increased need for AI skills. The market jumped from almost $50 billion in 2023 to more than $183 billion in 2024, with expected growth to exceed $826 billion by 2030. Investments into AI startups have soared. In 2020, Microsoft, Google, Amazon, and Facebook acquired 12 startups, and the investments have continued into 2024. Nvidia, Salesforce Ventures and Cisco invested $450 million in Cohere, Cisco Investments launched a $1 billion AI fund, and Microsoft invested $1.5 billion in G42.

Assistive intelligence

When the money sits behind the technology, change follows. Stefan Steffen, executive: data insights and intelligence at BCX, says: “We’re now in a position where AI can really understand code. It allows us to input larger bodies of code that can be reviewed and improved, whether for debugging or errors or documenting code. This is perhaps the most immediate benefit for my team. An AI assistant can help you generate documentation, which is usually quite tedious and something software engineers try to avoid.” A GitHub study into the impact of GitHub Copilot looked at how the technology was affecting “developer productivity and happiness”. The original study in 2021 found that developers viewed productivity as something like “having a good day”, which equalled focus, progress and satisfaction. In 2024, the study found that productivity is less about speed and more about developer satisfaction, mental energy and speed.

“AI is more of an assistive intelligence. That’s the way we see it going forward,” says Niel Coetzee, head of engineering at redPanda Software. “Think about the calculator. When it first came out, people thought mathematicians weren’t going to exist anymore, but their role has evolved. They just don’t do normal addition anymore. AI is the same.”

In the realm of software engineering, is AI the assistant or the overlord?

Niel Coetzee, redPanda Software

The ways in which a prompt is engineered and the need to qualify the results, means a coder is critical to ensure that the AI has done its part correctly. Coetzee says the role itself is evolving to AI software engineer, where the skills and capabilities of the developer combine with the capabilities of AI to deliver quicker and more accurate results.

Coding assistant

“We commonly use GitHub Copilot and some other tools to manage certain parts of the development for us,” says Richard Frank, CTO at Flow Communications. “I still write the code, but AI gives me hints and tips as to what it thinks would be the correct result. It’s not replacing the architecture and decision-making around the code base. It is helping me with around 30% to 40% of the work.

“Every single software engineer I know is using AI in their day-to-day work. The extent differs and depends on the type of code they’re writing, and the level at which they are developing software,” says Frank. “It helps as almost a coding assistant or pair programmer. I can ask it questions about the code that I’m writing, or the bug that’s received an error and it can break the problem down in simple terms.”

AI asks the engineer the right questions, stepping into the assistant role. But is it a replacement for maestros who understand the code? No, says Frank. “It is overreacting to say software engineering is going to end and AI bots are replacing human jobs.” “It adds value,” says Steffen. “It can test the code, debug it and solve some significant issues. There is the concern that software engineers are going to get lazy. These tools alleviate the stringent learning processes that allow you to build the muscle you need to do really creative, high-quality coding.”

These tools alleviate the stringent learning processes that allow you to build the muscle you need to do really creative, high-quality coding.

Stefan Steffen, BCX

Maybe, but perhaps these tools will ignite a different level of creativity in coding. What everyone agrees is that there is no clear-cut road to the ruin of the software engineer, nor is there visibility into how exactly this role will evolve in the future. Right now, AI is an aide, a helpful, useful, time-saving aide that has value but isn’t, as hype suggests, about to replace the creative intelligence of the engineer.

* Article first published on brainstorm.itweb.co.za

Share