Tech Debt During Active Development
Manage technical debt strategically without halting features. GitScrum provides visibility to track, prioritize, and address debt while maintaining velocity.
11 min read
Technical debt accumulates naturally during active developmentโquick fixes, temporary solutions, outdated patterns. The challenge isn't eliminating debt entirely but managing it strategically so it doesn't compound into a crisis. GitScrum provides the visibility and workflow tools to track, prioritize, and systematically address technical debt while maintaining feature velocity.
Why Technical Debt Matters
Unmanaged debt creates compounding problems:
| Debt Level | Impact |
|---|---|
| Low | Minor slowdowns, easy to address |
| Medium | Noticeable friction, affects velocity |
| High | Significant delays, risky changes |
| Critical | Development paralysis, high failure rate |
Types of Technical Debt
Categorization Framework
Technical Debt Categories:
DELIBERATE DEBT
โโโโโโโโโโโโโโโ
Made consciously for speed/deadlines
Examples:
โโโ Quick fix for urgent bug
โโโ Hardcoded values for demo
โโโ Skipped tests for deadline
โโโ Temporary architecture shortcuts
โโโ Known suboptimal solution
Tracking: Must document with payback plan
ACCIDENTAL DEBT
โโโโโโโโโโโโโโโ
Discovered later, wasn't intentional
Examples:
โโโ Design didn't scale as expected
โโโ Requirements changed after implementation
โโโ Better patterns discovered later
โโโ Library deprecated unexpectedly
โโโ Performance issues under real load
Tracking: Capture when discovered, assess impact
OUTDATED DEBT
โโโโโโโโโโโโโ
Was good, became problematic over time
Examples:
โโโ Old framework versions
โโโ Deprecated APIs still in use
โโโ Legacy patterns in new codebase
โโโ Accumulated copy-paste code
โโโ Stale dependencies with vulnerabilities
Tracking: Regular audits, automated detection
Tracking Technical Debt in GitScrum
Dedicated Debt Board
Technical Debt Board Setup:
COLUMNS:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Identified โ Assessed โ Scheduled โ In Progress โ Resolved โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ โ โ โ โ
โ [Raw debt โ [Sized & โ [Planned โ [Active โ [Done & โ
โ items] โ rated] โ for work]โ cleanup] โ verified]โ
โ โ โ โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Labels for Categorization:
โโโ debt/deliberate
โโโ debt/accidental
โโโ debt/outdated
โโโ debt/security
โโโ debt/performance
โโโ debt/architecture
โโโ debt/testing
โโโ debt/documentation
Priority Labels:
โโโ impact/critical (blocks development)
โโโ impact/high (significant slowdown)
โโโ impact/medium (noticeable friction)
โโโ impact/low (minor inconvenience)
Debt Task Template
Technical Debt Item Template:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DEBT: [Brief description] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ## What โ
โ [Description of the debt] โ
โ โ
โ ## Why It Exists โ
โ [Context: deadline, didn't know better, requirements โ
โ changed, etc.] โ
โ โ
โ ## Impact โ
โ - Current cost: [time lost per week/month] โ
โ - Risk level: [Low/Medium/High/Critical] โ
โ - Areas affected: [list components/features] โ
โ โ
โ ## Proposed Solution โ
โ [How to fix it] โ
โ โ
โ ## Effort Estimate โ
โ - Fix time: [X story points / hours] โ
โ - Testing time: [Y story points / hours] โ
โ - Risk of fix: [Low/Medium/High] โ
โ โ
โ ## Interest Rate โ
โ [How quickly is this debt growing?] โ
โ - Static: Same cost over time โ
โ - Growing: Gets worse as codebase grows โ
โ - Compounding: Blocks other improvements โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Labels: [debt/type] [impact/level] [area/component] โ
โ Due: [If deadline-driven] โ
โ Related: [Link to feature tasks affected] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Prioritization Framework
Cost-Benefit Analysis
Debt Prioritization Matrix:
LOW EFFORT HIGH EFFORT
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
HIGH โ โ โ
IMPACT โ DO FIRST โ PLAN CAREFULLYโ
โ Quick wins โ Major refactorโ
โ High ROI โ Needs sprint โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโค
LOW โ โ โ
IMPACT โ DO WHEN EASY โ PROBABLY SKIP โ
โ While nearby โ Not worth it โ
โ Boy scout ruleโ Document only โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ
Scoring Model:
IMPACT SCORE (1-5):
โโโ 5: Blocks multiple features or causes outages
โโโ 4: Significantly slows all development
โโโ 3: Affects one team or feature area
โโโ 2: Minor inconvenience, workarounds exist
โโโ 1: Cosmetic, best-practice only
EFFORT SCORE (1-5):
โโโ 5: Major refactor, weeks of work
โโโ 4: Several days, significant testing
โโโ 3: Full day, moderate testing
โโโ 2: Few hours, limited testing
โโโ 1: Quick fix, minimal risk
PRIORITY = IMPACT รท EFFORT
Examples:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Debt Item Impact Effort Priority Decision โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Hardcoded API keys 5 1 5.0 DO NOW โ
โ Duplicate validation 3 2 1.5 NEXT SPRINTโ
โ Old React patterns 2 5 0.4 SKIP โ
โ Missing unit tests 4 3 1.3 SCHEDULE โ
โ N+1 query in reports 4 2 2.0 THIS WEEK โ
โ Legacy auth system 5 5 1.0 PLAN Q2 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Interest Rate Consideration
Debt Interest Rate Assessment:
STATIC DEBT (Low urgency)
โโโโโโโโโโโโโโโโโโโโโโโโโ
Cost stays the same over time
Examples:
โโโ Inconsistent naming conventions
โโโ Missing documentation
โโโ Suboptimal database schema (stable tables)
โโโ Old coding patterns (isolated modules)
Strategy: Address opportunistically
GROWING DEBT (Medium urgency)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Cost increases as codebase grows
Examples:
โโโ No test coverage on active code
โโโ Duplicate code across features
โโโ Inefficient data structures (growing data)
โโโ Missing abstractions (more implementations)
Strategy: Address before next major feature
COMPOUNDING DEBT (High urgency)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Blocks other improvements, spreads
Examples:
โโโ Circular dependencies
โโโ God objects/classes
โโโ Broken CI/CD pipeline
โโโ Security vulnerabilities
โโโ Deprecated dependencies with no upgrade path
Strategy: Address immediately, may need dedicated sprint
Integration Strategies
Boy Scout Rule
Boy Scout Approach:
"Leave the code better than you found it"
When working on a feature:
โโโ Identify nearby debt while coding
โโโ Fix small issues (< 30 min)
โโโ Log larger issues for later
โโโ Don't scope-creep the feature
โโโ Track improvements made
GitScrum Implementation:
1. Feature task has checklist:
โก Feature complete
โก Tests passing
โก Nearby debt addressed?
โก Fixed: [describe]
โก Logged: DEBT-XXX
2. Sprint velocity includes:
โโโ ~10% buffer for scout improvements
Example:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TASK-456: Add user search โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ While implementing, also: โ
โ โ Renamed confusing variable names in UserService โ
โ โ Added missing null check โ
โ โข Logged DEBT-89: UserService needs splitting โ
โ (Too large for this PR) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Debt Sprints
Dedicated Cleanup Sprint:
WHEN TO RUN:
โโโ After major release (stabilization)
โโโ Before architectural change
โโโ When velocity drops significantly
โโโ Quarterly maintenance cycle
โโโ When debt ratio exceeds threshold
SPRINT STRUCTURE:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLEANUP SPRINT: Q1 Tech Debt โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Duration: 1 week (or 1 sprint) โ
โ Goal: Reduce critical/high debt by 50% โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Day 1: Triage โ
โ โโโ Review all identified debt โ
โ โโโ Re-assess priorities โ
โ โโโ Pick sprint scope โ
โ โโโ Assign ownership โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Days 2-4: Execution โ
โ โโโ Work on debt items โ
โ โโโ Code review as usual โ
โ โโโ Testing emphasis โ
โ โโโ Daily demos of improvements โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Day 5: Wrap-up โ
โ โโโ Complete in-progress items โ
โ โโโ Document what was fixed โ
โ โโโ Measure improvement โ
โ โโโ Celebrate wins โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Success Metrics:
โโโ Debt items closed: X
โโโ Story points addressed: Y
โโโ Test coverage improved: +Z%
โโโ Build time reduced: -N seconds
โโโ Developer satisfaction: Survey
Continuous Allocation
Continuous Debt Budget:
VELOCITY ALLOCATION MODEL:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SPRINT CAPACITY: 50 Story Points โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Features: 40 pts (80%) โโโโโโโโโโโโโโโโโโโโ โ
โ Tech Debt: 8 pts (16%) โโโโ โ
โ Buffer: 2 pts (4%) โ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
IMPLEMENTATION:
โโโ Every sprint includes debt items
โโโ Team picks from prioritized backlog
โโโ Debt items treated like features
โโโ Tracked in velocity metrics
โโโ Visible to stakeholders
Sprint Board View:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Sprint 23 - Jan 15-29 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ FEATURES (40 pts budget, 38 committed) โ
โ โโโ FEAT-101: User search (8 pts) โ
โ โโโ FEAT-102: Export reports (13 pts) โ
โ โโโ FEAT-103: Dashboard widgets (8 pts) โ
โ โโโ FEAT-104: Email templates (9 pts) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ TECH DEBT (8 pts budget, 8 committed) โ
โ โโโ DEBT-45: Fix N+1 in reports (3 pts) โ
โ โโโ DEBT-52: Add missing tests (3 pts) โ
โ โโโ DEBT-61: Update deprecated API (2 pts) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Visibility and Reporting
Debt Dashboard
Technical Debt Dashboard:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TECH DEBT OVERVIEW [Sprint 23 โผ] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Total Debt Items: 47 Trend: โ 3 from last sprint โ
โ โ
โ By Priority: โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Critical โโโโ 4 โโ
โ โ High โโโโโโโโโโโโ 12 โโ
โ โ Medium โโโโโโโโโโโโโโโโโโโโ 19 โโ
โ โ Low โโโโโโโโโโโโ 12 โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ By Category: โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ Architecture โโโโโโโโโโ 10 โโ
โ โ Testing โโโโโโโโโโโโโโโโ 15 โโ
โ โ Performance โโโโโโ 6 โโ
โ โ Security โโโโ 4 โโ
โ โ Documentation โโโโโโโโโโโโ 12 โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ Debt Trend (Last 6 Sprints): โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ 60โ โญโโฎ โโ
โ โ โ โญโฏ โฐโฎ โโ
โ โ 50โโโโฏ โฐโโโฎ โ Cleanup sprint โโ
โ โ โ โฐโฎ โญโฎ โโ
โ โ 40โ โฐโโโฏโฐโ โโ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโ
โ โ S18 S19 S20 S21 S22 S23 โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ Debt Ratio: 12% of total backlog โ
โ Healthy threshold: < 15% โ
โ Status: โ HEALTHY โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Stakeholder Reporting
Executive Debt Report:
MONTHLY TECH DEBT SUMMARY
โโโโโโโโโโโโโโโโโโโโโโโโโ
Overall Health: ๐ข Good (was ๐ก last month)
Key Metrics:
โโโ Debt items: 47 (โ 8 from last month)
โโโ Critical items: 4 (โ 2)
โโโ Debt ratio: 12% (healthy < 15%)
โโโ Velocity impact: Minimal
This Month's Wins:
โโโ Resolved security vulnerabilities in auth
โโโ Reduced build time by 40%
โโโ Added 15% test coverage
โโโ Upgraded 3 critical dependencies
Ongoing Concerns:
โโโ Legacy payment integration (Q2 plan)
โโโ Growing test debt in mobile app
โโโ Need architectural review for scaling
Investment:
โโโ Debt budget: 16% of sprint capacity
โโโ Points invested: 32 (4 sprints)
โโโ ROI: Build time savings = 10 dev-hours/week
Recommendation:
โโโ Continue current allocation
โโโ Schedule payment system refactor Q2
โโโ Consider cleanup sprint after v3.0 release
Prevention Strategies
Definition of Done
Updated Definition of Done:
BEFORE MERGING:
โก Feature complete per acceptance criteria
โก Unit tests written (>80% coverage)
โก Integration tests for critical paths
โก No new linting errors
โก No new security warnings
โก Documentation updated
โก Performance acceptable (<200ms API)
โก Accessibility checked
โก Code reviewed by peer
โก NO NEW TECHNICAL DEBT INTRODUCED
โโโ If unavoidable, debt item created with:
โก Reason documented
โก Impact assessed
โก Payback plan defined
โก Timeline committed
Architecture Decision Records
ADR Template for Debt-Prone Decisions:
# ADR-XXX: [Decision Title]
## Status
Accepted | Superseded | Deprecated
## Context
What problem are we solving?
What constraints do we have?
## Decision
What did we decide?
## Consequences
### Positive
- Benefit 1
- Benefit 2
### Negative (Debt Created)
- DEBT-XX: [Description]
- Impact: [Low/Medium/High]
- Payback: [When/How]
### Neutral
- Trade-off 1
## Payback Plan
| Debt Item | Timeline | Owner |
|-----------|----------|-------|
| DEBT-XX | Q2 2024 | @dev |
| DEBT-XY | After v3 | TBD |