Deprecate backstage and improve work categorization and throughput types
Objective
Improve the MR Type tracking to improve attribution to Throughput type by deprecating and remove ~backstage which is currently being used as a catch all.
Plan
-
2020-06-29 - Communicate in #product, #eng-managers - @kwiebers -
2020-06-30 - Communicate in #development - @kwiebers -
2020-07-08 - Merge gitlab-com/www-gitlab-com!53571 (merged) - @kwiebers -
2020-07-08 - Deprecate ~backstage on gitlab-org
- @kwiebers -
2020-07-08 - Update triage-serverless nudging automation to be all gitlab-org
- gitlab-org/quality/triage-serverless#38 (closed) - @rymai -
2020-07-08 - Communicate in #development, #eng-managers, #product - @kwiebers -
2020-07-08 to 2020-07-24 - Measure Throughput type population rate and report back - @kwiebers
Background
~backstage is generally unclear due to its current catch-all nature. backstage is historically 36-40% of the overall product MR population and it is not easy to identify further detail from ~backstage.
Some of the examples we have found where ~backstage is applied which makes it challenging to account for the changes:
- Early foundational feature work would not be counted towards ~"feature"
- e2e test case creation in support of features (new or existing) are generally tracked with ~backstage
- Engineering workflow, pipeline and release tooling changes from other ~backstage changes
Danger encouraged this behavior by warning that there is no Changelog for an MR and directing to ~backstage which has been changed with gitlab-org/gitlab!30514 (merged).
Proposal
-
Update handbook throughput guidance for ~backstage: gitlab-com/www-gitlab-com#7865 (closed) => gitlab-com/www-gitlab-com!53571 (merged) -
Create handbook guidance and snippets for reporting in Sisense and Insights by Throughput type: https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/528 => gitlab-com/www-gitlab-com!53571 (merged) -
Create new labels and deprecate ~backstage: gitlab-org/quality/triage-ops#482 (closed) - featureaddition
- ~"feature::maintenance"
- ~"tooling::pipelines"
- ~"tooling::workflow"
-
Add triage reaction rule: gitlab-org/quality/triage-serverless#33 (closed) => gitlab-org/quality/triage-serverless!20 (merged) - Replace ~backstage with a replacement sub-type and direct to handbook
- Apply top level type labels based on sub types
-
Remove Deprecated ~backstage label: gitlab-org/quality/triage-ops#483
Nice to dos
-
Update danger references to ~backstage: gitlab-org/gitlab#219751 (closed) -
Update danger references to backstage in Gitaly, charts, version-gitlab-com, customers-gitlab-com etc.: gitlab-org/gitlab#225308 (closed)
Analysis
Engineering Productivity believes that ~backstage is not the most appropriate label 40% of the time that ~backstage is applied:
- ~feature - 28% based on api Architecture decision deprecation ~enhancement feature flag ~performance Stuff that should Just Work ~"technical debt" test UI polish QA
- ~tooling - 11% based on Danger bot ci-build single codebase ~"dependency update" ~"Style decision"
~railsx.y
labels - ~bug - 0.5% based on regression
- documentation - 1.5% based on docs-only ~"docs-fix" Technical Writing development guidelines
Sisense charts
- Product MRs by Type
- Backstage MRs - this looks at MRs that only have ~backstage as a throughput label and identifies relevant other labels which indicate what type of change it may be.
- Other Backstage MRs