Gen AI has quickly stirred up interest in the IT industry. It’s fueling innovation races amongst Big Tech companies, grabbing the headlines of IT conferences, and raising hopes for faster and smoother production of new software.
The software development community has experienced similar transitions before. In the previous decade, object-oriented programming and the World Wide Web emerged. The early 2000s ushered in the Agile manifesto. Finally, closer to the 2010s, DevOps and cloud computing gradually slid into typical development best practices.
With each of these innovations came talks about opportunities, warnings about risks, test and trial processes, and then eventually acceptance. Same with Gen AI for software engineering – we have yet to experiment with it before issuing an industry-wide adoption. Large enterprises do just that, with 27% of them carrying out pilot projects.
Let’s immerse in their early findings to find out what AI-assisted software engineering is, how it can benefit your development workflows, and which barriers you need to account for. This way, you’ll have a better understanding of whether you’re ready to adopt AI for software development yourself.
What is AI-Assisted Software Development?
AI-augmented software development refers to the use of AI technologies (most often large language models) to accelerate and automate the process of writing, modifying, testing, and deploying code. Essentially, this practice is meant to minimize repetitive tasks and let the whole development team tackle more value-added activities.
AI-augmented software development employs a variety of tools:
- Ready-to-launch AI coding assistants: commercial tools based on pre-trained large language models (LLMs) that can generate, autocomplete, and explain your code. The top 5 most popular picks in this category are GitHub Copilot, Visual Studio IntelliCode, Codeium, Gemini, and Tabnine. Most of these tools are cloud-based and are available either for free or on a subscription basis. Codeium also offers an AI coding assistant that can run on-premises or in your virtual private cloud.
- Custom-trained models: private, fine-tuned LLMs that companies deploy on their servers or private clouds and train with their own datasets (proprietary code, internal documentation, etc.). The most popular large language models used for such customization are OpenAI’s GPT-4, BERT (specifically its extension CodeBERT), and Llama 3.
How Does AI-Assisted Software Development Work?
First and foremost, Software Developers need to select a use case where AI can actually add value. Currently, AI coding assistants handle simple tasks better than challenging ones. In a recent Stack Overflow survey, almost 28% of Developers indicated that AI was incapable of handling more complex problems, and it was a significant barrier to adoption.
Having selected a task, Software Engineers can use AI code assistants to perform the following actions:
- Type the code and wait for AI to autocomplete it based on the surrounding code.
- Explicitly ask AI to perform a certain task (explain/improve/write code). Follow prompt engineering best practices and specify context and instructions for better results.
- Highlight the code snippet and ask an AI code assistant to fix or improve it.
- Receive code improvement recommendations and fix suggestions in real time without even writing prompts.
- Chat with the AI coding assistants to receive answers about your codebase or project documentation.
- Research the problem without leaving the integrated development environment (IDE).
Working with an AI coding assistant is an iterative process. At times, the suggested code simply does not work, so Software Developers need to either frame the prompt differently or give more specifications. Even after the AI-generated code is operational, Software Engineers need to assess its quality characteristics: readability, maintainability, efficiency, reliability, scalability, security, and consistency. Finally, it is a required practice to test if the code does not disrupt existing business logic or functionality.
To perform all these functions well, Software Developers need to have the following skills:
- Prompt engineering: For the AI coding assistant to produce desired outcomes, Software Developers need to be able to write clear and specific instructions, often iterating them. There are different prompting engineering approaches: zero-shot, few-shot, chain-of-though and others.
- Code reviewing: Code generated by artificial intelligence may contain syntax errors, problems with logic, or security holes. Software Developers need to evaluate their and their colleagues’ code before going forward with it.
Capabilities of modern AI coding assistants open up opportunities for many use cases. Software engineering teams have seen the benefits of using AI for code generation, test case automation, refactoring, security alerting, data management, and many other practices. For a detailed overview of the most popular use cases, read our recent blog post, “Generative AI for Software Engineering: Use Cases and Limitations”.
How Popular is AI-Assisted Software Engineering?
AI-assisted software development has long ago captured the attention of the software development community. According to Stack Overflow, 70% of Software Developers already use or plan to use AI tools in their work. Amongst US-based Developers the acceptance level is even higher: 92% of them have already integrated AI both in and outside their work.
However, not all groups of Developers are eager to adopt AI. Software Engineers specializing in backend, app, and embedded system development are less likely to use AI coding assistants. Working with complex systems and handling security-related issues, these Developers don’t see themselves using AI in the near future.
AI has yet to make a name for itself when it comes to adoption at the enterprise level. Although 62% of C-level representatives agree that AI in software engineering is necessary for a competitive edge, companies aren’t exactly making a rush. According to Capgemini, only 11% of organizations are actively using AI in their software development workflows. There is, however, a change on the horizon. Capgemini predicts that by 2026, 85% of all software workforces will use generation AI for training, experimenting, pilot projects, or implementing in their workflows.
What are the reasons for such optimistic predictions? Because AI in software engineering has the potential to yield unparalleled benefits, especially as AI coding assistants mature and become more accurate and secure.
Benefits of AI-Assisted Software Development (With Real-Life Examples)
Companies that deployed pilot projects for AI-assisted software development almost unanimously pointed to two key benefits: faster task competition and time efficiency (and consequently cost savings).
Yet, the potential of AI for software development goes beyond the gift of time. In the long run, software leaders can get higher returns on investment by shifting their focus from time/cost reduction to value creation. These are the benefits AI for software engineering can unlock:
Source: Gartner
1. Acceleration of the Development Process
Modern AI coding assistants, although they are still maturing, boast advanced capabilities and can generate entire code blocks, suggest fixes, maintain documentation, or detect issues. When given relevant project context, code base, and clear instructions, AI tools can significantly accelerate the development process and enable Developers to produce more work in less time.
CloudZero, a cloud cost intelligence platform, increased bug fixing speed by 300% with Copilot. As a result, they are able to shorten the time between idea and implementation.
PayPal did a pilot project and compared the time it took to develop a simple custom app using AI and without it. Using no AI assistant, their control group completed the work in eight hours. While their AI-augmented team completed the same amount of work in just 2 hours and 45 minutes.
And Bolttech, an InsurTech provider, slashed the time spent updating code documentation by 75%. By doing so, they freed up valuable development time to focus on coding and multitasking.
2. Reduction of Repetitive, Tedious Tasks
Software Developers often spend their time troubleshooting and doing repetitive tasks rather than actually coding and coming up with creative solutions. According to Atlassian’s 2024 report, 69% of Software Developers lose 8 hours or more of their working week to inefficiencies. Amongst these time wasters are technical debt (59%), insufficient documentation (41%), build process (27%), and lack of time for deep work (27%).
AI can solve this problem by taking over low-value tasks, such as debugging, refactoring, or boilerplate code writing.
HOVER, a construction software provider, uses an AI code assistant to write most of its boilerplate code. “Copilot can get you about 80% of the way there, then you just have to make the final tweaks to solve your specific problem,” says the Director of Engineering at HOVER.
World Wide Technology, an enterprise tech services provider, saw a 30-50% increase in productivity for repetitive work after integrating Codeium. The company automated documentation automation, unit test generation, and code explaining, which allowed Software Developers to focus on business-critical initiatives.
3. More Products/Software Updates Released
Accelerating the software development cycles, AI coding tools can potentially help companies make more software and update releases. This means that businesses who adopt AI for software engineering will have a better advantage when meeting the ever-increasing needs of their users.
By eliminating repetitive work and letting Developers focus on high-quality coding, AI coding assistants enable faster and more efficient CI/CD pipelines. Emirates NBD, an online banking provider, reported a 2x rise in in-production monthly deployments as a result of GitHub Copilot implementation. Meanwhile, at Wayfair, with the help of Google’s Gemini, software engineering teams were able to set up environments 55% faster than they could before.
4. Faster Resolution of Technical Debt
As companies increase their tech footprint and expand their release schedule, their user base grows but so does technical debt. Technical debt is the practice of relying on temporary coding fixes in an attempt to deliver software faster. In time, if technical debt piles up, it might lead to significant code defects and scaling issues.
AI coding assistants can help teams strike a balance between reducing technical debt and developing new code. First of all, AI can help you resolve technical debt by enabling you to refactor and debug the existing code. Secondly, AI code assistants can give Software Developers more time to produce higher-quality code in the future without the need to rely on patch solutions. This way, technical debt will accumulate more slowly.
Accenture has rolled out GitHub Copilot for 12000 of their Developers. As a way to deal with technical debt, they ask Copilot’s chat to explain existing code and then feed that explanation (along with additional project context) back to the coding assistant.
Additionally, AI has the potential to facilitate the migration of large code bases from legacy technologies. EY has conducted several programs demonstrating the value of LLMs in code migrations. The company tested and tried custom models for SAS to PySpark conversion, PostgreSQL to Google BigQuery migration, and L/SQL to Spark SQL transformation.
5. Increased Satisfaction in Development Teams
AI relieves Software Developers of tasks they don’t enjoy. As a result, teams get more time for creative initiatives, teamwork, and upskilling. For instance, 4 out of 5 Engineers believe AI coding tools will improve collaboration among their teams. Additionally, 70% of them believe AI coding tools will give them an edge at work, primarily through upskilling and productivity increases.
At Accenture, for instance, coding has become more enjoyable for 95% of Developers since they adopted Copilot. At TomTom, the feeling of productivity has increased for 85% of Software Engineers with an AI coding assistant.
Are There Limitations?
Yet, AI for software engineering does not come without its challenges. At least half of Developers have doubts about the accuracy of output from AI coding tools. Also, there are concerns about regulatory compliance, bias, additional validation work, and the AI tool learning curve.
Overcoming these challenges is possible with a comprehensive strategy for adopting AI for software development. You need to clearly understand the goals of implementing AI coding assistants, select an AI tool that fits your criteria, assemble development teams for a pilot project, and perform trials. Finally, you will need to ensure that your internal AI practices are in line with international legislation (EU AI Act) and create no disruptions in your relationships with partners, customers, and external vendors. It’s important to use AI only when you have explicit, legally-documented permission from your clients, customers, and users.