In my previous post, I talked about establishing a debt payment plan. On a Scrum team, there are several approaches a team can take to pay down the debt.
- Debt Limit Trigger – Whenever our debt limit is reached, the team focuses the next Sprint on technical debt reduction (better than nothing).
- Release Trigger – After every release, we dedicate a complete sprint to reducing technical debt and tackling items from the technical debt log (better than nothing).
- Rotating dedicated resource – At the beginning of each Sprint, a different team member is dedicated to tackling technical debt items (good).
- 20 percent time – Within each Sprint, the team’s capacity is reduced to tackle technical debt on an ongoing basis (better)
- Per Story – With each Story or Product Backlog Item (PBI) that is completed, the team tackles technical debt as defined in their Definition of Done (best).
Newer, less mature teams will likely take approach 1 or 2. More mature team will manage debt on an ongoing basis and likely pick between approaches 3, 4 or 5. It’s important to avoid creating separate teams, ones that work solely on new features and ones that work solely on reducing technical debt. This creates an environment of a fun team and the not so fun team. The fun team will have no incentive on writing good code if they know there is always going to be someone else following them to clean things up. We want the teams creating the debt to have to feel the pain of cleaning it up so that they don’t incur any unnecessary debt except for the prudent and deliberate type.