
Iterating at scale: Sprint planning and execution in GitLab
Problem
At the time, GitLab restricted issues to a single timeboxed milestone, making it difficult for teams practicing modern Agile methodologies—such as Scrum or Extreme Programming—to track progress across multiple planning layers. This limitation was especially painful when an issue belonged to both a short-term sprint (e.g., 2 weeks) and a longer-term release cycle (e.g., quarterly). Users were forced to use labels as a workaround, leading to planning inefficiencies and lack of visibility.
Users Affected
• Parker, a Product Manager who needs to coordinate releases and sprint-level delivery.
• Delaney, a Development Team Lead responsible for maintaining team cadence while aligning with broader business timelines.
Key Use Cases
• Associating a single issue with both a sprint and a release milestone.
• Supporting multiple concurrent planning cadences within and across projects.
• Reducing organizational overhead caused by poor visibility and workaround strategies.
Opportunity
We needed to introduce support for assigning both an Iteration (short-term sprint) and a Milestone (longer-term goal) to a single issue or merge request. This would:
• Enable accurate progress tracking at multiple time scales.
• Support scalable Agile practices in both small and enterprise teams.
• Improve clarity in planning, reporting, and collaboration across stakeholders.
UX Considerations
• Introduce Iterations as a distinct first-class object in the GitLab UI, accessible via the left navigation.
• Ensure simple, familiar assignment patterns in the issue sidebar (mirroring how milestones are currently used).
• Address fringe cases gracefully to maintain UX consistency across varying team structures and workflows.
Strategic Alignment
This enhancement supports a broader vision for GitLab as a tool for managing complex Agile workflows, where better automation, reporting, and cross-project coordination are critical for modern software teams.