Figure 1: Capabilities of AI agents across every phase of the software development lifecycle
Code Writing Code THE NEXT MAJOR DISRUPTION IN SOFTWARE DEVELOPMENT Jarid Cottrell, Josh Gordon, Michael Martoccia, and Sahil Sanghvi T here are some technologies that have a before and after moment: the internet, hosting applications
EXAMPLE AGENT CAPABILITIES
An AI agent can help with solution planning and requirements gathering by functioning as a chatbot that interacts with stakeholders to gather requirements through natural language conversations. The chatbot can help elicit detailed project requirements and specifications from nontechnical users and turn them into various deliverables, such as product roadmaps, architectural documents, or agile stories to scope out.
A generative design AI agent can automatically create design concepts based on input parameters and constraints. This can assist in generating multiple design options quickly, allowing designers to explore creative possibilities.
AI Agents: The Future of Coding AI agents are self-governed, goal-driven entities focused on a role that aims to tackle a challenge. The AI agent uses a series of instructions or prompts against an LLM to develop a list of tasks, determine the reasons for completing them, and initiate action. Unlike traditional language models, such as ChatGPT, which provide single responses to user queries, AI agents engage in complex workflows with minimal human intervention. In these workflows, the model converses with itself to perform complex decision making and can take actions using tools given to them. This allows the agent to work through the different phases of the software development lifecycle, including planning, design, implementation, and testing (see Figure 1). In the not-so-distant future, a software developer will be able to describe tasks in natural language and have an AI agent build the step-by-step plan, complete all the tasks, check for errors and make revisions, and provide an output, whether that be in the form of code, text, audio, or video. And it will do so at the speed of light, awaiting the developer’s feedback and enabling faster software development cycles than ever before. AI agents will allow development teams to scale their productivity, with humans providing oversight.
The engine powering AI agents are the LLMs, which have been trained on a massive amount of data, including code libraries and technical examples. This enables AI agents to be used within development workflows and across the software development lifecycle as the new medium for interaction between developers and code. With AI as a partner in coding, software engineers can halve their coding time. There are predictions that AI agents could boost developer productivity more than 4-fold by 2030, and there are those who predict it will take half that amount of time. To illustrate this further, here is an example from the development phase of the software development lifecycle. A software engineer could task an AI developer agent with any task, from front-end website development to machine learning model creation. With only a natural language prompt as an input, the AI agent would autonomously output code files to a local directory. The developer can instruct the agent to revise its work throughout the process. This allows the developer to increase their productivity through AI code creation while remaining in the loop through transparent communication from the agent as it writes, tests, and finalizes the code. Booz Allen is currently building AI developer agents to review GitHub pull requests, which take significant time to thoroughly assess. By using an agent, pull requests
in the cloud, containerization with Docker technology, and automation with continuous integration and continuous deployment (CI/CD). All these innovations changed the landscape of how software developers interact with code and data, using new technologies as the medium. And now it’s happening again with AI, and software development is officially disrupted. Rapid advancements in generative AI have impacted every stage across the entire software development lifecycle. New AI-powered tools are being developed in functional verticals, with a concentrated focus on the development phase—and momentum is building around the review and testing phase. Massive innovation has brought about a seismic shift in a short period of time: from a world where humans solely wrote code to one where AI is an indispensable partner in coding. Tools like GitHub Copilot and ChatGPT have become the new normal, revolutionizing the way teams approach every aspect of software development. The next disruption will be the application of large language models (LLMs) in the form of AI agents. With AI as a partner in software development, are we on the cusp of a revolution that could render traditional coding obsolete?
An AI developer agent can perform many functions, from code creation to pull request reviews and suggestions. Coding agents can operate as plug-ins and autonomous actions within the tools developers already use, such as VS Code and GitHub.
Review and Testing
An AI testing agent can autonomously review code and create unit tests within developer repositories. This allows developers to spend more time on innovative, mission-focused work and less time testing code for errors.
An AI deployment agent can monitor the deployment process and automatically roll back code changes if anomalies or performance issues are detected. This ensures smoother deployments and reduces downtime.
Maintenance and Operations
An anomaly detection AI agent can continuously monitor system performance metrics and user interactions. It can identify abnormal patterns, trigger alerts for proactive maintenance, and make code suggestions to improve performance based on its findings.
autonomously generate and optimize code in collaboration with other AI systems—a new era of AI helping AI to code. This will increase the iteration speed of development, yielding improvements from faster feedback across the various phases of the software development lifecycle. Human trust of AI will also increase, resulting in development teams expanding the responsibilities given to their AI developer agents. Eventually, these models will evolve into multimodal systems, combining text, speech, and vision to unlock a new level of conversational generative AI. However, this advancement is not without cost. Organizations will need to develop frameworks to manage AI agents and monitor token usage to effectively control the AI-powered development lifecycle.
• Empowered Learning and Workforce Development. AI agents facilitate interactive and personalized learning experiences, automating routine tasks and allowing the workforce to focus on strategic initiatives, thereby enhancing job satisfaction and productivity. • Adaptive Evolution. AI agents
can be automatically reviewed, with the agent suggesting code for the developer to incorporate before merging the code back to the main repository. The value these agents bring is multi- faceted: • Collaborative Efficiency. AI agents streamline task execution collaborative environment where human intervention is minimized and long-term efficiency gains are realized. • Autonomous and Collaborative Problem Solving. AI agents independently devise solutions to complex problems, working in tandem with human counterparts to achieve comprehensive and accurate results. by managing multiple tasks simultaneously, fostering a
continuously evolve to solve increasingly complex tasks, enhancing their value and adaptability. They leverage
advancements in AI models and tools, ensuring safety, security, and the generation of data-driven insights. As AI agents become more prevalent and task-specific, AI systems will
“Pre-trained AI models represent the most important architectural change in software since the internet.”
— Matt Bornstein and Rajko Radovanovic , in “Emerging Architectures for LLM Applications” (Andreessen Horowitz)
VELOCITY | © 2023 BOOZ ALLEN HAMILTON
Powered by FlippingBook