Report
Beyond Code Generation: More Efficient Software Development
Beyond Code Generation: More Efficient Software Development
Generative AI saves time, but meaningful improvements require a broader agenda.
- min read
- Summarize with Generative AI
Report
Generative AI saves time, but meaningful improvements require a broader agenda.
This article is part of Bain's 2024 Technology Report.
The introduction of generative AI coding assistants has raised expectations of improving the efficiency of software development. In practice, engineering organizations that are using such tools are seeing efficiency improvements of about 10% to 15% on average (see Figure 1). In many cases, companies fail to monetize even these gains because they’re unable to reposition the saved time and resources to productive uses.
But more is possible. Organizations that take a more comprehensive approach can see efficiency gains of 30% or more. The extra gains result from going beyond generative AI code generation, using generative AI for other tasks, and taking a more comprehensive approach to improving efficiency, including determining the right baselines and metrics.
Developers spend about half their time writing and testing code, so although they report a 30% improvement from generative AI against those activities, this represents a net efficiency improvement of 15% across developers’ total time (see Figure 2). A more comprehensive approach to efficiency includes not only generative AI-assisted code generation and testing, but a comprehensive look at three dimensions: focusing on the right work, ensuring speedy, high-quality execution (including full potential use of generative AI), and optimizing resourcing costs.
By far, the fastest way to improve efficiency is to refocus efforts on the work that creates the most value, concentrating on several sets of actions:
Better visibility into how time is actually spent often reveals a mismatch between leadership’s ambitions and the reality of how resources are allocated.
There are many aspects to executing rapidly with high quality. Generative AI is top of mind today, but foundational elements such as continuous delivery and modern architecture can be more effective ways to drive efficiency (see Figure 3).
Deploy full potential generative AI. Leaders in generative AI adoption can achieve up to 30% efficiency from optimal deployment. Intuit, a financial technology platform for consumers and small businesses, offers a good example with its initiative to move from “scrappy testing” to scale development.
Intuit set out to improve efficiency and productivity around two themes. First, it wanted to increase development velocity to deliver innovative products and solutions to its 100 million customers, with speed and at scale. Second, it wanted to take full advantage of the inherent benefits of generative AI on its modern development platform to streamline end-to-end development by “shifting left”—that is, bringing critical tasks forward in the software development life cycle. Among the key takeaways from testing and scaling more than 30 different use cases are:
Plan for continuous integration and delivery. Before developer teams deploy new code, they need to ensure that it won’t break anything in the live product or create security risks. Manual testing is time-consuming, and deploying to a live environment would be risky. Automating the testing in a virtual product environment is a more efficient and safer way to confirm the viability of new code.
Continuous integration and delivery of new code also improves efficiency. It’s a more efficient way to manage risk because developers can assess the effects of each new deployment, and it allows companies to address security threats as they are discovered, limiting potential harm that could occur if the patches had to wait. Customers also appreciate a quick response to identified issues and the consistency of ongoing product improvements.
Maintain a modern architecture. Modular architecture allows teams to adapt and improve products without reinventing the whole. A continuous investment in modular design avoids falling into technical debt—the cost incurred when companies fail to keep up with evolving technology and must invest heavily at some point to regain their competitive edge.
Two software development organizations operating at similar speeds and quality can show very different cost profiles, depending on each organization’s model and talent structure. Geographical footprint, outsourcing levels, ratio of senior engineers to other team members, and the roles that various functions play all help determine costs. For example, a staff overloaded with senior engineers can be costly and may be slower to adopt new practices, whereas a staff with too many junior engineers may lack technical depth and result in higher costs despite savings.
Many companies struggle to understand their baseline efficiency and measure the improvements they try to get from new initiatives like generative AI. About two-thirds of leaders surveyed aren’t satisfied with the insights they’re getting—or not getting. Many senior executives see software engineering as a black box: They don’t know where the money’s going.
Building an effective measurement system requires a bespoke approach and focused attention. To avoid overload, a good target is 3 to 5 KPIs for the senior executive level and up to 10 KPIs for engineering leadership. Tiered systems address different needs of different groups:
A dedicated engineering productivity tool to measure efficiency is an essential enabler.
Meaningful improvement is possible in software development, but the effort required is more far reaching than introducing a generative AI coding assistant. Investments that increase efficiency, improve execution, and optimize costs consistently pay off, making the effort worthwhile for any R&D or other software development organization.