Agile Software Development Processes


 

Current Projects

  • Stitch: Crossing the chasm between XP user stories and source code
  • Stitch is a program comprehension tool designed for use in the XP environment. It links user stories (described on physical cards or in a tool) to test cases and source code. Stitch tracks changes made to either user stories or source code, thereby aiding program comprehension in a dynamic fashion and providing 360-degree visibility to all stakeholders and participants.
  • Agile Development in Practice
  • In recent years, agile software development process models, such as Extreme Programming and SCRUM have become increasingly popular. Despite growing adoption by practitioners, there has been little academic study of the merits and impact of these process models. This project will study the state of agile software development in industrial practice. We will observe and document how agile development is used in real world settings through interviews and field site observations. We will compare how how practice of agile processes converge or diverge from theory and consult practitioners in the development of new methods and tools.

Background

Agile 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:

i) Individuals and interactions over processes and tools,

ii) Working software over comprehensive documentation,

iii) Customer collaboration over contract negotiation, and

iv) Responding to change over following a plan.

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.