Recently, we at Axellect have undertaken a project to integrate AI tools into the software development division of a large industrial enterprise. This project was an important milestone in analysing the changes in the long-established process, pinpointing the requirements that ensure the successful implementation of Generative AI (GenAI) tools into coding, and evaluating the applicability of various AI tools in software development in a real-case scenario.
The project proved our vision that the software development sector is now ready for the widespread implementation of AI, including its generative subtypes, into everyday operations. Indeed, according to one of the recent Gartner Peer Community One-Minute Insights, in 2023, 63% of respondent organizations have already adopted GenAI tools as part of their software engineers’ and developers’ tool stacks.
Also, IDC foresees a major paradigm shift taking place, with 35% of enterprises worldwide using GenAI to co-develop digital products and services by 2025, potentially doubling their revenue growth compared to their competitors.
In this article, we will explore the nuances of employing AI in software development, highlight the tasks that are most suitable for AI, and summarise our project and its game-changing results.
The role of AI in software development
We all know what a classic software development cycle looks like. It all starts with forming a vision and understanding what is being developed and why. Then, we set to compiling business and functional requirements and creating the design and architecture of a future solution. Finally, we proceed to coding, testing and deploying a solution in the enterprise’s environment.
If we decide to employ GenAI in the process, we need designated AI features and tools for each of the above-described tasks.
Today, we understand how to use AI as an assistant that helps search for ideas and analyze business requirements. However, when it comes to architectural design, GenAI services perform somewhat weekly. At this stage, we still need more adapted tools that can represent architecture as a picture or flowchart.
On the contrary, at the code implementation stage, AI is of more help. Most modern IDEs (Integrated Development Environments) incorporate an LSP (Language Server Protocol) server that analyses code structure and suggests its continuation based on the structures of libraries and classes. Moreover, trying to avail of this AI capability, the industry has started exuberating many free plugins and web applications that can continue existing code. Today, there is an opportunity to develop these tools further, so they not only suggest options for continuing code started by a human but can also autonomously develop the logic of coding a program or its fragment.
Within our project for an industrial enterprise, we closely examined AI solutions. Our primary interest was in deeply understanding their usability, possibility and convenience in coding environments. Additionally, we studied the quality of the models that form the foundation of these solutions. It was important to find the most effective tool for optimizing code development.
What is expected from AI, and where it can be used
Another project result was a comparative analysis of AI tools in terms of tasks they can perform and scenarios they can be used in. This allowed us to point out what exact functionality software developers require of code generation tools.
For example, it turned out to be essential that each AI tool had a chat, could continue to code “on the go” (code suggestion feature), could index the existing code base (vital for the AI model to understand the specifics of a particular project), and could load external sources, such as documentation.
During development, we distinguished a dozen different tasks. It turned out that using Generative AI was effective for almost half of them, including Text2SQL, Bash generation, Code translation, Random data generation, Regexp generation, CSS from comments, Code documenting, and Code sketching.
What about people?
We shall not forget that the primary goal of AI is to boost employee productivity. Within our project, we contemplated how to properly offer an AI tool to specialists, how to encourage them to use it and how to scale it.
For this, we had to understand how people use AI, what they like about it, what irritates them, and why they don’t trust it. In other words, it was necessary to identify the drivers and barriers to using GenAI.
As a result, we identified four main archetypes.
- “Pioneers”. These are employees who seek unconventional applications of AI tools, developing new usage scenarios.
- “Prompt Masters”. They find common ground with AI and know how to give it instructions effectively.
- “AI Innovators”. These people are capable of suggesting interesting ideas for developing GenAI tools that can be converted into new functionality.
- “Carefree”. These employees do not come up with their own initiatives and expect detailed instructions with examples and justification for use. They are ready to engage in the use of GenAI only when they find themselves in the minority.
The advantage of leveraging AI. In numbers
AI tools can only automate a portion of the work that software developers currently perform. Typically, a developer spends about 4-5 hours coding during their workday. The rest of their time is spent on auxiliary tasks, such as clarifying requirements, finding solutions, consulting colleagues, handling organizational duties and so on.
Therefore, the estimates by analytical companies suggesting a 10-15% productivity increase in software development through using GenAI are quite realistic. Our own project-derived estimate of 13% is based on analyzing the capabilities of GenAI and calculations related to the actual distribution of working hours among those involved in software development.
AI tools can significantly boost productivity when used for specific tasks, such as refactoring existing code segments. Normally, these tasks become just another item on a developer’s to-do list and require considerable time. Revising ready-made code with the help of AI can increase labor productivity by 34%.
Bottom line
The greatest challenge in implementing AI tools in software development lies in scaling them across an entire company. Each developer has a different attitude towards AI solutions, different expertise, and different levels of readiness to develop skills with these tools.
Therefore, the most challenging tasks involve developing expertise in GenAI within the company or team. This task necessitates the presence of technology ambassadors who will later become providers of such practices and knowledge.
Our experience within the project has shown that management should focus on ensuring the accessibility and simplicity of AI tools, initially for the pilot group participants and then for all developers. At the same time, project management needs to start with developing detailed instructions and conducting training, workshops and individual coding sessions to instill basic prompting skills and demonstrate tools’ broad capabilities.