Technical Debt Review
Purpose: Surface, prioritize, and budget paydown for technical debt that's slowing the team
How to run this meeting
Technical debt reviews fail when they become a complaints session with no business connection. The antidote is quantification: estimate every debt item in developer-hours of impact (time lost to workarounds per sprint) and in incident risk (has this area caused an outage in the last 12 months?). When you can say "this legacy auth service costs us 6 engineer-hours per sprint in workarounds and has caused 2 incidents this year," it becomes a real prioritization conversation instead of a vague wish list.
Use a severity matrix to force prioritization. A simple 2x2 of "impact on velocity" vs. "cost to fix" is enough to generate a defensible priority order. High impact, low cost to fix items should be immediate targets. High impact, high cost items belong in a roadmap conversation. Low impact items should be logged and revisited quarterly, not acted on now. This prevents the common failure mode of spending weeks on technically interesting but low-leverage refactors.
Connect debt to business outcomes in the language your stakeholders understand. "We can't ship the enterprise SSO feature without refactoring the auth layer first" is a conversation that gets prioritization. "The auth code is messy" is not. Budget a recurring allocation — most teams that successfully pay down debt reserve 10–20% of sprint capacity for it, run it as a dedicated quarterly "debt sprint," or attach debt paydown to features that touch the affected area. Whichever model you choose, make it an explicit commitment, not a "we'll get to it when things slow down" aspiration.
Before the meeting
- Ask engineers to submit debt items 48 hours in advance using a standard template (description, estimated impact in hours/sprint, risk level)
- Pull incident and bug data to identify hotspots — code areas with repeated incidents are debt candidates by definition
- Review previous debt review action items and their status
- Prepare a scoring rubric (velocity impact, incident risk, cost to fix, business dependency) so the meeting can prioritize consistently
- Invite the engineering lead and one product stakeholder — debt decisions benefit from both perspectives
Meeting Details
- Date:
- Facilitator:
- Attendees:
- Duration: 60–90 minutes
- Review period:
Debt Inventory
All known debt items under discussion. Capture a plain-language description of what the debt is and where it lives in the codebase.
| ID | Area | Description | Submitted by |
|---|---|---|---|
| TD-14 | Auth service | Session management uses a hand-rolled token system predating JWT adoption | @priya |
| TD-15 | Data pipeline | ETL jobs run sequentially; no retry logic on failure | @carlos |
| TD-16 | Frontend | React components in /legacy use class components and deprecated lifecycle methods | @mia |
| TD-17 | Infrastructure | Database backups are manual and not tested for restore reliability | @jordan |
Impact Assessment
For each item: how much is this costing the team today? Estimate in developer-hours lost per sprint and note any incidents caused by this area.
| ID | Velocity cost (hrs/sprint) | Incidents (last 12 mo) | Notes |
|---|---|---|---|
| TD-14 | 4 hrs (workarounds for every new auth feature) | 2 | Blocked enterprise SSO work for 3 weeks |
| TD-15 | 6 hrs (manual reruns + investigation) | 1 | Data delays cost customer SLA credits in Q3 |
| TD-16 | 2 hrs (isolated to frontend work) | 0 | Slows onboarding for new frontend engineers |
| TD-17 | 0 hrs (no current velocity impact) | 0 | Latent catastrophic risk if backups fail |
Cost to Fix
Rough estimate of engineer-hours or sprint capacity required to address each item. Note any dependencies or risks in the fix itself.
| ID | Estimated effort | Dependencies | Notes |
|---|---|---|---|
| TD-14 | ~3 sprints (2 engineers) | Requires coordination with mobile team | Could be phased: new sessions first, migration second |
| TD-15 | ~1 sprint (1 engineer) | None | Good candidate for a standalone debt sprint |
| TD-16 | ~2 sprints (1 engineer) | None | Could be done incrementally alongside feature work |
| TD-17 | ~3 days (1 engineer) | DevOps access | Should be treated as a security/reliability priority |
Priority Matrix
Combine impact and cost to generate a priority order. Use this to make explicit tradeoffs rather than gut-feel ordering.
| Priority | ID | Rationale |
|---|---|---|
| P1 — Act now | TD-17 | Zero velocity cost but unacceptable risk; low effort to fix |
| P1 — Act now | TD-15 | Highest velocity cost, caused customer SLA breach, manageable effort |
| P2 — Plan for next quarter | TD-14 | High impact but large effort; needs roadmap slot, blocks SSO feature |
| P3 — Revisit in 6 months | TD-16 | Low impact, isolated area; address incrementally with feature work |
Owners and Paydown Plan
Who is responsible for each prioritized item, and when will it be addressed? Define the budget allocation.
| ID | Owner | Approach | Target completion |
|---|---|---|---|
| TD-17 | @jordan | Dedicated work this sprint (3 days) | End of Sprint 26 |
| TD-15 | @carlos | Dedicated debt sprint in Q1 | End of Sprint 28 |
| TD-14 | @priya | Phase 1 scoped into SSO feature epic | Q2 roadmap |
| TD-16 | @mia | Incremental, alongside any component that touches legacy area | Ongoing |
Action Items
| Owner | Action | Due Date | Status |
|---|---|---|---|
| @jordan | Implement and test automated database backup restore process | 2025-02-14 | Open |
| @carlos | Scope TD-15 into Sprint 28 as a dedicated debt sprint | 2025-02-07 | Open |
| @priya | Add TD-14 Phase 1 to the SSO feature epic in Linear | 2025-02-07 | Open |
| @eng-lead | Formalize 15% sprint capacity allocation for debt paydown | 2025-02-21 | Open |
Follow-up
The debt inventory is maintained in the engineering wiki and updated after each review. P1 items are added to the active sprint or the next sprint immediately after this meeting. The debt review is held quarterly (or after any major incident that reveals a systemic gap). Progress on P2/P3 items is checked at the next quarterly review. Share a summary with the product team so debt costs are visible in roadmap conversations.
Skip the template
Let Stoa capture it automatically.
In Stoa, the AI agent listens to your technical debt review and captures decisions, drafts artifacts, and tracks open questions in real time — no note-taking required.
Create your first Space — free