Extreme Projects Require Extreme Customers

The cycle of User Story, Commitment Schedule, Iteration Plan, Engineering Task is a key part of Extreme Programming. This cycle builds a common understanding of what has to be done, and how long things will take. From this understanding comes a proactive response to newly perceived needs, to the inevitable mistakes that slow things down.

The stories are tangible and each has its own value and cost. You can arrange them as the situation permits ... and decide what not to do when you'd like to deliver earlier with less than everything, rather than wait.


It does sound like you're working with some very well trained customers? here. Writing stories, deciding what is important and what isn't, deciding which iterations they would like to see which features, is not the normal customer modus operandi in my business (financial software product developed by an independent software house) in my part of the world (London, UK). It really does sound to me that the customer is practicing (or being trained to practice) some of the underlying ethics of YAGNI/XP. --Paul Dyson

Yes, Extreme Projects Require Extreme Customers. On C3 we had the luxury of a failed project up against the wall, so when Kent Beck said "Do it this way", they did it that way. We did have to go through a lot of learning about how to write stories and how to plan and implement using them, but we had the basic buy-in.

I would say (Kent is a bit more open) that if you aren't doing the story cycle with writing them, Commitment Schedule-ing them, Iteration Plan-ning them, tracking them, you aren't doing XP. You might be following the coding rules, but that's not enough, IMO, to give you a good enough chance of success to get the Extreme Programming Tattoo.

OTOH, I made a short call at another client, where my job (I think) was to be bad cop to Ward's good cop. The primary customer seemed to feel that my story of customer involvement and such was threatening, and he took over the second day of my training. However, I've recently heard that the customers are now working actively with the developers, and that it is helping. Part of the process is empowering the customers to be there, and helping the developers understand that they really need someone else to decide what to do.

I don't know whether to celebrate or despair. But XP is about learning. Once you start the process, better things happen and everyone learns together what works and what doesn't. --Ron Jeffries



See original on c2.com