University and Pair Programming don’t Mix
Currently I am taking a software engineering course in which the prof is attempting to teach Extreme Programming (XP). As part of the class, all the students have to divide into small groups (of 5-6 students) and create a “real world” application. This assignment must be done using the principles of XP. The problem is that pair programming does not work in a school/university environment.
Why? Simply because everyone is too busy. XP requires a fair bit of dedication, a coach, and people who are in the same room for 8 hours a day, 5 days a week. At school, you have people who are never together for more then a few hours, who all have different schedules, and all have different methods for working. Some like to program at night, some during the day, and some program only on Saturday’s during the hours of 3pm - 11:59pm with the exception of 5:30-6:00 pm when they are having a snack.
In addition, you also have people of very different abilities. Some students are incredible programmers and some are dunces–most are somewhere in between, but the continuum still exists. So when people get together to pair program, you spend most of your time explaining what the code does so far and very little time actually creating new code.
Dedication to the project is the last stumbling block in the way of pair programming at school. In any average group, I would guess that you only actually have about half the students really dedicated to the project and the rest are only doing it to get the marks. And you always have at least one student who simply doesn’t care and is hoping to slide by by letting everyone else do the work.
Therefore, pair programming does not work at school. I think my course would be much better served trying to teach a more open source model of distributed development instead of XP. Just my two cents on one of the classes that I am taking.