November 10, 2004

Release 2: Pair Programming and Programming Outcomes

One of the most controversial practice of XP is that it advocates the use of Pair Programming.

Why on earth would you want two people in front of one screen, sharing one keyboard. Surely this is a waste of time and money, and the capacity or velocity of the team would be improved if we did not do pairing at all.

Maybe, maybe not... In fact, probably not.

Some research has been done (http://www.pairprogramming.com/) to try and compare singletons and pairs in code production.

When somebody sits down to write some code,


  1. they don't just code, they also "communicate"
  2. there are more than one outcome to this action (ie: sitting in front of a computer to "produce code"). The first few outcomes I have in mind are code does what it is supposed to do + coding conventions are respected + it is the simplest thing that could possibly work + it is refactored + test is writtent first + integrated at often as possible...
  3. nobody can for an extensive period of time keep more than one primary outcome in mind and deliver to all of them (see above, there are probably more outcomes actually).
  4. we are after all human and can make mistakes
  5. we are after all human and need a bit of encouragement and recognition when we do something is always welcome. A pair can provide this.
So, why is it so difficult for the teams who want to pair to be able to do so?

One of the reasons is that whatever we say, we are bums on sits, and we cost money. The source of this money is largely the "Business". They mandate the IT function to do stuff, and there is no metric that exists to actually convert them to the fact that it is not how much code you write that matters, it is how good your code is for the project and the rest of the organisation.

The "Business" speak about Total Cost of Ownership (TCO) as a measure of how much a project will really cost. Needless to say that this measure is most of the time based on finger in the air calculation, that nobody really endorses and signs up to.

There is yet no plan to introduce the notion of Total Value of Ownership, where the utlimate value of a programme/project/storie and eventually how it is delivered comes into play. If this did exist, pair programming could be "sold" to the business. One of the main "Business" and "IT" disconnect regarding XP could be overcome...


0 Comments:

Post a Comment

<< Home