docs/react-v9/contributing/rfcs/convergence/unified-project-board-process.md
@tudorpopams
Proposes the processes for using the FluentUI - Unified project board.
There have been multiple efforts into trying to unify the way we track, assign, prioritize and estimate issues across FluentUI React teams. With this RFC we're trying to set a process for using a single unified board for all teams and v-teams.
We currently have 8 project boards that span across all teams and v-teams. This creates redundancy when sharing statuses and makes it hard to have a common backlog that we can groom and prioritize. Besides this, having separate boards for each team creates desynchronized sprint timelines and different types of estimations.
With this RFC we're hoping to solve most of these issues by creating a process on how we should use the unified board and its "ceremonies".
Our solution to these problems is to start using a common, unified project board across all teams and v-teams with the following processes:
The backlog is a collection of items that are not included in a sprint. Backlog items can be prioritized, which means that EMs / PMs have already checked them, but also unprioritized, which means that they must be checked by EMs / PMs in the following grooming sessions.
Once items in the backlog are groomed, they can also be assigned to specific teams. Items such as PRs can be assigned to boards without being prioritized.
The grooming process is as follows:
Sprints are 2 week long chunks in which each team works on a specific, ideally predefined (planned) list of issues. There's no strict rule about the number of items or the capacity of a sprint, so items can be added or removed at will.
We use sprints to better correlate estimations with a specific timeline and offer a sneak peek into what a team is supposed to work on in the upcoming weeks, using a single board view.
Ideally, the work that is done in a sprint should not be transferred to the next sprint. This means that teams are responsible for breaking down big tasks into smaller ones that fit in a sprint (or less) and make sure that they get delivered.
A milestone is a group of 6 sprints (~3 months). We use milestones to see the planning and progress on a longer term fashion. Milestones can be shared with anyone interested in seeing the road map.
| Priority | Description |
|---|---|
| 🌋 Urgent | to be done in current sprint |
| 🏔 High | to be done in the current milestone |
| 🏕 Medium | to be done in the next 2 milestones |
| 🏝 Low | to be done in the following milestones |
The priority descriptions have ballpark values and are subject to change based on the progress of our milestones.
Estimations are based on Fibonacci numbers and are relative to sprint length.
| Estimation | Description |
|---|---|
| 🐥 Trivial (1) | a one liner |
| 🐔 Easy (2) | a day long |
| 🐓 Medium (3) | between 1 - 3 days long |
| 🦅 Hard (5) | half or more of a sprint |
| 🛩 Heroic (8) | full sprint |
Estimations are dependent on sprint length.