Task: Define Release
Purpose
  • To estimate the content and delivery date for a release of the product.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
  • None
Optional:
Outputs
Steps
Preparation

The steps for this activity are part of XP release planning. In order for this activity to be successful, the following preconditions should be met:

  • The customer has enough user stories at present to fill at least one release.
  • The customer understands the user stories very well.
  • The customer has defined acceptance criteria for the stories.
  • All team members that will be involved in developing the stories should be present.
Customer Presents the User Stories

The customer describes each story to the team and explains the conditions under which the story is going to be considered complete.

Developers Estimate the User Stories

The developers discuss each story and come up with an estimate based on their experience. High-level design discussions take place as developers try to understand the story and discuss different ways of implementing it. In some cases, the team will not be able to provide a reasonable estimate:

  • They do not understand the story: the team should be asking more questions to the customer.
  • The story is too big: the developers don't have a good grasp of the scope. It should be broken down into smaller stories.
  • They don't know how to do it: they will need to do some research first.

Be careful to avoid analysis paralysis. The first few times the team estimates stories, it may take as long as an hour to estimate a story. The second story should take less time. Your goal should be to be able to estimate a story in only a few minutes.

As a rule of thumb, story estimates should not exceed the iteration length based on a pair of people dedicated to the story. When stories exceed the iteration length, the customer splits the story.

Customer Prioritizes Stories

Once all the stories have an estimated cost, the customer can prioritize the stories into the release plan.The customer organizes stories into iterations and sequences of iterations into releases. The sum of all story points in each iteration cannot exceed the team's velocity. At the beginning of the project, you will have to guess the team's velocity. Try one third of the ideal programmer time available in an iteration. After a few iterations, revisit the plan and use the team's measured velocity. See more on release planning in the planning game guideline.

More Information
Guidelines