: Layman, LucasVenue
: Conference on Object Oriented Programming Systems Languages and Applications. Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications 2004. Student research competition.Date
: 2004Type of Experiement
: Case StudyClass/Experience Level
Empirical Investigation of the Impact of Extreme Programming Practices on Software Projects recounts the empirical evidence collected from two case studies, and compares both studies. The paper looks at five areas of interest regarding how extreme programming affects projects: pre-release quality, post-release quality, programmer productivity, customer satisfaction, and team morale. In order to measure performance in these areas, the authors constructed the Extreme Programming Evaluation Framework (XP-EF) to measure the first three areas, and used customer interviews and developer surveys to measure the final two subjective areas.
The first case study took place at IBM, where a small team of 7-11 developers worked on building Servlet/XML applications for a toolkit that other IBM teams utilize to create products for external customers. This case study analyzed two consecutive releases of the same product: one release completed using a traditional, waterfall-like approach, and the other completed using extreme programming methodologies. Although not completely adopted, the use of a “safe subset” of the extreme programming practices was decided upon by corporate culture, project characteristics, and team makeup.
Sabre Airlines was the second company to come under study, where a small team of 6-10 people worked developing a scriptable GUI environment that allowed customers to develop customized end-user and business software. Again, two releases of the same product were compared: the old release completed three years prior to the study using a waterfall-based process, and the new release that employed extreme programming.
Overall in both studies, morale, customer satisfaction, and productivity increased as a whole. Both teams increased their productivity and improved pre-release and post-release quality when using extreme programming, compared to the plan-driven approaches. Quality also increased, where the number of test defects per thousand lines of code (KLOEC) decreased. However, the specific extreme programming processes that were adopted in each of these scenarios are never addressed, but extreme programming, overall, is asserted to be worthwhile for teams of small size.