@@ -33,6 +33,8 @@ following chart shows [MR Rate](/handbook/engineering/performance-indicators/#en
[How we work](./how-we-work.md) page describes all the processes we follow as a team.
[Project Example: Boards](./project-example-boards.md) shows how we structure and run larger projects, using Boards on Saved Views as an example.
## Useful links
-[:Plan:Product Planning](https://gitlab.com/groups/gitlab-org/-/boards/1569369?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=devops%3A%3Aplan¬[label_name][]=group%3A%3Aproject%20management]) - Apply a milestone filter to see work in the current release
@@ -74,6 +74,20 @@ Beginning with [17.8](https://gitlab.com/groups/gitlab-org/-/milestones/107#tab-
- Child tasks or related issues in case original issue was broken down.
6. In a week prior to the start of the upcoming milestone, EM's responsibility is to ensure that all candidate issues have either moved to `~workflow::ready for development` as per guidance in point 5, or an appropriate triage action is taken as outlined in point 4.
## Work item types
The default work item type is **issue**. When in doubt, create an issue — it can be converted to an epic or task later.
| Type | Corresponds to | Timeline | Examples |
|------|---------------|----------|----------|
| **Issue** | One merge request, one person, one category (FE or BE) | Less than 1 week | "Add board card component", "Create `filter` query parameter for saved views API" |
| **Epic** | A scoped deliverable grouping multiple issues | 1 week to 3 milestones | "Boards on Saved Views Alpha", "Work Item Card" |
| **Task** | A checklist item / reminder inside an issue | — | "Update changelog", "Update documentation" |
All issues should be roughly the same size. We break work down until each issue fits within a week. If something is bigger, make it an epic.
For how we use work item types in larger projects, see [Project Example: Boards](./project-example-boards.md).
We break projects into time-limited stages and cut scope to a [minimal viable change](/handbook/values/#minimal-valuable-change-mvc) to:
- Reduce cognitive load — engineers work on smaller changes, smaller sets of requirements, and fewer issues.
- Simplify project management and spot delays early — smaller stages are easier to keep on track and it's easier to notice when one is late.
- Surface bugs and feedback earlier.
| Stage | Outcome |
|-------|---------|
| **Requirements discovery** | Decision on scope for subsequent stages. Work broken down into issues. Rough estimation of the project. Clear definition of what is out of scope. |
| **Groundwork** | Refactorings and adaptations that make the rest of the development easier. |
| **Alpha** | Core workflow can be used for dogfooding and internal testing, but can be rough on the edges. Includes addressing internal testing feedback. |
| **GA** | The smallest coherent experience we're comfortable releasing to users. Includes addressing user feedback from alpha, fixing rough edges, and a feature flag rollout period (~2 weeks before milestone cut-off). |
| **Post-GA follow-ups** | Features deferred past the initial release, user feedback, code and test cleanup. Must be completed within 1–2 milestones after GA. When in doubt, put issues in out of scope. |
| **Out of scope** | No commitment. May be done later, reprioritized, or closed. |
## Epic organization
```plain
Lifecycle Boards (top-level epic)
├── Lifecycle Boards — Requirements discovery
│ ├── UX discussions (issue)
│ ├── Lifecycle Boards — Card (epic)
│ ├── Lifecycle Boards — Columns (epic)
│ └── ...
├── Lifecycle Boards — Groundwork
│ ├── Refactor work item listing page (epic)
│ ├── Load work items via REST API instead of GraphQL on listing pages (epic)
│ └── ...
├── Lifecycle Boards — Alpha
│ ├── Status columns (epic)
│ │ ├── Load available statuses (issue)
│ │ └── Load work items by column (issue)
│ ├── Card (epic)
│ ├── API changes (epic)
│ ├── Transform view preferences dropdown into drawer (epic)
│ ├── Card drag and drop (epic)
│ │ ├── Persist changes (issue)
│ │ └── Basic animation (issue)
│ └── ...
├── Lifecycle Boards — GA
│ ├── Internal testing feedback (issue)
│ ├── Card enhancements (epic)
│ ├── Feature flag rollout (epic)
│ ├── Card drag and drop (epic)
│ │ ├── Improved animation (issue)
│ │ └── Highlight available and unavailable columns (issue)