Technical Debt Management | 15-20% Capacity
Track and prioritize technical debt systematically. Allocate 15-20% of sprint capacity to prevent accumulation. GitScrum makes debt visible and actionable.
6 min read
Technical debt is inevitableβthe question is whether you manage it or let it manage you. Untracked debt compounds silently until development grinds to a halt. Effective management means making debt visible, prioritizing strategically, and allocating consistent effort to reduce it.
Technical Debt Types
| Type | Description | Example |
|---|---|---|
| Intentional | Known shortcut for speed | Hardcoded config for MVP |
| Unintentional | Emerged over time | Spaghetti code evolution |
| Outdated | Was good, now isn't | Old framework version |
| Bit rot | Degraded from neglect | Unmaintained dependencies |
| Documentation | Missing/wrong docs | Outdated API docs |
Making Debt Visible
Tracking Technical Debt
TECHNICAL DEBT INVENTORY
ββββββββββββββββββββββββ
GITSCRUM DEBT TRACKING:
βββ Create "Technical Debt" label
βββ Tag all debt items consistently
βββ Use board filter for debt view
βββ Track in dedicated column or backlog
DEBT ITEM TEMPLATE:
βββββββββββββββββββββββββββββββββββββ
Title: [Clear description of debt]
Type: [Intentional/Unintentional/Outdated]
Location: [Files/services affected]
Impact: [How it affects development]
Risk: [What could go wrong]
Effort: [S/M/L estimate]
Trigger: [When should we fix this]
βββββββββββββββββββββββββββββββββββββ
EXAMPLE:
βββββββββββββββββββββββββββββββββββββ
Title: Auth module has no tests
Type: Unintentional (grew without TDD)
Location: /src/auth/*
Impact: High - Changes are risky, slow reviews
Risk: Auth bugs reach production
Effort: L (estimated 2 weeks)
Trigger: Before any auth changes
βββββββββββββββββββββββββββββββββββββ
Debt Dashboard
TECHNICAL DEBT DASHBOARD
ββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Technical Debt Overview β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β CURRENT STATE β
β Total items: 47 β
β Critical: 3 | High: 12 | Medium: 20 | Low: 12 β
β β
β BY CATEGORY β
β ββββββββββ Code: 23 (49%) β
β ββββββββββ Testing: 9 (19%) β
β ββββββββββ Docs: 7 (15%) β
β ββββββββββ Infra: 5 (11%) β
β ββββββββββ Dependencies: 3 (6%) β
β β
β TREND β
β Added this month: 8 β
β Resolved this month: 11 β
β Net change: -3 β (improving) β
β β
β EFFORT INVESTED β
β This sprint: 15% of capacity β
β Target: 20% β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Prioritization
Debt Prioritization Matrix
PRIORITIZATION FRAMEWORK
ββββββββββββββββββββββββ
SCORE EACH ITEM (1-5):
IMPACT: How much does it slow us?
βββ 5: Blocks multiple features weekly
βββ 4: Blocks work monthly
βββ 3: Slows work regularly
βββ 2: Occasional friction
βββ 1: Minor inconvenience
RISK: What could go wrong?
βββ 5: Security/data loss risk
βββ 4: Production outage risk
βββ 3: Significant bugs likely
βββ 2: Minor bugs possible
βββ 1: Cosmetic issues only
OPPORTUNITY: What does fixing enable?
βββ 5: Enables major initiative
βββ 4: Unblocks near-term feature
βββ 3: Enables nice-to-have
βββ 2: General improvement
βββ 1: Minimal benefit
EFFORT: How hard to fix?
βββ 1: Week+ of work
βββ 2: Days of work
βββ 3: 1-2 days
βββ 4: Hours
βββ 5: Quick fix
PRIORITY SCORE = Impact + Risk + Opportunity + Effort
Example:
Auth tests missing:
Impact: 4 + Risk: 4 + Opportunity: 3 + Effort: 2 = 13 (HIGH)
Prioritization Categories
DEBT PRIORITIZATION BUCKETS
βββββββββββββββββββββββββββ
π΄ CRITICAL (Score 16-20):
βββ Address immediately
βββ Security or stability risk
βββ Blocks critical path
βββ Allocate dedicated sprint
π HIGH (Score 12-15):
βββ Schedule for next sprint
βββ Include with related feature
βββ Don't let accumulate
βββ Regular attention
π‘ MEDIUM (Score 8-11):
βββ Include in sprint planning
βββ Opportunistic fixes
βββ Address when touching area
βββ Track but don't rush
π’ LOW (Score 4-7):
βββ Track for future
βββ Fix if convenient
βββ May never address
βββ Re-evaluate periodically
Paying Down Debt
Allocation Strategies
DEBT ALLOCATION APPROACHES
ββββββββββββββββββββββββββ
APPROACH 1: Fixed Percentage
βββββββββββββββββββββββββββββββββββββ
Allocate 15-20% of each sprint to debt
βββ Predictable capacity
βββ Consistent progress
βββ Team knows expectation
βββ Won't eliminate large items quickly
Example: 80-point sprint β 16 points for debt
APPROACH 2: Debt Sprints
βββββββββββββββββββββββββββββββββββββ
Periodic all-debt sprint (quarterly)
βββ Big chunks addressed
βββ Team focus on quality
βββ Can feel like break
βββ Debt accumulates between
Example: Every 4th sprint is debt sprint
APPROACH 3: Boy Scout Rule
βββββββββββββββββββββββββββββββββββββ
Leave code better than you found it
βββ Continuous improvement
βββ No dedicated allocation
βββ Integrated with features
βββ May miss big items
Rule: 30 min improvement with each PR
APPROACH 4: Hybrid (Recommended)
βββββββββββββββββββββββββββββββββββββ
βββ 15% sprint capacity (consistent)
βββ Boy scout rule (continuous)
βββ Annual debt sprint (major items)
βββ Critical items get special allocation
Implementation Patterns
DEBT REDUCTION PATTERNS
βββββββββββββββββββββββ
STRANGLER FIG:
βββ Build new system alongside old
βββ Gradually migrate functionality
βββ Eventually retire old system
βββ Low risk, slower
REFACTOR IN PLACE:
βββ Improve existing code
βββ Maintain functionality
βββ May need feature freeze
βββ Faster but riskier
OPPORTUNISTIC:
βββ Improve when touching code
βββ Scope limited to task area
βββ No dedicated time needed
βββ Slow overall progress
BIG BANG:
βββ Rewrite completely
βββ Significant effort
βββ High risk
βββ Sometimes necessary
RULE OF THUMB:
βββ Small debt: Opportunistic
βββ Medium debt: Sprint allocation
βββ Large debt: Strangler or dedicated sprint
βββ Critical debt: Immediate attention
GitScrum for Debt Management
Tracking Setup
GITSCRUM DEBT MANAGEMENT SETUP
ββββββββββββββββββββββββββββββ
LABELS:
βββ tech-debt (main label)
βββ debt:critical
βββ debt:high
βββ debt:medium
βββ debt:low
CUSTOM FIELDS:
βββ Debt Type: [dropdown]
βββ Affected Area: [text]
βββ Risk Level: [dropdown]
βββ Created Date: [date]
VIEWS:
βββ Tech Debt Dashboard (filtered view)
βββ By Priority (sorted)
βββ By Age (oldest first)
βββ By Area (grouped)
AUTOMATION:
βββ Age alert after 90 days
βββ Remind when touching affected files
βββ Include in sprint planning
βββ Track resolution rate
Best Practices
For Technical Debt
Anti-Patterns
DEBT MANAGEMENT MISTAKES:
β Ignoring until crisis
β No tracking system
β All-or-nothing approach
β Feature-only sprints
β Big bang rewrites (usually)
β Prioritizing new over fix
β No visibility to stakeholders
β Debt as punishment