Iteration planning occurs on the first day of the iteration. A guiding tenet is -- those who do the work, plan the work -- so it is essential that the entire Delivery Team participate in planning. It is a collaborative (not directed) exercise facilitated by the ScrumMaster. The Product Owner is a key participant who will answer the tough questions about the Product Backlog that arise during iteration planning.
At the end of iteration planning the team makes a commitment to deliver the selected items. There is also a reciprocal commitment that (barring emergencies) the Product Owner will not change the scope of the iteration.
The team only plans the work they know they can commit to completing and this determines what they pull from the Product Backlog. The team's velocity may be enough to help in this decision. However, new teams on their first or early iterations will either not know their velocity or will not have a velocity stable enough to use as a basis for commitment. For these teams we suggest using capacity to make commitments and then evolving when ready to more lightweight techniques.
With the capacity based technique we pull items off the backlog and plan the tasks needed to deliver those items until we have reached the team's capacity.
First we determine the capacity of the team. Simply multiplying the number of days in the iteration by 8 will not yield a realistic number. We all spend time on unplanned and overhead activities and we need to allow for this. New agile teams are quite often not part of a mature agile organization, so expect conflicting priorities and team members having to split time across multiple teams.
For example Sophie's team may have a 2-week iteration. 1 of the days may be allocated for iteration planning, the demo and the retrospective. Sophie decides that on any given day she manages 6 hours of interrupted implementation work. Also Sophie still has some handoff work to do for her previous team and that occupies 20% of her time. Sophie's capacity is therefore 43 hours (9 * 6 * 80%).
Once we determine capacity, planning proceeds as follows:
1. The team pulls the highest priority item off the product backlog
2. The item is discussed in enough detail to identify tasks that need to be performed
3. Team members sign-up to own the tasks
4. Tasks owners estimate the number of ideal hours they will need to implement each task
5. The team checks the cumulative number of task hours against their capacity and decides if they can commit to delivering the product backlog item
6. If so, the team commits to the product backlog item and planning continues with the next highest priority item (step 1)
7. Once the team has reached full capacity, the team commits to the iteration and planning is complete
It is a fundamental of a self-organizing team that tasks are not assigned. However tempting it may be for the ScrumMaster they should not steer this process. Tasks are estimated in ideal hours -- the amount of time to complete a task with no distractions or waiting.