Even the C3 team only adopted PairProgramming
part way through, and KentBeck
has said that he was surprised when they set their rule that no production code can be written other than by two programmers working together.
to be Extreme, or is it optional? Granted that it seems to be better (more productive, if Sames will let me say it), some folks may just not want to do it, or some managers may just not be able to cope with it.
Can a project call itself Extreme without PairProgramming
? I am leaning towards "Yes". Y'all?
I guess that depends on who You are, who pose the question. If you are Kent, then if you say Yes, then Yes it is. If you are Alistair, then it doesn't matter if you say Yes or No. --AlistairCockburn
. I can feel my finger tips crackle.
But. My answer doesn't matter nearly as much as yours does. Try the pair programming practice as specified. If it doesn't work, work solo for an iteration. If that doesn't work better, go back. Then you'll know if it's mandatory or not.
My answer, which doesn't matter, is that I think XP will work much better with lots of pairing than without. My last two failures to form teams have been in groups where the folks refused to embrace pairing, although we did some. That certainly wasn't the only factor present, but it definitely was there. --KentBeck
Now I remember Kent telling us to program in pairs from the start. (Maybe I am wrong.) But no one did it. I remember working by myself and knowing that I was supposed to be paired. KentBeck
had to come in and pair with several of us before we caught on. I don't think it was because we didn't want to. We just didn't know how and didn't know it would actually be faster. I saw this again when moving to the VcapsProject
. When we agreed on PairProgramming
nobody worked that way. And part of it was that the SeasonedSmalltalker
-s were paired with the new people. Were were further admonished to produce. Pairing did not happen till later in the project when two SeasonedSmalltalker
-s, one of whom had experience in PairProgramming
, were paired together. Two of the programmers now knew it was better. When these two then paired with two other SeasonedSmalltalker
-s a spark was ignited and began to grow. It was only after all of the SeasonedSmalltalker
-s were setting a good example could any of the newbies be indoctrinated. At this point PairProgramming
is not mandatory and does not have to be. We just always program in pairs now because it works better.--DonWells