Iteration Planning
Overview: Iteration planning is a key Scrum event where Agile teams commit to a set of User Stories and Tasks they will complete during the upcoming iteration. This guide covers the planning process, best practices, and tools for effective iteration planning.
What is Iteration Planning?
Iteration planning is a collaborative planning meeting where the Agile team selects User Stories from the Team Backlog and commits to completing them during the upcoming iteration (typically 2 weeks). The team also breaks down User Stories into Tasks and estimates the effort required.
Key Objectives
- Sprint Goal: Define a clear objective for the iteration
- Scope Definition: Select appropriate User Stories based on team capacity
- Task Breakdown: Decompose User Stories into implementable Tasks
- Commitment: Team commits to delivering the selected work
- Risk Identification: Surface and address potential impediments
Iteration Planning Process
Pre-Planning Preparation
1. Backlog Refinement: Ensure User Stories are well-defined and sized
2. Capacity Planning: Determine team availability for the iteration
3. Dependency Review: Identify any external dependencies
4. Previous Iteration Review: Review velocity and lessons learned
Planning Meeting Structure
Phase | Duration | Activities | Participants |
---|---|---|---|
Opening | 15 minutes | Review iteration goals, team capacity, previous iteration results | Full team |
Story Selection | 45 minutes | Select User Stories, discuss acceptance criteria, identify risks | Full team + PO |
Task Breakdown | 60 minutes | Break stories into tasks, estimate effort, assign ownership | Development team |
Commitment | 15 minutes | Final commitment, risk mitigation planning | Full team |
Team Capacity Planning
Factors Affecting Capacity
- Team Member Availability: Planned time off, holidays, other commitments
- Non-Development Work: Meetings, support, training, documentation
- Technical Debt: Time allocated for addressing technical debt
- Innovation Time: Dedicated time for learning and experimentation
- Buffer for Unknowns: Reserve capacity for unexpected work
Capacity Calculation Example
Total Team Hours = 5 developers × 10 days × 8 hours = 400 hours
Adjustments:
- Meetings and ceremonies: -80 hours (20%)
- Planned time off: -40 hours (10%)
- Support and maintenance: -40 hours (10%)
- Buffer for unknowns: -40 hours (10%)
Available Development Capacity = 200 hours (50% of total)
User Story Selection Criteria
Story Readiness Checklist
- Definition of Ready: Story meets team's definition of ready
- Acceptance Criteria: Clear, testable acceptance criteria defined
- Size Appropriateness: Story can be completed within the iteration
- Dependencies: No blocking dependencies or dependencies are resolved
- Business Value: Clear business value and priority established
Selection Process
- Priority Order: Start with highest priority stories from the backlog
- Capacity Check: Ensure story fits within remaining team capacity
- Dependency Validation: Confirm no blocking dependencies exist
- Risk Assessment: Evaluate and discuss potential risks
- Team Agreement: Ensure team understands and agrees to the story
Task Breakdown and Estimation
Task Identification Guidelines
- Granular Tasks: Break work into tasks of 1-8 hours
- Skill-Based Tasks: Consider different skill sets required
- Testing Tasks: Include unit testing, integration testing
- Documentation Tasks: Technical documentation, user guides
- Review Tasks: Code review, design review activities
Common Task Categories
Category | Examples | Typical Duration |
---|---|---|
Development | Implement feature, create UI component, database changes | 2-8 hours |
Testing | Write unit tests, integration testing, manual testing | 1-4 hours |
Review | Code review, design review, peer testing | 1-2 hours |
Documentation | API documentation, user guides, technical specs | 1-4 hours |
Integration | System integration, deployment preparation | 2-6 hours |
Risk Management in Planning
Common Iteration Risks
- Technical Risks: Unknown technical challenges, integration complexity
- Dependency Risks: External team delays, infrastructure dependencies
- Resource Risks: Team member unavailability, skill gaps
- Scope Risks: Requirement changes, scope creep
- Quality Risks: Technical debt, insufficient testing time
Risk Mitigation Strategies
Important: For each identified risk, develop a specific mitigation plan and assign ownership for monitoring and response.
Risk Type | Mitigation Strategy | Contingency Plan |
---|---|---|
Technical Complexity | Spike stories, proof of concepts | Reduce scope, defer complex features |
External Dependencies | Early communication, backup plans | Implement workarounds, reschedule |
Team Capacity | Conservative estimates, buffer time | Prioritize critical features |
Using SafeDevOps for Iteration Planning
Planning Workflow in SafeDevOps
- Access Iteration: Navigate to the team's current iteration
- Review Backlog: View prioritized User Stories in the team backlog
- Add Stories: Select and add User Stories to the iteration
- Create Tasks: Break down User Stories into specific Tasks
- Estimate Effort: Add time estimates to Tasks
- Assign Ownership: Assign Tasks to team members
- Track Capacity: Monitor team capacity utilization
Pro Tip: Use the iteration planning view to see real-time capacity utilization as you add stories and tasks to the iteration.
Best Practices
For Scrum Masters
- Facilitate, don't dictate - let the team make decisions
- Keep the meeting timeboxed and focused
- Ensure all voices are heard during planning
- Help the team identify and address impediments
- Protect the team from over-commitment
For Product Owners
- Ensure stories are well-prepared and prioritized
- Be available to clarify requirements and acceptance criteria
- Respect the team's capacity and technical constraints
- Focus on business value and user outcomes
- Be flexible on scope while maintaining iteration goals
For Development Teams
- Ask questions to fully understand requirements
- Break down work into manageable tasks
- Be realistic about estimates and capacity
- Consider dependencies and integration points
- Commit as a team to the iteration goals
Common Anti-Patterns to Avoid
Planning Pitfalls
- Over-commitment: Taking on more work than team capacity allows
- Under-prepared Stories: Planning with poorly defined requirements
- Ignoring Dependencies: Not accounting for external dependencies
- Individual Assignments: Assigning work to individuals instead of the team
- Gold Plating: Adding unnecessary features or over-engineering
- Skipping Estimation: Not properly estimating task effort
Metrics and Continuous Improvement
Key Planning Metrics
- Planning Accuracy: Percentage of committed work completed
- Velocity Trends: Team velocity over multiple iterations
- Scope Changes: Frequency and impact of mid-iteration changes
- Estimation Accuracy: Actual vs. estimated effort for tasks
- Cycle Time: Time from story start to completion
Retrospective Questions
- Did we commit to the right amount of work?
- Were our estimates accurate?
- What impediments affected our delivery?
- How can we improve our planning process?
- What did we learn that will help future planning?