Using any technique ritualistically will get you screwed up. XP is merely a tool, and like any tool it can be abused. To invoke the DrivingMetaphor, putting an idiot behind the wheel endangers both themselves and their passengers.
Any metaphor is subject to the question, who decides who is the idiot and of course, when? "Stay in school Mr. Gates" probably seemed like great advice particularly to the learned professor still working at Harvard who said it to him. See: SometimesYourGuessWasWrong. --TomLeylan
[Addressing the quote:]
Waiting will make you look secretive and unhelpful. What's more it's not in your interest to wait. The whole XP practice of having a customer onsite is to be able to bounce things off 'em sooner rather than later.
So if you see something that needs doing, though maybe not right now, the thing to do isn't just to sit and wait, but to go ask the customer to prioritize the story. If the customer says, "Oh that was just this week. We'll never need to do that again - don't worry about it," then trash the story. Otherwise, schedule it using the PlanningGame as per usual. --PeterMerel
And what happens when the goofball is wrong and you really do need to do it again? What happens when in fact you don't need to do that exact SQL query again but you do need to do another one? Might the situation occur (there is a leading question it happens every day) that "oh that's different" might only seem different to somebody with little experience... say a Manager?
XP stories don't come from managers, but from customers. Certainly a manager can still screw things up by lumping developers with an uninformed customer. Whether this happens depends on whether the manager is an idiot or not. In a decade of consulting I saw idiot managers befoul organizations more often than not, but I also saw decent managers make organizations hum. Placing an XP development beneath a good manager is in my experience very pleasing.
The customer can be a manager I suppose? We aren't trusting the recently hired clerk to design the software are we? I also don't think we need to categorize somebody as an idiot (if I did it I didn't mean to) but rather they often don't think out of the box. I am routinely asked to produce reports which, when I ask "what do you think you will do with data" the person can't think of an answer. They misunderstood what the data represents not unlike people using AOL for a day and concluding they "know" the Internet.
To get to the point, what if the customer is an idiot? Well, that leaves you two choices: replace the customer, or go find yourself another job. No process will save you if the business itself is in the hands of morons.
These alternatives have existed for centuries without the XP label.
If XP is for grunts then by all means keep them in the corral safely behind a plan laid out by somebody with a brain.
XP empowers developers and customers, gives them control over the way they work and the way they report. If you use it with grunts as developers, or as customers, or as coach/tracker, you're empowering idiots, and what you'll get is a disaster no matter how big the brain that plans for 'em.
And ditto for every other "system" known to man. Again there is nothing XP about this it is common sense.
Personally I can't count how many times I have had software development explained to me by people who have never written software but more to the point... the number of times I have been told "this won't be done again" and then it promptly is done again makes it one of the things I just plain expect to hear. --TomLeylan
Presuming, for a moment, that you're not stuck working with idiots, then it pays big time for every person, developer or customer, to do everything they can to watch the other guy's back. Under these circumstances it's really in your own best interest to help a customer put appropriate UserStories together, and to schedule them according to the most informed priorities you can find. Under those circumstances, if ItIsntInTheSpec, it's really best to negotiate it into the spec. --PeterMerel
Peter... they aren't idiots they simply don't know what a person with more experience knows. There isn't a badge given to those that know. It isn't a matter of "XP people" knowing and non-XP people not knowing. Nothing in the XP guidelines can prevent people with little real experience getting together, doing the XP thing, watching each others back with the final result being the software still doesn't work properly. It works according to what they all decided your UserStories said it should (we hope) and yet it still doesn't solve the larger problem.
If everything came down to a system we could just apply XP to education, economics, law and what have you and everything would be fine. It turns out that the problems which remain are not due to lack of a system.
And while I think my plea will be ignored in order to sell more shares of "XP" stock... please notice that nobody is saying that nothing in the XP genre works. On the contrary everybody I admire says "there are things I can use there" just like they have said about other systems and will say about future ones. --TomLeylan
(last edited November 27, 2000)