Evaluating the XP customer model and design by contract

Author(s): Back, R.-J.; Hirkman,P.; Milovanov, L
Venue: 30th Euromicro Conference, 2004. Proceedings.
Date: 2004

Type of Experiement: Quasi-Controlled Experiment
Sample Size: 7

Quality
3

Reference: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1333386

SUMMARY:

The Guadi Software Factory is an establishment designed to provide an environment in which different software methods may be tried and studied, and academic and industrial needs can meet. Evaluating...details a case study preformed at Guadi which focused on the principles of extreme programming, design by contract, and stepwise feature integration.

This experiment marked the first time that the extreme programming practice of an on-site customer was adopted; however, the customer was located in the same building as the development team, not in the same room as extreme programming practices recommend. Over the course of the project, the customer wrote up 15 user stories of about three sentences in length. The user stories were further developed and split into tasks during each iteration's planning meeting; each user story produced approximately three to four tasks. The customer was available whenever the development team required input or feedback. At the end of the project, the development team reported that having an on-site customer was beneficial, even though the development team interacted with the customer for less than 10% of the total project hours.

The study found a general rise in the quality of the software over previous projects, measured in defects per thousand lines of code. However, since this experiment contained several independent variables, this quality improvement may not be due to the adoption of extreme programming, and instead be due to design by contract or stepwise feature integration. The team saw a relatively slow productivity rate - an average of 10 lines of code per hour. This could be attributed to pair programming practices or unfamiliarity with the chosen programming language and processes.

0