The Agile Developer's Handbook
上QQ阅读APP看书,第一时间看更新

Part 2 – Iteration planning

Phase 2 of the planning game focuses on planning the next iteration. The release plan is the principal ingredient to this process. If this is the first iteration, that's all we need. If, however, this isn't the first iteration, we'll also need the following:

  1. The team's project velocity. Velocity tells the team how much stuff we can get done in one iteration. To calculate it we take the estimates for the work completed in the last iteration and total them. This total is then used by the team to help them determine the right amount of work to commit to for this iteration. User stories are estimated in ideal weeks, so if we completed User Stories with a total of five ideal weeks, our velocity would be 5.
If the team doesn't have a project velocity, that is, it's their first iteration, they will have to use a degree of gut feeling. It will take at least 3 -4 iterations before their velocity begins to stabilize.
  1. As with Scrum, any User Stories that are still in flight from the previous iteration are carried over. This includes any unfulfilled acceptance tests or bugs. Work that is carried over usually takes precedence as it was previously prioritized higher than the other items on the Release Plan. These user stories are placed at the top of the Release Plan for this round of iteration planning.

With all these factors available to it, the team goes about planning the next iteration. It does this by selecting the next story from the top of the release plan and starts to break it down into smaller, more manageable chunks, known as tasks.

Tasks are estimated in terms of ideal days, which is how many days it would take to complete the task if there were no distractions. Half days can be used if necessary. The breakdown of tasks should be done by the people carrying out the work.

The team keeps selecting User Stories from the top of the release plan deck and breaking them down into tasks until they hit their project velocity, or they decide they can fit no more into this iteration.

Some teams assign tasks to developers during iteration planning, some teams don't. It does depend on how you break down User Stories into tasks and whether your team operates as specialists or generalists. It's more fluid if we don't assign tasks and we just let the next available pair pick up the next item to be done.