User capacity as a first level feature
Problem to solve
As a MR author, I'd like to know the capacity of a team member before assigning it to a reviewer or maintainer.
As a MR reviewer/maintainer, I'd like to communicate my capacity so that I don't get overloaded with MR's and pings which I won't be able to respond in a timely way.
Set status
Limitations of At GitLab, we currently use the GitLab status to sometimes communicate capacity, but this has some limitations:
- Status is used to communicate much more than capacity (i.e. OOO, sick, fun status).
- Status is only visible when I hover over a user's name (or view their profile page). It'd be nice if I can see capacity in the
@
user dropdown within the comment box or assignee dropdown. - Status is fairly free form which causes organizations to have to create their own internal process for using this to communicate capacity.
Options
Option 1 - Smartly detect user capacity based on assigned MR's and assigned issues
This would be interesting, but could be difficult to get right.
Option 2 - Allow users to update their capacity
Maybe in the "Set status" modal we could have a single checkbox for "At capacity". IMO, capacity isn't necessarily binary, so it might be cool to use a segmented control to allow a user to set levels of capacity:
- Green - Available
- Yellow - Near capacity
- Red - At capacity
Proposal
I propose we go with option 2.
Follow-up ideas
- Show capacity warnings next to users in user dropdowns.
- Allow admins to configure the ability to remove "At capacity" users from MR assignments.
FAQ
Why use the word "capacity"?
I use this word because I usually want to communicate "I'm at capacity". However, this might not be the best wording because "Low Capacity" confusingly means I have high availability. Maybe we should just call this "availability"... but being unavailable sounds more related to being offline or OOO.
Is this related to OOO or a separate concept?
I think this should be a separate concept. For instance, I may want to assign something, and I don't care if their OOO for the next few days. But, if their OOO for a few days and at capacity, I know that they probably won't see my ping for about a week or so.