ABSTRACT
The agile development method (ADM) is characterized by continuous feedback and change, and a software system developed using ADMevolves continuously through short iterations. Empirical studies on evolution of software following agile development method have been sparse. Most studies on software evolution have been performed on systems built using traditional (waterfall) development methods or using the open source development approach. This paper summarizes our study on the evolution of an enterprise software system following ADM. We evaluated key characteristics of evolution in the light of Lehman's laws of software evolution dealing with continuous change and growth, self-regulation and conservation, increasing complexity and declining quality. Our study indicates that most laws of evolution are followed by the system. We also present our observations on agile practices such as collective code ownership, test driven development and collaboration when the team is distributed.
Supplemental Material
- }}K. Beck. Test-Driven Development: By Example. Addison-Wesley Professional, 2002. Google ScholarDigital Library
- }}L. A. Belady and M. M. Lehman. A model of large program development. IBM Systems Journal, 15(3):225--252, 1976. Google ScholarDigital Library
- }}A. Capiluppi, J. Fernández-Ramil, J. Higman, H. C. Sharp, and N. Smith. An empirical study of the evolution of an agile-developed software system. In ICSE, pages 511--518, 2007. Google ScholarDigital Library
- }}M. Fowler and K. Beck. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarDigital Library
- }}M. W. Godfrey and Q. Tu. Evolution in open source software: A case study. In ICSM, pages 131--142, 2000. Google ScholarDigital Library
- }}H. Hulkko and P. Abrahamsson. A multiple case study on the impact of pair programming on product quality. In ICSE, pages 495--504, 2005. Google ScholarDigital Library
- }}C. F. Kemerer and S. Slaughter. An empirical approach to studying software evolution. IEEE Trans. Software Eng., 25(4):493--509, 1999. Google ScholarDigital Library
- }}M. M. Lehman. Laws of software evolution revisited. In EWSPT, pages 108--124, 1996. Google ScholarDigital Library
- }}M. M. Lehman, D. E. Perry, and J. F. Ramil. Implications of evolution metrics on software maintenance. In ICSM, pages 208--, 1998. Google ScholarDigital Library
- }}C. Mann and F. Maurer. A case study on the impact of scrum on overtime and customer satisfaction. In AGILE, pages 70--79, 2005. Google ScholarDigital Library
- }}A. Mockus, R. T. Fielding, and J. D. Herbsleb. Two case studies of open source software development: Apache and mozilla. ACM Trans. Softw. Eng. Methodol., 11(3):309--346, 2002. Google ScholarDigital Library
- }}J. W. Paulson, G. Succi, and A. Eberlein. An empirical study of open-source and closed-source software products. IEEE Trans. Software Eng., 30(4):246--256, 2004. Google ScholarDigital Library
- }}K. Schwaber and M. Beedle. Agile Development with Scrum. Prentice Hall, 2001. Google ScholarDigital Library
- }}L. A. Williams and A. Cockburn. Guest editors' introduction: Agile software development: It's about feedback and change. IEEE Computer, 36(6):39--43, 2003. Google ScholarDigital Library
- }}G. Xie, J. Chen, and I. Neamtiu. Towards a better understanding of software evolution: An empirical study on open source software. In ICSM, pages 51--60, 2009.Google ScholarCross Ref
Index Terms
- Software evolution in agile development: a case study
Recommendations
Adopting to Agile Software Development
Abstract Agile software development can be made successful, but there is no well-defined way how to achieve this. The problem is that the successful adoption of agile methods and practices is a complex process and this process should be customizable for ...
The Combination of Agile and Lean in Software Development: An Experience Report Analysis
AGILE '11: Proceedings of the 2011 Agile ConferenceThere has been a noticeable focus shift from agile methods such as extreme Programming (XP) and Scrum to lean software development in the last several years, which is indicated as â from agile to leanâ . However, the reality may not be as simple or ...
A dependency taxonomy for agile software development projects
Agile software development is designed to achieve collaborative software development. A supporting pillar of collaboration is effective coordination, which is necessary to manage dependencies in projects. Understanding the dependencies arising in agile ...
Comments