The cycle of UserStory
is a key part of ExtremeProgramming
. 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. --PaulDyson
. On C3 we had the luxury of a failed project up against the wall, so when KentBeck
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, CommitmentSchedule
-ing them, IterationPlan
-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 ExtremeProgrammingTattoo
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. --RonJeffries
See also CustomerCoach