Generative AI is now used for many purposes. Developers, and even some others, use it for coding too. Can we expect it to really change coding, especially when people can just describe their needs in plain English and get code? It’s not really so simple, but it opens many new opportunities to change software development.
Software development is usually a bottleneck to implementing new services, automating work and getting differing existing systems to work together. Many companies feel they have a shortage of developers, although it is mainly about price and exact competence needs. That’s why we also have so many low-code and no-code solutions, but they have their own issues.
Does AI empower anyone to code?
Now people have realized they can ask ChatGPT and other generative AI tools to make software code. You can quite easily get reasonable code to, for example, implement certain algorithms and tasks in different programming languages. Can we then assume anyone can start creating software?
Yes and no. The situation has actually many similar issues that no-code tools have. Problems are linked to input and output data and exceptional situations. Everyone who has done coding knows that an important part of the work is to handle all possible situations, not only a typical path when everything is perfect. With AI, its potential problem is to link different software components to each other until AI can implement a whole system.
GitHub Copilot is a good example of this approach. It is basically an AI-powered code repository, including collaboration. It offers a lot of valuation for software development, but it also has its setbacks. And it is a powerful tool for developers who know what they are doing, but it is not a solution to outsource software development to AI.
It’s not just about coding
Making reliable software and especially larger systems, is not just about coding. There are a lot of other things besides coding. You need to specify how the software should work exactly in different situations, and you must know the input and output data and in which format it can be used. Often software needs to work with other systems. Testing is also a very important part of the software development process.
Anyone who has done software knows it is a small part of the work to write the actual code. It is also often commented that getting someone to write the code is quite easy and inexpensive if you can specify the needs, data requirements and interfaces clearly.
How does this change software development?
So, does generative AI change software development? Once again, yes and no. It starts to offer tools that accelerate software development, and it can remove some details and routines from the development work when AI can generate details of the code. Gen AI can also help some people who are able to specify software to do the implementation. It is a great help for people who know what they want to get and know how to get the software to work.
But it doesn’t mean anyone is able to implement reliable software that makes what is needed. In principle, anyone can get some code implemented with AI. However, even those small pieces can be hard to utilize in practice, especially when you need to set up all the environments to run the software, get data and send results. Even though it is possible for many white-collar workers, most of them don’t do it.
The situation is quite similar to with no-code tools, even some details are different. For example, some no-code tools have better solutions to get data in predefined formats, databases, and systems supported by the tools. But in both cases, it is complex if the data needs pre-processing and cleaning.
Could we then actually see that the real solution for ‘citizen developers’ combines Generative AI, no-code tools and well-specified API systems? This is something that can actually enable non-developers to get systems to work. APIs enable getting data in a specified format, writing it in a certain format, or starting some actions in external systems. No-code can help make the framework for a solution, and Generative AI helps to code specific algorithms with needed details that are hard to make with no-code tools.
Framework, Gen AI and APIs
One example of this is RAN systems in telco networks. They are well-specified systems, and their data is often in standard formats. For example, RAIN is working with these kinds of tools that enable it to optimize the use of different power supplies (e.g. peak hour versus off-peak electricity and local batteries) and minimize electricity bills.
The data is in well-defined formats, no-code tools have components to build system components (e.g. input sources, output APIs), and AI enables optimization algorithms for different needs. These types of frameworks enable directly implementing use cases in the 5G environment without using a lot of time for details and peculiarities of this environment.
There seem to be some claims that Gen AI could replace no-code. Yet, in reality, Gen AI may be more powerful in supporting the development of no-code or low-code tools. It can offer the needed components to adjust parts of the implementation and algorithms. But it also requires the user to know what they are doing with the generated code.
Generative AI can be a great asset for software development, but it is useful only for very specific needs. It is not ready to replace all software development and needs other tools and environments to support its real use. And it is not for all kinds of needs. Data, its formats and interfaces to other systems are often the most complex bottleneck, and if they are not solved, it is hard to use any citizen developer tools.