Alistair Cockburn and Kent and I have been chatting via email concerning the eXtreme Programming methodology, and a family of lightweight methods that Alistair is formulating. As part of getting to know each other, we have been accusing the other of this or that and then defending ourselves. Alistair said:
Extreme programming says, Do it My Way or Get Out. My philosophical stance is, Permit the Maximum Personal Variation. (It is not lost on me that the C3 project benefited from the Do it My Way approach.)
This really is not the case. Here’s my reply to Alistair, slightly edited:
I didn’t want to let this one lie. XP, to the extent that there is such a thing, doesn’t say “Do it My Way or Get Out”. Quite the contrary … the XP-like rules we use on C3 are rules the Team chose to live by, and the Team says “Do it OUR way, or get out”. And within the team’s rules, there is individual variation. In some areas (you will write unit tests, you will run the unit tests before releasing), there is very little variation. In others, there’s more. But there’s never much because the team has an internal social contract to do it the way we do it.
Kent and I like to talk tough. The XP rules, version C3, evolved as part of the process of getting the C3 team from dead stop to full speed. They learned a lot. I learned a whole hell of a lot. Kent can speak for himself, but my observation is that he learned a lot too.
This is the way of it: the rules expressed so strongly here aren’t my rules or Kent’s rules. They are the rules that the team embraces. We do require everyone to follow them, because we believe that they make us more effective. When the situation changes, or we get a better idea, we discuss possible changes and often change the rules. After all, “They’re just rules” is one of our rules.