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:

  1. Working hours and capacity

    • Actual available hours per iteration
    • Account for part-time schedules
    • Consider recurring time commitments
  2. Previous iteration outcomes and velocity

    • How many issues typically completed per iteration
    • Historical completion rates
    • Patterns in task complexity
  3. 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:

  1. Identify lower priority tasks

    • Review assigned issues
    • Find tasks that are not time-critical
    • Consider milestone importance
  2. Move lower priority back to backlog

    • Preserve the issue assignments for later
    • Document why they were moved
    • Reassign to future iterations if appropriate
  3. 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:

  1. Review issue pool

    • Start with status::ready issues
    • Consider skill alignment and learning opportunities
    • Look at milestone priorities
  2. 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
  3. 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:

  1. Assess status

    • How much work remains?
    • What blocked completion?
    • Is the estimate accurate?
  2. Decide next steps

    • Move back to Open status
    • Keep assigned or reassign
    • Adjust estimate if needed
    • Create follow-up issues if necessary
  3. 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