Extreme programming: a university team design experience

Author(s): Kivi, J; Haydon, D; Hayes, J; Schneider, R; Succi, G;
Venue: Electrical and Computer Engineering, 2000 Canadian Conference on
Date: May 2001


Link: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=849579


This study reported on the results of trying extreme programming in a fourth year undergraduate team design course at Calgary University; the course had previously employed a typical waterfall process. The four members of the team had no prior experience with extreme programming, and very limited experience with the development language used. The team adopting an incremental development process with 3-4 week iterations, with a functional project deliverable due at the end of each iteration.

Paired programming, an extreme programming practice, was discontinued by the team halfway through the project. Scheduling conflicts between students with different academic schedules was an important factor in the decision to discard paired programming on the project. Unlike an industry project, the schedules of the students prevented them working directly with each other for prolonged periods of time; this may be a common thread among academic projects that should be taken into consideration when deciding on a software process.

Due to the iterative nature of the process, an overall understanding of the requirements was not achieved early on in the project; this lead to the team spending a large amount of time refactoring the code base later on in the project.

Overall, the team found that the iterative process helped them focus their efforts and more quickly receive feedback from their customer. However, a lack of understanding of the requirements near the beginning of the project caused problems throughout the rest of the process. The team felt that given a new project, the principles of extreme programming could be applied to more positive results.