Agile project dynamics a strategic project management approach to the study of large scale software development using system dynamics
The primary objective of this research is to understand the dynamics of software development projects employing the Agile approach. A study of several Agile development methodologies leads us to the identification of the " Agile Genome " seven characteristics that Agile projects share. We gain insight into the dynamics behind Agile development by constructing a System Dynamics model for Agile software projects, called the Agile Project Dynamics (APD) model, which captures each of the seven genes as a major component of the model. Large scale software engineering organizations have traditionally used plan driven, heavyweight, waterfall style approaches for the planning, execution, and monitoring of software development efforts. This approach often results in relatively long development schedules that are susceptible to failure, especially in a rapidly changing environment: Schedule pressure, defects and requirements changes, can drive endless redesign, delay the project, and incur extra cost. Many in the commercial software world have dealt with these pressures by adopting Agile Software Development, an approach designed to be flexible and responsive to high change environments. Software development teams that are said to employ " Agile development " in effect practice a variety of " agile methods " These practices are advertised to reduce coordination costs, to focus teams, and to produce stable product iterations that can be released incrementally. Agile software development has become a de facto approach to the engineering of software systems in the commercial world, and is now entering the aerospace and defense sectors. The APD model developed in this research aids in the understanding of the impact that alternative combinations of Agile practices, combined with different management policies, have on project performance, compared to a waterfall approach. This research culminates in a formulation of insights and recommendations for how to integrate Agile practices into a large scale software engineering organization. 4 This page left intentionally blank 5 Acknowledgements I'd like to thank Stuart Madnick, my advisor, for his guidance and direction in completing this research. As a member of Dr. Madnick's Information Technologies Group in the Sloan School of Management, I have had the incredible opportunity to collaborate with and learn from some of the brightest minds on the planet. A special thank you also goes to Allen Moulton, research scientist at the MIT Engineering Systems Division, whose encyclopedic domain knowledge and valuable insights contributed greatly to the quality of this work. I would also like to express my appreciation to our project sponsors,