9 minutes to read With insights from... David Elliman Global Chief of Software Engineering david.elliman@zuhlke.com Each week brings new claims around the power of AI tools. And AI-assisted coding tools are no exception. They're turning the heads of business leaders and developers alike, promising to transform how software is built by using large language models (LLMs) – the technology behind ChatGPT and other AI applications you may have used. Over in the developer camp, Github is reportedly seeing great user feedback for its CoPilot product – the leading AI coding tool. Meanwhile, some business leaders claim that AI-enabled coding tools are driving unprecedented productivity gains and cost savings. As with any hotly anticipated technology, it’s key to approach claims critically and separate fact from hype. This article aims to do exactly that, providing a balanced perspective on the current state of AI in software development and how organisations can harness its potential strategically. We’ll also look at the future of AI-empowered software engineering – including the emerging field of agent-based systems. Let’s get stuck in! What is AI-assisted software development? Organisations are harnessing AI in software development to augment and optimise various aspects of the software development lifecycle. Generative artificial intelligence (GenAI) technologies can help software engineers with code completion, bug detection, automated testing, test-driven development, and code generation based on natural language. By learning from repositories of code and detecting development patterns, these tools aim to increase developer productivity, reduce errors, and accelerate the delivery of high-quality software. Reality check: separating fact from fiction While the potential of AI in software development is undeniable, it’s essential to approach the claims with a healthy dose of scepticism. Some proponents suggest that AI-assisted tools can boost developer productivity by orders of magnitude. But the reality is often more nuanced. ‘AI can automate repetitive tasks and provide intelligent suggestions. But it’s not a silver bullet that can replace the need for skilled developers, or automatically solve complex software engineering challenges. Not yet at least’. So far, the examples that have gained public attention only work on simple coding problems. And coding, after all, is just one step in the journey of getting digital products live. The business potential of AI-empowered software development Despite the limitations, AI-assisted software development holds significant potential for businesses. If used correctly, these tools can help streamline development processes, reduce time to market, and improve overall code quality by augmenting human developers. Research on this can be mixed, with quite wild growth gains being claimed and, more recently, some slightly more sobering reports. For example, there are reports from the likes of GitHub and Keystone.AI looking at the economic potential of faster, AI-empowered coding. And academic papers exploring the tangible impact of AI on developer productivity. At the same time, recent articles warn that the hype around these tools may not translate fully into complex, real-world scenarios. And emerging studies highlight potential drawbacks like decreased code quality. As the field matures, the true impact of AI copilots will likely depend on finding the right balance between speed and quality in the intricate world of software development. Still, organisations that strategically adopt AI in their development workflows could stand to gain a competitive edge by delivering software faster and more efficiently. Navigating the challenges AI shows a lot of promise when it comes to helping with the development of new software components. But its effectiveness in tackling complex codebases and legacy systems remains a huge problem. These older systems often contain intricate dependencies, outdated coding styles and patterns, and architectural choices spanning different technological eras. Refactoring and migrating such systems requires a deep understanding of the original business logic, historical context, the intricacies of the codebase itself, and the hardware it ran on. Teams of well-qualified people have systematically failed to solve this problem over the years. Talent moves on, and the data available to train these models is limited. ‘Current AI tools excel at narrowly scoped tasks like code completion, explaining, or creating documentation for self-contained modules. But they struggle to comprehend the broader architectures and dependencies of large-scale, distributed systems’. There have also been claims that AI-assisted tools generate problematic code. These models learn from vast datasets of existing code, which can contain biases, errors, or security flaws, thus propagating these issues. Overreliance on these tools might lead developers to accept AI suggestions without understanding the problem, making even human review difficult and potentially overlooking subtle bugs. What's more, complex ‘black box’ AI models make it difficult to know how code suggestions are made, hindering debugging and preventing informed decision-making. AI often lacks the contextual understanding to ensure that code aligns with the project's requirements. While these risks exist, they shouldn't deter the use of AI tools. Instead, treat AI-generated code with scrutiny, apply rigorous testing, utilise it for augmentation rather than replacement, and prioritise developer education on the tool's limitations. A holistic and responsible approach to adoption ‘Successful adoption of AI in software development goes beyond simply acquiring the latest tools. It requires a holistic approach considering organisational, cultural, and technological factors’. Organisations must invest in building the necessary infrastructure to support AI-powered development – from a data platform and robust data pipelines, to scalable computing resources. It helps significantly if the work is done within an agile environment because of its iterative nature and frequent checkpoints. Equally important is addressing the potential biases and security risks associated with AI-generated code. Rigorous testing, code reviews, and secure training pipelines are essential to prevent the introduction of vulnerabilities. Additionally, the aforementioned ‘black box’ nature of some AI models can pose challenges regarding explainability and compliance, requiring careful consideration and mitigation strategies. Ethical AI is becoming a business imperative with upcoming AI regulation (such as EU AI Act), so now is the time to adopt a robust responsible AI framework. Keeping humans in the loop While AI can automate specific tasks, it’s not a replacement for human expertise and creativity. As we explore in our article Will AI replace software engineers?, the most effective approach lies in leveraging the strengths of humans and machines. Developers can focus on high-level design, and code the higher-complexity parts of the solution, while AI assists with mundane and repetitive tasks. Meanwhile, organisations can unlock new levels of productivity and innovation by fostering a symbiotic relationship between human developers and AI tools. It’s crucial to treat AI as a force multiplier, augmenting the capabilities of human developers rather than aiming to replace them entirely. If we view the stages of software development discreetly, then there might be uses at each stage that help the rate of code flow into production. The future of AI in software engineering With the emergence of agent-based systems, we have a new kid on the software block: agentic AI. Agent-based tools utilise AI-powered ‘agents’ to automate, streamline, and enhance various aspects of the development process. These agents are autonomous, goal-oriented, and adaptive, capable of learning and adjusting their behaviour based on data, feedback, and changing conditions within the codebase. Think of it this way: agent-based systems in software development are akin to a team of specialised chefs in a bustling restaurant kitchen. Like an autonomous agent, each chef handles a specific task – crafting desserts, cooking mains, or preparing salads – working independently and collaboratively to ensure meals are served efficiently and satisfactorily. This concept mirrors how software agents specialise in bug detection or code optimisation tasks. They autonomously execute their duties while coordinating with others to streamline the development process, enhance code quality, and adapt over time based on feedback – much like chefs adjusting recipes to meet diner preferences. Below: examples of agent-based systems Agent-based tools Agent-based tools Agent-based tools include code review and refactoring agents that analyse code for potential bugs, security vulnerabilities, or style inconsistencies and suggest refactoring to improve code readability. Automated testing agents Automated testing agents Automated testing agents can write and execute test cases, saving developers time and ensuring thorough coverage. Documentation agents Documentation agents Documentation agents can maintain up-to-date documentation by tracking code changes and automatically generating explanatory text. Task management and prioritisation agents can help manage the project backlog, suggest task priorities, and predict potential delays or blockers. The pros of agent-based tools include increased efficiency, improved code quality, scalability to handle large and complex codebases, and the ability to provide real-time insights and alerts. However, there are also cons to consider, such as the need for careful monitoring and control over agent-made changes, the importance of understanding how agents reach their decisions for trust and explainability, the risk of overreliance on agents (leading to a reduction in developers' critical thinking skills), and the relative immaturity of the field. To successfully adopt agent-based tools, organisations must define clear goals, ensure access to high-quality data for the agents to learn from, and maintain a focus on human-AI collaboration, with agents augmenting developer expertise rather than replacing it. As agent-based tools mature, they hold immense potential to transform software development, increasing speed and accuracy and freeing developers to focus on creativity and innovation. Is the future faster or slower? AI-assisted, LLM-powered software development tools are impressive. But there are concerns that we may be reaching a plateau in their capabilities (although we all wait to see what GPT-5 brings). This view might surprise some people. After all, we see and hear AI hyperbole daily, if not weekly. LLMs, while adept at generating human-like text and code, struggle with long-term memory issues, contextual understanding, and the ability to pinpoint specific, relevant information within vast knowledge bases. However, emerging approaches are at least helping to progress the current paradigms: Agent-based systems Mixture of experts (MoE) models Mamba architecture Agent-based systems Agent-based tools sidestep the plateau by leveraging LLMs that are collaboratively goal-oriented, allowing for more targeted and context-aware assistance. Mixture of experts (MoE) models MoE models, which combine multiple specialised AI models, enable more efficient and accurate processing of complex tasks. Mamba architecture The Mamba architecture, focusing on sparse attention and efficient memory access, aims to tackle the ‘needle in a haystack’ problem that plagues current LLMs. As these alternative approaches mature, they may open new avenues for AI-assisted software development, pushing beyond the limitations of purely LLM-based tools. How to approach AI strategically AI-assisted software development, including the emerging field of agent-based systems, might transform how software is built. But navigating the hype and understanding the limitations is crucial for successful adoption. ‘Organisations must approach AI strategically, aligning its implementation with business goals and fostering a culture of collaboration between humans and machines’. Businesses can harness the technology's potential while mitigating its drawbacks by addressing the challenges posed by complex codebases, legacy systems, and AI's potential biases and security risks. As AI and agent-based tools continue to evolve, those who strike the right balance between human expertise and AI-powered augmentation will be well-positioned to reap the benefits of this transformative technology and shape the future of software development. You might also like... New Technologies – Will AI replace software engineers? Learn more Data & AI – AI predictions: how to prepare for AI-empowered business Learn more Data & AI – Responsible AI: a framework for ethical AI applications Learn more