Introducing software engineering by means of extreme programming

Author(s): Hedin, G.; Bendix, L.; Magnusson, B.
Venue: 25th International Conference on Software Engineering, 2003. Proceedings.
Date: 3-10 May 2003




Introducing software engineering... is an experience report of one of the Lund Institute of Technology's software engineering courses. The course aims to teach software engineering principles to undergraduate students by using extreme programming methods and practices; the class in study consisted of 107 students, split into 12 teams of 8 - 10 people each.

The course applied all twelve methodologies of extreme programming to some aspect. Pair programming was adopted for all teams, with both fixed and rotating pairs, depending on the individual team; the authors found that personality played larger role in the productivity of a pair than competence. Test-driven development was determined to be one of the harder practices to practice effectively. Some teams ended up writing their units tests after the implementation, while others wrote their tests too generic or specific. The extreme programming practices were supplemented by other suggested practices, including First Iteration, On-Site Coach, Team-in-one-room, and additional Documentation.

The study reaches a larger scope in the total number of participants than many other studies in this area. The authors noted the students' general difficulty in properly applying the concepts of test-driven development and simple design. Refactoring was another area of extreme programming that needed further direction; the lack of a refactoring tool had the effect of discouraging students from refactoring. While there are areas of the instruction which merit improvement, the authors found extreme programming to be an "excellent aid in learning".