This is a guest post for the Computer Weekly Developer Network written by Peter van der Putten in his role as head of the AI Lab at Pegasystems and also as assistant professor, AI, Leiden University, Netherlands.
Writing volubly from his own experience working with software engineers of all disciplines and skillsets, van der Putten’s original title in full for this piece was (is): How Generative AI can help software engineers and low code developers to imagine and create new applications.
We know that we are becoming captivated by a growing herd of generative AI models stampeding into view, so van der Putten deconstructs some of the major factors that software application development professionals need to consider and writes as follows…
All these new AI models are creating a lot of noise, so much so that they seem to promise to shake up the status quo in terms of how we regard the software development fundamentals that underpin many of the methodologies, platforms and tools that we all know (and usually love).
But the reality is there is a huge amount of sound and fury about generative AI models and while these are exciting, their actual impact still needs to be assessed and could be much more nuanced than some might expect – or fear.
Might an injection of ChatGPT make Bing beat Google in search? Well, I wouldn’t necessarily bet on it, what with Google having 30 times the search volume.
Let’s consider how generative AI models might drive software automation and low code.
We have already seen earlier variants be applied to write code. GitHub CoPilot launched in 2021 and it uses OpenAI Codex, a GPT-3 natural language processing to generate code. This and other current or future applications of AI in software development will help save time for developers rather than replace them.
For example, GitHub researchers reported that 88% of users felt more productive, 96% felt they could work faster on repetitive tasks and 73% could better maintain flow. In a controlled experiment, users with access to CoPilot completed tasks more than twice as fast.
Of course, one should also take into account solution and code quality, but it is an interesting data point.
AI’s role in programming
Today we can say that AI in software automation plays a very practical, rather than a magical role. Automated code completion helps speed a task up a little, just like when typing a text on your phone or when editing a document. But, like auto-correction it isn’t always right, though it will aim to make its suggestions sound plausible. For example, in tests carried out to assess this type of automation – coding suggestions made by GitHub Co-pilot were accepted between 26 and 40% percent of cases.
As generative models get more advanced, it is more likely that the technology will provide augmented intelligence as an assistant working alongside the human developer. The greatest value of AI could be how it ends the nightmare of having to start a development project with a blank page, or to put it more in a developer context, a black screen. Generative AI models could provide a trigger of how to get started, even if the code is a bit off. It can create skeleton boilerplate code for things like writing software tests. It makes it easier for a human developer to program in a language that they are not used to yet, because a lot of code is based on convention, and some programming languages are more verbose than others.
Of course, AI could do more than just help developers get started.
Some of the software automation use cases could see AI explain code in natural language, so that a developer can understand someone else’s code or autogenerate draft comments for ease of documentation. Depending on the application, it can also be really useful to generate more realistic test data. It can also be used for understanding large legacy code bases, the tens of millions of lines that are out there. For example, reverse engineering methods that generate diagrams from code have been around for ages, but AI can be used to provide a more high-level view, highlighting the most important classes and objects at different levels of abstraction.
IT departments need augmented intelligence supplied by AI to help their developers accelerate the production of new apps and digital processes.
It will proliferate in software development to help achieve tough strategic goals to be more productive and innovative, and to provide better experiences for their customers.
Low or zero-coding platforms offer another way to improve software production. On the surface it doesn’t need AI to achieve its aims but here augmented intelligence can help as well to get teams started on a project.
Just imagine typing in a simple prompt such as ‘create an app for processing dental insurance claims’ and the system generates a full runnable skeleton app, including workflow, personas, decisions and data models. This is perhaps even more valuable in low coding scenarios, given that citizen developers need more guidance, and will need to brainstorm and collaborate together with engineers.
Both software and low code development are ultimately a creative exercise, imagining and modeling new applications and AI will just help business analysts, citizen developers and software engineers to become even more creative and productive.