The current triaging workflow we have at Blender was created late in 2019. Sergey and I got together once again to try to revisit this process to the current team dynamic.
At the core of that proposal was:
- Separate Reports, Bugs and Known Issues:
- Reports: Issue/ticket created by a user yet to be confirmed or simplified or reproduced.
- Bugs: Issues the team planned to work on (in the coming 6 months).
- Known issues: Limitations of the software that wouldn’t be addressed in the near future.
- Classification:
- Isolate developers from the continous influx of reports.
- Have module owners and members assess final priorities/known issues.
What worked well:
- The triaging team grew into an essential role of flagging regressions and other high priority issues the modules should pay attention to.
- Modules were not distracted anymore by all the new daily reports which sometimes had incomplete information or were already fixed.
What didn’t work well:
- Some modules never got to classify their issues (see metrics).
- Some tasks marked as bugs were not really looked at in the expected time-frame.
- Known issues were never re-visited by modules and were just adding noise to the issue tracker.
- High priority issues were not tackled for months, going against the understand of what a priority is. In a lot of times having a severity level instead would have been more accurate.
Proposal
At the core of this proposal the idea is to:
- More clearly communicate whether users should expect a fix, and when.
- Simplify the process by removing the classification step.
- Empower the triaging team even further - the moment a triager confirms an issue, it is already considered a bug (modules can still edit an issue afterwards though).
In practical terms this mean:
- Remove the “Classification” step in the triaging process.
- Rename “Priority” to “Severity”.
- Remove “Report” type (leaving only bug).
- Archive all Known Issues.
- Encourage modules to use milestones.
- Milestones help to communicate planning and sense of urgency for issues.
- A high severity issue with no milestone should get the module attention asap to assess how important it is and when will be tackled.
The proposed severities and their definitions are:
- Unbreak Now! : Stop everything to fix it (e.g., data corruption).
- High: Fix as soon as possible (e.g., regressions).
- Medium: Planned as part of development.
- Low: Good to have, but not planned (good target for contributors).
Metrics
Unclassified Reports over time:
Pain Points
The main point of dispute is whether known issues:
- Should be archived.
- Left open.
- Added to a “Won’t be fixed/Never” milestone.
- Removed as a type.
At the moment I (Dalai) am more inclined to keep them as a type (for metrics), and close/archive them.
Feedback
I would love to hear from module owners, members, the triaging team as well as the community.