See PlanningGame for another take on the same activity.
In ExtremeProgramming, we focus on FourVariables on any project: Resources, Scope, Quality, and Time. Even when the project is under stress (see FourVariablesUnderStress), the actions you can take must all work within the relationships between these variables.
In XP, we have UserStories for everything that needs to be done, and we estimate stories at the story level for our CommitmentSchedule, and at the level of each EngineeringTask to do our three-week IterationPlan.
The result of this is that, unlike most project teams, we actually do know how long it is going to take to get done. We have become remarkably accurate at this estimation, probably due to having so much practice at it.
When there is a new proposal for something that needs to be done (i.e. a change), we don't get upset, we just estimate it. We ask where in the priority ordering the new thing should go. We know how much engineering we can produce per unit time, so we know just how much it will push downstream.
If the user is thinking of a specific date to be done, we just say, "OK, we're 5 engineering weeks over that date, please remove 5 weeks worth of work to get us back inside your date."
Now, of course nothing will make a truly irrational user or manager become rational. However, imagine how much better equipped you are to negotiate, and to remain calm, when you know how long it will take to do what is being asked! The result is that at least one party in the room is able to talk about what the tradeoffs are and can be. You can actually give user/management the information they need to make an informed decision. More often than not, they will fight the hook a little and then get down to solving the problem.
Remember that people will raise objections as they go. Sales training (take some if you get a chance) will teach you that the first time an objection is raised you should ignore it. Usually they're just noise. If the objection really matters to the person, they'll bring it up again.
Here are some objections or threats and our parries:
Which one did Chrysler do? See CthreeProjectTerminated
For more XP scheduling information, check IterationPlan and CommitmentSchedule, and the pages pointed to from there. C3 uses a three-week period for the IterationPlan. Questions welcome of course.
I wonder. Would be productive or counter-productive to hum "You can't always get what you want" by the Rolling Stones as people filter into a meeting? Probably counter-productive.. Sometimes I get the urge to burst out in song.
Define "GoingPostal" for programmers: a whole team jumping on the meeting table shaking their butts, singing YCAGWYW. -- MichaelFeathers