XP release planning vs iteration planning for the CAPM
XP plans at two levels. A release planning meeting produces the release plan for the whole project, with stories estimated in ideal programming weeks. An iteration planning meeting at the start of each 1 to 3 week iteration turns the chosen stories into programming tasks estimated in ideal days.
Release planning
The development team estimates each user story in ideal programming weeks: how long it would take with nothing else to do. The customer decides which stories matter most. Developers and customers move the story cards around a table to choose the stories for the first or next release. The result is the release plan, which lays out the overall project.
Technical people make the technical decisions and business people make the business decisions. Iterations are not planned in detail here; each is planned just before it begins.
Project velocity converts the plan into dates. Planning by time: multiply the number of iterations by the velocity to see how many stories fit. Planning by scope: divide the total estimated weeks of the chosen stories by the velocity to see how many iterations the release needs.
If management dislikes the release plan, the story estimates must not be lowered. The team negotiates the plan until developers, customers and managers all agree.
Iteration planning
At the start of each iteration the customer chooses stories from the release plan, most valuable first, with estimates totalling the project velocity from the last iteration. Failed acceptance tests to be fixed are also selected.
The stories are broken into programming tasks written on cards in the developers' language. Each developer signs up for tasks and estimates their own, because the person who will do the task must estimate it. Tasks are 1 to 3 ideal days; longer ones are split.
If the task estimates exceed last iteration's velocity, the customer puts some stories off to a later iteration. XP calls this snow plowing. If the iteration has too little work, another story can be accepted.
Velocity and iteration length
Project velocity is the sum of the estimates of the stories finished in the iteration. XP says not to divide it by iteration length or team size, and not to use it to compare two projects.
Keep the iteration length constant throughout the project. That constant makes measuring progress and planning simple and reliable. If an iteration will not finish, hold another iteration planning meeting, re-estimate and remove tasks.
Where the exam catches people
Believing XP plans every iteration's tasks at the start of the project: only the release plan is made up front; each iteration is planned just before it starts.
Believing a manager or lead assigns and estimates XP tasks: each developer signs up for a task and estimates it.
Believing developers choose the stories for an iteration: the customer chooses them, most valuable first.
Believing you can lower story estimates to meet a date: XP says negotiate the release plan, not the estimates.
Believing velocity should be compared across teams: XP says it is no good for comparing two projects.