In Agile software development, an iteration is a time period of work, where the full software dev cycle is completed. Iterations are iterative, done over and over again. And yet, many project teams find making the most of each iteration challenging. On my current project, I feel like an important part of making each iteration solid and progressive is the iteration planning, which I feel is done very well. Iteration planning, done well, relies upon project management and each team member. Here are some of my observations.
Iteration Planning Process Characteristics
Done for EVERY iteration on the first day of the iteration.
Established system for tracking user stories. Ours includes a solid issue-tracking system, Jira. Each story is ranked, so priority is always known.
Well-defined story workflow statuses (eg, in work, resolved, closed) -- What they mean and when they change is clear to all.
Previous to planning meeting, select stories to work and estimate them -- encourage talk with other team members to avoid overlap/battling.
Days available are established for each individual team member.
Whole team is involved; Customer is not.
Each subteam/dev pair are given opportunity, in order, to pick up a higher-priority story for the iteration. Repeat, until all days available are filled.
Requires an organized project manager and responsible dev/qa team
Stretch goals are made -- limits down time at end of iteration; a padding for inaccurate estimates
Proper Planning Outcomes
The whole team knows the tracking of project. Many, small adjustments can be made more often.
Realistic work loads are given to every team member.
Vacation/admin time are taken into account.
The focus remains on small, 2-wk work chunks
QA effort gets face time
Team works to final product together
Scope can grow and the project can handle it on time and budget
You work only what you signed up for in the iteration. For hardening periods, there is no new work assigned, and this solidifies the idea of hardening the app.
Peer accountability is heightened.
What has your experience been with iterations and iteration planning? Are they effective at driving project completion or do you feel they're just arbitrary time cuts?