AgileCoder: Dynamic Collaborative Agents for Software Development based on Agile Methodology
Minh Huynh Nguyen, Thang Phan Chau, Phong X. Nguyen, Nghi D. Q. Bui
2024-06-19

Summary
This paper introduces AgileCoder, a new system that uses multiple software agents to improve how software is developed. It applies Agile Methodology, which focuses on teamwork and incremental progress, to make the development process more efficient.
What's the problem?
Many existing software development methods are outdated and overly simplistic, often following a linear approach called the waterfall model. This model doesn't reflect the real-world challenges of software development, where requirements can change and teams need to adapt quickly. As a result, these methods can lead to inefficiencies and difficulties in managing complex projects.
What's the solution?
AgileCoder addresses these issues by creating a multi-agent system where each agent takes on specific roles found in Agile teams, such as Product Manager, Developer, and Tester. These agents work together in short cycles called sprints to develop software incrementally. Additionally, AgileCoder includes a feature called the Dynamic Code Graph Generator, which helps agents understand the relationships between different parts of the code as it changes. This leads to better code generation and modifications throughout the development process.
Why it matters?
This research is important because it represents a significant improvement in how software is developed. By using Agile principles and collaborative agents, AgileCoder can handle complex projects more effectively than traditional methods. This could lead to faster development times, higher quality software, and better adaptability to changing requirements, making it a valuable tool for modern software engineering.
Abstract
Software agents have emerged as promising tools for addressing complex software engineering tasks. However, existing works oversimplify software development workflows by following the waterfall model. Thus, we propose AgileCoder, a multi-agent system that integrates Agile Methodology (AM) into the framework. This system assigns specific AM roles such as Product Manager, Developer, and Tester to different agents, who then collaboratively develop software based on user inputs. AgileCoder enhances development efficiency by organizing work into sprints, focusing on incrementally developing software through sprints. Additionally, we introduce Dynamic Code Graph Generator, a module that creates a Code Dependency Graph dynamically as updates are made to the codebase. This allows agents to better comprehend the codebase, leading to more precise code generation and modifications throughout the software development process. AgileCoder surpasses existing benchmarks, like ChatDev and MetaGPT, establishing a new standard and showcasing the capabilities of multi-agent systems in advanced software engineering environments. Our source code can be found at https://github.com/FSoft-AI4Code/AgileCoder.