ChatGPT, the most advanced conversational AI chatbot yet publicly revealed, is taking the world by storm. Millions of ordinary people are using it, and most are highly enthusiastic about its ability to create human-like written content that helps them in their daily lives. Software professionals, too, are taking note of this new kid on the AI block. For them ChatGPT is a portal into a future in which AI-augmented software engineering will inevitably disrupt traditional approaches to coding, maintaining, and updating the software applications modern businesses depend on.
As an article in the Harvard Business Review puts it,
“ChatGPT Is a Tipping Point for AI … The ability to produce text and code on command means people are capable of producing more work, faster than ever before… This is a very big deal. The businesses that understand the significance of this change — and act on it first — will be at a considerable advantage.”
In this article, we’ll use ChatGPT as an up-to-the-minute example of what AI-augmented software engineering can accomplish.
What Is AI-Augmented Software Engineering?
According to IEEE (the Institute of Electrical and Electronics Engineers),
Augmented intelligence is a subsection of AI machine learning developed to enhance human intelligence rather than operate independently of or outright replace it. It’s designed to do so by improving human decision-making and, by extension, actions taken in response to improved decisions.
AI-augmented software engineering applies the augmented intelligence concept to the realm of software development, maintenance, and improvement. In its practical application, the term describes an approach to software engineering that’s based on close collaboration between human developers and AI-enabled tools and platforms that are designed to assist and extend (but not replace) human capabilities.
To illustrate the importance of the collaborative aspect of augmented intelligence, the IEEE report cites the example of one clinical study aimed at detecting lymph node cancer cells. In that study, the AI system used had a 7.5 percent detection error rate. The error rate for human pathologists was 3.5 percent. But when the human pathologists and the AI system worked together, the error rate was just 0.5 percent.
What Can Today’s AI Do?
Software professionals around the world are now using ChatGPT to gain first-hand experience with the ways an advanced AI platform can extend the capabilities of application developers. Their reports highlight the benefits modern AI tools can provide for software engineering teams:
- Writing New Code: According to one report, ChatGPT has “shocked” developers with its proficiency at writing code. As this user puts it, if you tell ChatGPT to do so, “it will happily create web pages, applications and even basic games” in any of the programming languages (such as C, Java, HTML, Python, etc.) that are widely used today. But, as we’ll see below, today’s AI still has some significant limitations in this area.
- Explaining and Documenting Existing Code: One of the greatest benefits of ChatGPT is that you can give it a piece of existing code, ask what the code does, and receive a lucid, accurate explanation written in plain language. For developers working with legacy code, which is often highly opaque because of inadequate documentation, that’s a huge benefit that only an advanced AI platform can provide. In fact, the explanations the AI engine provides are so clear and well-written, they can also serve as a great learning tool for less experienced developers.
- Enhancing QA and Defect Remediation: ChatGPT can analyze a piece of code to detect and explain bugs that human developers may overlook. It can also suggest fixes for the errors it uncovers. Advanced AI platforms can automate software testing to a significant degree, substantially shortening the development cycle.
- Translating From One Language/Environment to Another: Developers can present ChatGPT with code written in one language and have that code accurately translated into the syntax of another language with which the coder may be less familiar.
- Turbo Charging Low-Code/No-Code Development: Low-Code/No-Code (LCNC) is already having a big impact on operations in many companies. It allows business users, who may have few technical coding skills, to automate processes in their workflows with minimal assistance from IT professionals. The ability of ChatGPT to produce working code based on natural language inputs democratizes software creation even more. It is, as one observer put it, LCNC on steroids.
Related: Using Machine Learning to Measure and Manage Technical Debt
What Does AI-Augmented Software Engineering Mean for Developers?
A key aspect of the IEEE definition of augmented intelligence is that it affirms that the purpose of AI-augmented software engineering is not to replace the human element but to assist and enhance it. Jorge Hernández, a Sr. Machine Learning Research Engineer at Encora, explains how this works:
AI-augmented software development helps reduce the cognitive load throughout the software development lifecycle … by helping manage the complexity of the problem, allowing workers to off-load routine tasks to the AI so that they can focus on the creative and analytical tasks that humans do best.
Today’s AI can relieve developers of many tasks that are either mundane and repetitive or, on the other hand, forbiddingly intricate and complex, freeing them to focus on higher-level responsibilities such as architecture and overall design.
For example, by intelligently selecting generic or boilerplate code from the open-source universe and adapting it to the current use case, an AI-augmented coding assistant can relieve developers of the more trivial aspects of the software development process. As technical consultant Rob Zazueta says, “I can take that, modify it to fit my needs and cut through boilerplate stuff quickly, allowing me to focus on the more intensive kind of work the AI is not yet ready to handle.”
Similarly, by uncovering, explaining, and correcting bugs in complex legacy code, an advanced AI platform can save human engineers hundreds of hours of analysis and remediation time.
Deepak Gupta, CTO at LoginRadius, summarizes the impact of AI-augmentation in software engineering this way:
“Artificial intelligence is revolutionizing the way developers work, resulting in significant productivity, quality and speed increases. Everything — from project planning and estimation to quality testing and the user experience — can benefit from AI algorithms.”
Limitations of AI
It’s important to remember that AI engines don’t really think—they simply use patterns they discern in their training data to predict an appropriate response based on the parameters they are given. So, they don’t understand the real-world context of the issues they address. As a result, they can make egregious errors that would be obvious to a human.
For example, although the ability of ChatGPT to turn natural language descriptions into code is extensive and impressive, it has significant limitations in producing usable code on its own, especially for non-trivial coding problems.
When given complex coding tasks, ChatGPT sometimes produces code that, as one software expert put it, “may work but may also almost work.” That is, the code may look as though it does what the developer specified, but have non-obvious flaws that make it unreliable. Needless to say, such code is the stuff of developers’ nightmares.
So, we’re nowhere near the point where software engineering can simply be turned over to an AI coding engine. But what AI-enabled platforms can do is produce code that human developers can use as a starting point, saving time and avoiding many of the bugs that humans themselves inevitably introduce into their code when they start from scratch.
Related: Common Pitfalls of App Modernization Projects
What AI-Augmented Software Engineering Means for App Modernization
Because legacy codebases may be huge (often five million lines of code or more), and may contain embedded dependencies and hidden functionalities that are not obvious to the human eye, refactoring a monolithic legacy app to a microservices architecture is a task that’s normally too complex and time-consuming to be done manually. But when AI and human developers collaborate, app modernization can become a much quicker and safer process.
First, AI can provide insight into legacy codebases that human engineers would struggle to acquire on their own. With AI, the process of analyzing legacy apps to determine if and how they should be modernized can be substantially automated, and the ability of the AI platform to almost instantly assess what a legacy code module is doing and how it functions can save engineers hundreds of hours of analysis time.
AI can significantly streamline and automate the creation of microservices, giving engineers and architects the ability to understand the most effective entry points into a microservice and decide appropriate domain boundaries.
AI can also allow developers to prototype various solutions, helping them understand the practical implications and benefits of each approach. Without AI, developers are effectively working in the dark, spending time and taking risks to experiment. AI brings visibility to the entire process—to what’s been done, what’s being done now, and the probable outcomes of specific “what if” scenarios.
In general, the task of modernizing legacy apps is too complex for humans alone to handle, while AI systems lack the strategic and contextual understandings required for formulating optimal business solutions. But when engineers and architects work collaboratively with a modern, sophisticated AI assistant, they can modernize applications far more quickly, with greater confidence and less risk.
Applying AI-Augmented Software Engineering To App Modernization
The vFunction platform is specifically designed to apply AI augmentation to the task of legacy application modernization, transforming a process that, when done manually, is complex, time-consuming, risky, and costly. With its advanced AI capabilities, vFunction can automatically analyze huge monolithic codebases, and substantially automate the process of refactoring them into microservices. vFunction speeds up the modernization process by a factor of 15 or more while reducing overall costs by at least 4X.
If you’d like to see how AI-augmented software engineering can lift your legacy app modernization programs to entirely new levels, schedule a vFunction demo today.