Extreme programming for distributed legacy system reengineering

Author(s): Bin Xu
Venue: 29th Annual International Computer Software and Applications Conference, 2005. COMPSAC
Date: 2005

Type of Experiement: Case Study


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


Extreme Programming for...System Reengineering is a case study of extreme programming applied to a legacy reengineering project. The project employed a development team, business requirements team, and quality assurance in three different locations globally; teams and members at these three locations played the roles of programmer, customer, tracker, consultant, tester, coach, and big boss. The development team was split into two groups: the reverse engineering group and the forward engineering group.

Due to practicalities and cost, an on-site customer practice was abandoned; instead, the reverse engineering group acted as the customer, eliciting requirements from the legacy source code and consulting with the business requirements team when necessary. The reverse engineering team would generate user stories from the components in the source code, and deliver them to the forward engineering team; this process repeated in an iterative fashion.
Overall, the team completed the project under schedule by one week, with an almost 50% increase in productivity measure in lines of code per day. The overall code base of the reengineered project was 65% smaller than the legacy code base. The reengineered project also boasted only 13% of the bug rate of the average non-extreme project.