Exclude OOO members from reviewer roulette based on Slack's status
What is the productivity problem to solve?
For reviewers/maintainers who are OOO:
-
They have to create OOO using PTO Ninja, which will take care of setting Slack's status to the appropriate message that indicates the member is OOO during the OOO period, and then remove the status message when the person is back from the OOO.
-
Setting both PTO and GitLab's status is a little bit of unneeded duplicated effort and is subject to human forgetfulness.
For MR authors:
-
When they get a roulette suggestion for reviewer/maintainer, they'll need to check the suggested members' status on GitLab and on Slack (because one can forget to update GitLab's status) before assigning the MR to the suggested reviewer/maintainer.
-
If the suggested members are OOO or at capacity, the MR authors need to search for another candidate that is suitable for the changes in the MR.
-
If the MR author didn't pay attention to the suggested reviewer/maintainer GitLab's status and assign the MR to them directly, the MR will be on hold until the assigned member is back from OOO or until the MR author notice the delay and start investigating the reason behind it, then reassign to another reviewer/maintainer.
Concerns
- If the suggested maintainer was available on the first roulette pick, then went on OOO, then they would still get picked for maintainer reviews.
Problem identification checklist
-
The root cause of the problem is identified. -
The surface of the problem is as small as possible.
What are the potential solutions?
I've created a quick project to take care of this issue using Slack's status message/icon.
I also created an MR on the customers portal that integrates these changes into the project.
The project will update roulette.json
by adding not_available
optional property based on member's Slack status, and the reviewer roulette will check for not_available
accordingly.
-
All potential solutions are listed. -
A solution has been chosen for the first iteration: PUT THE CHOSEN SOLUTION HERE
Who and when will the solution be implemented?
Verify that the solution has improved the situation
-
The solution improved the situation. - If yes, check this box and close the issue. Well done!
🎉 - Otherwise, create a new "Productivity Improvement" issue. You can re-use the description from this issue, but obviously another solution should be chosen this time.
- If yes, check this box and close the issue. Well done!
/cc @gl-quality/eng-prod @dennis @nick.thomas @rspeicher @mikegreiling @chris_baus