Technical Debt Documentation | Track and Prioritize
Document technical debt with impact, cost, and risk assessments. GitScrum tracks debt items in backlogs with labels, severity levels, and custom fields.
7 min read
Technical debt accumulates silently, slowing development until teams can't ignore it. Documentation makes debt visible, quantifiable, and actionable. Well-documented debt enables informed trade-offs between paying it down and shipping features.
Documentation Elements
| Element | Purpose | Example |
|---|---|---|
| Description | What is the debt | Legacy auth system |
| Location | Where it lives | /src/auth/*.js |
| Impact | How it hurts | +2h per feature |
| Cost | Effort to fix | 3 sprints |
| Risk | What could happen | Security breach |
Debt Documentation Format
Standard Template
TECHNICAL DEBT ITEM TEMPLATE
ββββββββββββββββββββββββββββ
TITLE:
βββββββββββββββββββββββββββββββββββββ
Clear, concise name
"Legacy authentication system"
"Monolithic test suite"
"Inconsistent API responses"
DESCRIPTION:
βββββββββββββββββββββββββββββββββββββ
What is the debt?
Why does it exist?
When was it introduced?
Example:
"Authentication was built quickly for MVP.
Uses outdated bcrypt version, no OAuth,
session management is custom-built.
Introduced: 2021 Q2, 3 developers ago."
LOCATION:
βββββββββββββββββββββββββββββββββββββ
Which files/services/modules?
βββ /src/auth/
βββ /src/middleware/session.js
βββ /src/controllers/login.js
βββ Related: /tests/auth/*.test.js
βββ Lines affected: ~2000
IMPACT:
βββββββββββββββββββββββββββββββββββββ
How does it slow us down?
βββ New auth features take +2 days
βββ Onboarding: 1 week to understand
βββ Security reviews flag it every time
βββ CI runs 15 min longer
βββ Quantify where possible
COST TO FIX:
βββββββββββββββββββββββββββββββββββββ
What would remediation take?
βββ Estimated effort: 3 sprints
βββ Team members: 2 developers
βββ External: Security review $5K
βββ Risk during migration: Medium
βββ Downtime: 2 hours planned
RISK IF IGNORED:
βββββββββββββββββββββββββββββββββββββ
What could go wrong?
βββ Security: Vulnerability exploitation
βββ Scalability: Won't handle growth
βββ Team: Key developer leaves
βββ Business: Customer data breach
βββ Severity: High / Medium / Low
PRIORITY RECOMMENDATION:
βββββββββββββββββββββββββββββββββββββ
βββ Urgency: Address in next 2 quarters
βββ Compare to other debt items
βββ Consider strategic timing
βββ Next steps: Include in Q3 planning
Categorizing Debt
Debt Types
TECHNICAL DEBT CATEGORIES
βββββββββββββββββββββββββ
CODE QUALITY:
βββββββββββββββββββββββββββββββββββββ
βββ Duplicate code
βββ Complex functions
βββ Poor naming
βββ Missing abstractions
βββ Inconsistent patterns
βββ Fix: Refactoring sprints
ARCHITECTURE:
βββββββββββββββββββββββββββββββββββββ
βββ Monolith needing decomposition
βββ Wrong technology choice
βββ Missing service boundaries
βββ Scaling limitations
βββ Tight coupling
βββ Fix: Major initiatives
TESTING:
βββββββββββββββββββββββββββββββββββββ
βββ Missing tests
βββ Slow test suite
βββ Flaky tests
βββ No integration tests
βββ Unmaintained tests
βββ Fix: Test improvement sprints
INFRASTRUCTURE:
βββββββββββββββββββββββββββββββββββββ
βββ Outdated dependencies
βββ Manual deployment
βββ No monitoring
βββ Scaling limitations
βββ Configuration drift
βββ Fix: Infrastructure initiatives
DOCUMENTATION:
βββββββββββββββββββββββββββββββββββββ
βββ Missing docs
βββ Outdated docs
βββ No onboarding guides
βββ Tribal knowledge
βββ No architecture docs
βββ Fix: Documentation sprints
TRACKING BY CATEGORY:
βββββββββββββββββββββββββββββββββββββ
Label debt items by category.
Enables analysis:
"60% of our debt is testing-related.
Focus test improvement."
Severity Levels
DEBT SEVERITY LEVELS
ββββββββββββββββββββ
CRITICAL:
βββββββββββββββββββββββββββββββββββββ
βββ Active security vulnerability
βββ Regular production incidents
βββ Blocking business operations
βββ Must address immediately
βββ Treat as production issue
HIGH:
βββββββββββββββββββββββββββββββββββββ
βββ Significant development slowdown
βββ Frequent bugs in this area
βββ Customer-facing quality issues
βββ Address within 1-2 quarters
βββ Major backlog item
MEDIUM:
βββββββββββββββββββββββββββββββββββββ
βββ Noticeable friction
βββ Occasional issues
βββ Onboarding impact
βββ Address within 2-4 quarters
βββ Regular backlog item
LOW:
βββββββββββββββββββββββββββββββββββββ
βββ Minor annoyance
βββ Best practice gap
βββ Nice to improve
βββ Address opportunistically
βββ When touching that code anyway
Tracking in GitScrum
Debt Backlog
GITSCRUM DEBT TRACKING
ββββββββββββββββββββββ
CREATE DEBT BACKLOG:
βββββββββββββββββββββββββββββββββββββ
Option 1: Label in main backlog
βββ Label: "tech-debt"
βββ Filter to view all debt
βββ Competes with features
βββ Single prioritization
Option 2: Separate debt board
βββ Dedicated Tech Debt board
βββ Own workflow
βββ Link to feature work
βββ Separate visibility
RECOMMENDED APPROACH:
βββββββββββββββββββββββββββββββββββββ
Main backlog with label:
βββ Debt visible alongside features
βββ Forces trade-off conversations
βββ Doesn't get forgotten
βββ PO sees full picture
βββ Team capacity includes debt
TASK STRUCTURE:
βββββββββββββββββββββββββββββββββββββ
Title: [DEBT] Legacy authentication system
Description: (Use template from above)
Labels: tech-debt, security, high-priority
Story Points: 21 (large effort)
Links: Related feature work
Attachments: Architecture diagrams
CUSTOM FIELDS:
βββββββββββββββββββββββββββββββββββββ
βββ Debt Category (dropdown)
βββ Severity (Critical/High/Med/Low)
βββ Estimated Cost (story points)
βββ Impact Score (1-10)
βββ Date Discovered
βββ Enable tracking and reporting
Maintaining Documentation
Keeping Current
DEBT DOCUMENTATION MAINTENANCE
ββββββββββββββββββββββββββββββ
WHEN TO DOCUMENT:
βββββββββββββββββββββββββββββββββββββ
βββ Sprint retrospective: "What slowed us?"
βββ Code review: "This should be fixed"
βββ Bug investigation: "Root cause is debt"
βββ Onboarding: New person notices issues
βββ Architecture review: Problems surface
βββ Capture when discovered
REGULAR REVIEW:
βββββββββββββββββββββββββββββββββββββ
Quarterly Tech Debt Review:
βββ Review all documented debt
βββ Still relevant? Update or close
βββ Severity changed? Adjust
βββ Partially addressed? Update status
βββ New debt discovered? Add it
βββ Keep documentation fresh
GROOMING DEBT:
βββββββββββββββββββββββββββββββββββββ
Include debt in backlog grooming:
βββ Review high-priority debt
βββ Refine effort estimates
βββ Identify opportunities
βββ Bundle with related features
βββ Keep ready for sprint
CLOSING DEBT:
βββββββββββββββββββββββββββββββββββββ
When debt is addressed:
βββ Document what was done
βββ Note actual effort (vs estimate)
βββ Link to PRs/commits
βββ Lessons learned
βββ Close the item
βββ Celebrate!
DEBT METRICS:
βββββββββββββββββββββββββββββββββββββ
Track over time:
βββ Total debt items
βββ New debt added per quarter
βββ Debt addressed per quarter
βββ Debt by category
βββ Age of oldest debt
βββ Trend: Getting better or worse?
Communicating Debt
Stakeholder Communication
COMMUNICATING DEBT TO STAKEHOLDERS
ββββββββββββββββββββββββββββββββββ
MAKE IT VISIBLE:
βββββββββββββββββββββββββββββββββββββ
Dashboard widget:
βββββββββββββββββββββββββββββββββββββββ
β Technical Debt Summary β
βββββββββββββββββββββββββββββββββββββββ€
β Total Items: 47 β
β Critical: 2 High: 8 Med: 37 β
β Est. Effort: 89 story points β
β Added this Q: 12 β
β Addressed this Q: 7 β
β Trend: β οΈ Growing β
βββββββββββββββββββββββββββββββββββββββ
SPEAK BUSINESS LANGUAGE:
βββββββββββββββββββββββββββββββββββββ
Instead of: "Auth system needs refactoring"
Say: "Our login system is 3 years old.
Each new feature takes 2 extra days.
Security review flagged 4 concerns.
$30K to fix now, vs unknown cost later."
QUANTIFY IMPACT:
βββββββββββββββββββββββββββββββββββββ
βββ "Losing 10 dev hours per sprint"
βββ "3 bugs per month from this code"
βββ "Onboarding takes 2 weeks longer"
βββ "Can't add feature X without this"
βββ Numbers make it real
PROPOSE TRADE-OFFS:
βββββββββββββββββββββββββββββββββββββ
"We can either:
A) Ship 2 features this quarter + no debt work
B) Ship 1 feature + address critical debt
Option B reduces ongoing friction
and enables faster Q4."
Let stakeholders make informed choices.
Best Practices
For Debt Documentation
Anti-Patterns
DEBT DOCUMENTATION MISTAKES:
β Undocumented debt
β Vague descriptions
β No effort estimate
β Never updating status
β Hidden from stakeholders
β Separate from main backlog
β No prioritization
β All debt same severity