Standardize technical debt labelling and planning process
Goal
GitLab needs to have a sustainable system for managing technical debt, improving code quality, and maintaining engineering velocity in the long term.
Problem
We need to establish a clear, consistent approach to labelling and planning technical debt across GitLab. This issue aims to address the following points:
- Define technical debt:
- Clarify the difference between intentional technical debt and regular maintenance work
- Establish criteria for what qualifies as technical debt
- Labeling system:
- Reintroduce the
~tech debt
(or maybe~maintenance::tech debt
) label for intentional technical debt - Define how this label interacts with existing labels like
~type::maintenance
and~maintenance::refactor
- Consider using severity labels (S1-S4) for prioritization - like what Verify is doing.
- Reintroduce the
- Planning and tracking:
- Implement a process for tracking technical debt over time
- Set guidelines for adding due dates to follow-up issues
- Establish a regular review process for technical debt issues
- Metrics and reporting:
- Develop metrics to measure technical debt accumulation and payoff
- Create reports to help teams manage their technical debt effectively
- Communication and visibility:
- Improve visibility of technical efforts across the organization
- Consider implementing tech-focused presentations or town halls
- Consider ways to share/present proposals from architecture design docs
Context
This issue was extracted from a conversation that started on Slack (internal link).
Edited by Fabio Pitino