← All articles

Managing Technical Debt in Scrum: What Good Looks Like vs What Bad Looks Like

By XNM Technologies · April 23, 2022 · 3 min read
Managing Technical Debt in Scrum: What Good Looks Like vs What Bad Looks Like

Technical debt is the accumulated cost of shortcuts, deferred refactoring, and design decisions that were right for the time but have since become constraints. Every software product carries some technical debt; the question is whether it is managed or whether it accumulates to the point where it slows every Sprint and makes new development disproportionately expensive.

In Scrum, technical debt management is primarily a product and team responsibility, not a specialist function. Here is what good and bad look like at the team level.

What Good Looks Like

  • Good: The Definition of Done requires technical standards, not just functional completion. A Definition of Done that includes code review, unit test coverage at a minimum threshold, and documentation of any intentional technical shortcuts -- with a Backlog item created to address the shortcut -- keeps debt visible and intentional. Technical debt that is invisible is unmanageable.

  • Good: The team reserves a fraction of Sprint capacity for technical debt reduction. A common approach is to allocate 10 to 20 percent of Sprint capacity to debt reduction work. The specific percentage is less important than the consistency: if debt reduction disappears from the Sprint whenever delivery pressure increases, debt will accumulate exactly when the team least needs it to.

  • Good: Technical debt items are in the Product Backlog and visible to the Product Owner. The Product Owner cannot make informed prioritisation decisions about technical debt items they cannot see. Debt items should be expressed in terms of their business consequence (performance degrades under load, releasing new features in module X requires three times the expected effort, testing time has doubled in the last six months) so the Product Owner can weigh them against feature work.

  • Good: The team has a shared definition of what constitutes technical debt. Not every imperfect implementation is technical debt; some is just the natural result of learning and should be left alone. The team should be able to distinguish between debt worth addressing and code that is simply unfamiliar.

What Bad Looks Like

  • Bad: Technical debt is never discussed outside of developer retrospectives. If the only time technical debt is mentioned is when developers are frustrated, it is not being managed -- it is being endured.

  • Bad: The Definition of Done is treated as a minimum bar that gets lowered under pressure. A Definition of Done that changes when a deadline is tight is not a definition -- it is a suggestion. Every shortcut taken against the Definition of Done adds debt, and accumulated debt becomes the cause of the missed deadlines that provoked the shortcut.

  • Bad: The team re-estimates debt items as negligible because "we know the code." Familiarity with problematic code does not make it less problematic; it makes the problems less visible. Technical debt tends to be underestimated by the people closest to it.

  • Bad: Technical debt accumulates until a large "clean-up Sprint" is proposed. A dedicated clean-up Sprint is a failure mode, not a strategy. It signals that debt was allowed to accumulate past the point where it could be managed incrementally, and the cost of the clean-up Sprint is typically much higher than the aggregate cost of addressing the debt in small increments over many Sprints.

XNM supports public-sector and capital-project organisations in building sustainable Scrum practices. Reach out to XNM's program & project delivery advisory team for support with your agile delivery programme.