Piloting XP on Four Mission-Critical Projects

Author(s): Drobka, J.; Noftz, D.; Rekha Raghu
Venue: IEEE Software, Volume: 21 , Issue: 6
Date: Nov.-Dec. 2004

Type of Experiement: Case Study


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

Piloting XP traces Motorola's experiment with extreme programming applied to mission-critical software projects. Four development teams worked for 18 months on four different projects; the teams used extreme programming practices as their guideline, modifying the process to fit their needs as appropriate. An outside consultant, or "coach", was brought to ensure that the extreme programming processes was being used properly. The extreme programming process was chosen for its ability to adapt to changing requirements; development projects at Motorola had a history of fixed completion dates, dynamic requirements, and development beginning before said requirements were fixed.

Extreme programming is a documentation-light process. Features for the software were documented as use cases, which were written by the customers, submitted to Motorola's technical-review process, and delivered to the development team. The teams also used a high-level architecture design document to supplement understanding of the code base. At the end of each iteration, the architecture document was updated to reflect the changes made to the code base. The architecture document was then reviewed by the team, independent object-oriented experts, and outsiders to the team.

Qualitative results were obtained through a survey distributed to all members of the extreme programming teams. The survey measured the benefits of extreme programming on the following criteria: morale, learning, productivity, test coverage, quality and maintainability, and how well the process was followed. Productivity was measured in KAELOC - thousands of assembler-equivalent lines of code - over staff effort. All extreme programming teams showed increased productivity over existing waterfall teams; two of the extreme programming teams were over three times as productive as the waterfall teams. The teams obtained between 73 - 95% unit test code coverage. The teams also experienced a 51 - 74% increase in quality, measured in total defects found / KAELOC. These and other metrics led to the conclusion that extreme programming can be successfully applied to mission-critical projects with long life-spans, with significant benefits.