Iteration Planning Guidelines
Principles for workload assessment, capacity planning, and balanced task assignment across iterations.
Workload Assessment Principles
Capacity-Based Planning
Base assessment on multiple factors:
-
Working hours and capacity
- Actual available hours per iteration
- Account for part-time schedules
- Consider recurring time commitments
-
Previous iteration outcomes and velocity
- How many issues typically completed per iteration
- Historical completion rates
- Patterns in task complexity
-
Time marked on calendar
- Vacations and time off
- Meetings and recurring commitments
- Training or conference attendance
- Other known time constraints
Two-Iteration Planning Strategy
Plan 2 iterations ahead to smooth out workload fluctuations and reduce last-minute assignments:
Next Iteration (Immediate):
- Strict capacity matching based on hours and calendar
- Focus on what can realistically be completed
- Account for dependencies and blockers
- Assign clear, ready-to-work issues
In 2 Iterations (Future):
- More flexible assignment of incoming issues
- Focus on ensuring issues are ready and refined
- Prioritize based on milestone goals and upcoming priorities
- Less strict capacity matching
- Allows time for refinement and clarification
Balancing Workload
Too Many Issues Assigned:
When a team member has too many issues for their capacity:
-
Identify lower priority tasks
- Review assigned issues
- Find tasks that are not time-critical
- Consider milestone importance
-
Move lower priority back to backlog
- Preserve the issue assignments for later
- Document why they were moved
- Reassign to future iterations if appropriate
-
Discuss with assignee
- Confirm workload is manageable
- Understand any concerns or constraints
- Adjust as needed based on feedback
Too Few Issues Assigned:
When a team member has insufficient work for their capacity:
-
Review issue pool
- Start with
status::readyissues - Consider skill alignment and learning opportunities
- Look at milestone priorities
- Start with
-
Assign new issues from backlog
- Prioritize based on:
- Milestone goals and deadlines
- Dependencies on other team members
- Contributor skills and experience
- Learning and growth opportunities
- Ensure issues are well-defined and ready
- Prioritize based on:
-
Confirm with assignee
- Verify workload is appropriate
- Check for concerns or constraints
- Adjust based on feedback
Capacity Assessment Guidelines
Realistic Estimation
Account for all work, not just coding:
- Meetings and collaboration time
- Code reviews
- Administrative tasks
- Context switching overhead
- Unexpected issues and support
- Documentation and testing
Common Estimation Mistakes:
- Assuming 100% coding time
- Forgetting about review time
- Not accounting for meetings
- Ignoring context switching costs
- Overly optimistic velocity assumptions
Historical Velocity
Track and use past performance:
- How many issues typically completed per iteration
- Average time per issue type
- Patterns in over/under-estimation
- Impact of issue complexity
Adjust for factors:
- Issue complexity and novelty
- Dependencies on other team members
- Technical unknowns
- Learning curve for new areas
Calendar Considerations
Explicit time tracking:
- Mark all known time off in calendar
- Account for public holidays
- Note half-day commitments
- Consider reduced productivity before/after time off
Impact calculation:
- Reduce capacity proportionally to time off
- Account for ramp-up time after extended absences
- Consider team coverage needs
Distribution and Balance
Team-Wide Balance
Verify distribution is fair:
- Sort issues by assignee for overview
- Check that workload is balanced
- Ensure no one is over or under-allocated
- Consider skill distribution across issues
Identify dependencies:
- Note issues that block other team members
- Prioritize unblocking work
- Coordinate timing of dependent tasks
- Communicate dependencies clearly
Priority Alignment
Ensure work supports goals:
- Align assignments with milestone objectives
- Prioritize critical path work
- Balance urgent vs. important tasks
- Consider strategic vs. tactical work
Flexibility and Adaptation
Be prepared to adjust:
- Urgent issues may require reassignment
- Priorities can shift during iteration
- Team member availability may change
- Dependencies may become blockers
Document changes:
- Record why assignments changed
- Update iteration planning issues
- Communicate changes to affected team members
- Track impact on goals
Progress Tracking
Follow-Up on Incomplete Issues
For issues with progress:
- Verify assignee has provided status update as comment
- Remind contributors if update missing by Friday
- Understand what progress has been made
- Identify any blockers or concerns
For issues without progress:
- Read through issue description to ensure clarity
- Ping assignee to ensure awareness
- Ask if they have questions or need help
- Identify why no progress was made
For issues in review:
- Check MR status and review progress
- Remind reviewers to complete reviews
- Identify if reviews are blocking progress
- Help resolve review bottlenecks
Incomplete Issue Handling
When issues don't complete in iteration:
-
Assess status
- How much work remains?
- What blocked completion?
- Is the estimate accurate?
-
Decide next steps
- Move back to Open status
- Keep assigned or reassign
- Adjust estimate if needed
- Create follow-up issues if necessary
-
Document reasons
- Track patterns in incompletion
- Identify systemic issues
- Learn and improve planning
Continuous Improvement
Iteration Reflection
Review what worked:
- Successful completion patterns
- Effective workload balancing
- Good estimation accuracy
- Strong collaboration
Identify challenges:
- Incomplete issues and why
- Estimation accuracy problems
- Communication breakdowns
- Unexpected blockers
Document learnings:
- Create improvement action items
- Update processes or templates
- Share insights with team
- Apply lessons to next iteration
Metrics and Tracking
Useful metrics to track:
- Completion rates per person
- Estimation accuracy
- Time to first progress update
- Review turnaround times
- Blocker frequency and resolution time
Use metrics to:
- Improve capacity planning
- Identify training needs
- Optimize team collaboration
- Refine estimation practices
Process Improvements
When patterns emerge:
- Create issues for process fixes
- Update workflows or templates
- Document new best practices
- Assign owners for improvements
- Set deadlines for changes
Test and validate:
- Try improvements for one iteration
- Gather feedback from team
- Measure impact
- Refine or roll back as needed
Team Communication
Transparency
Keep everyone informed:
- Share iteration plans before meetings
- Explain assignment reasoning
- Communicate changes promptly
- Document decisions and rationale
Collaboration
Encourage team input:
- Allow team members to raise concerns
- Listen to capacity and workload feedback
- Be open to reassignment requests
- Facilitate team problem-solving
Escalation
When to escalate:
- Persistent over/under-allocation
- Repeated incomplete issues
- Team member concerns about capacity
- Blocking dependencies not resolving
- Misalignment with milestone goals
How to escalate:
- Bring to Product Manager's attention
- Provide context and data
- Suggest potential solutions
- Request input and decisions