Agile Software Development Processes |
Current Projects
BackgroundAgile processes are a family of lightweight processes that share a common framework called “Agile Manifesto” established in early 2001 by the Agile Alliance. The Agile Manifesto declares that agile processes value:
Due to the above values, these agile processes are generally light on documentation and metrics, but heavy on collaboration and dynamism. They also emphasize iterative and incremental software development. Examples of famous agile processes are Extreme Programming (XP), Scrum, Crystal, Adaptive Software Development (ASD), Feature-Driven Development (FDD), and Lean Development (LD). Agile processes have been highly controversial. They are very popular among practitioners, especially among small teams building software that requires fast development and fast reaction to changes. Others charge that agile is nothing more than a glorified form of code-and-fix. More research is needed on agile process models, thier practices, their merits, and impact [1]. Our research will not settle the controversy nor does it take sides in this debate. We wish to understand how agile development is used in real world settings and to compare how practice converges or diverges from theory. In addition, we will use Agile Processes as an opportunity and a context to reconsider previous assumptions about software tools and software lifecycles, and to explore new directions in program comprehension. In particular, the types and sequence of software artifacts that it produces, User Stories, followed by test cases, and then code, presents intriguing possibilities for linking high-level, domain information for the purposes of program comprehension. References[1] Mikael Lindvall, Vic Basili, Barry Boehm, Patricia Costa, Kathleen Dangle, Forrest Shull, Roseanne Tesoriero, Laurie Williams, and Marvin Zelkowitz, “Empirical Findings in Agile Methods,” in Extreme Programming and Agile Methods, vol. 2418. Berlin/Heidelberg: Springer, pp. 197-207, 2002. |