Fatskills
Practice. Master. Repeat.
Study Guide: Principles of Product Management: Technical Debt (Managing Trade‑offs, Communicating Impact)
Source: https://www.fatskills.com/product-management/chapter/product-management-technical-debt-managing-tradeoffs-communicating-impact

Principles of Product Management: Technical Debt (Managing Trade‑offs, Communicating Impact)

By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.

⏱️ ~7 min read

Technical Debt (Managing Trade‑offs, Communicating Impact)



Technical Debt: Managing Trade-offs & Communicating Impact


What This Is

Technical debt is the hidden cost of future rework caused by choosing a quick, suboptimal solution today instead of a better (but slower) approach. It matters because unmanaged debt slows velocity, increases bugs, and erodes user trust—like a fintech app that patches a security flaw with a temporary fix, only to face a data breach months later when the "quick fix" fails under scale. Example: Twitter’s early monolithic architecture (Ruby on Rails) became debt when user growth exploded, forcing a costly rewrite to microservices to handle real-time feeds.


Key Terms & Frameworks

  • Technical Debt Quadrant (Martin Fowler):
  • Prudent/Deliberate: "We know this is messy, but we’ll fix it later" (e.g., skipping tests to hit a deadline).
  • Reckless/Deliberate: "We don’t care about quality" (e.g., hardcoding values).
  • Prudent/Inadvertent: "We didn’t know better" (e.g., using a library that later becomes obsolete).
  • Reckless/Inadvertent: "We didn’t even think about it" (e.g., no code reviews).

  • Debt-to-Value Ratio (D/V):
    D/V = (Estimated Cost of Future Rework) / (Current Business Value of the Feature)

  • Rule of thumb: If D/V > 0.5, prioritize paying down debt now (e.g., a feature generating $100K/month but will cost $60K to refactor later has D/V = 0.6).

  • Interest Rate of Debt:
    Interest = (Annual Maintenance Cost) / (Original Implementation Cost)

  • Example: A $50K feature costs $10K/year to maintain → 20% interest rate. Compare to your company’s cost of capital (e.g., if your WACC is 10%, this debt is "expensive").

  • Technical Debt Backlog (TDB):
    A prioritized list of debt items, scored by:

  • Impact: Severity (e.g., security risk = high, minor UI bug = low).
  • Effort: Story points or engineer-hours to fix.
  • Urgency: Time sensitivity (e.g., "will block next quarter’s roadmap").

  • The "Boy Scout Rule" (Uncle Bob):
    "Leave the codebase cleaner than you found it." Allocate 10–20% of sprint capacity to small debt fixes (e.g., refactoring a messy function during a feature build).

  • Cost of Delay (CoD):
    CoD = (Value Lost per Week) × (Weeks Delayed)

  • Example: Delaying a debt fix blocks a $20K/week feature → CoD = $20K/week. Use this to justify debt work to stakeholders.

  • The "Debt Ceiling" Framework:
    Set a threshold for debt (e.g., "No more than 15% of sprints can be debt work"). When breached, pause feature work to pay down debt.

  • Technical Debt Taxonomy (Google’s 4 Types):

  • Code Debt: Poorly written code (e.g., duplicate logic).
  • Design Debt: Flawed architecture (e.g., tight coupling).
  • Test Debt: Missing or flaky tests.
  • Documentation Debt: Outdated docs or no docs.

  • The "Debt Snowball" vs. "Debt Avalanche" Methods:

  • Snowball: Pay off smallest debts first (quick wins for morale).
  • Avalanche: Pay off highest-interest debts first (mathematically optimal).

  • The "Debt Wall" Visualization:
    A physical or digital board showing debt items as sticky notes, grouped by:

  • Severity (red/yellow/green).
  • Owner (engineer/team responsible).
  • Blockers (e.g., "waiting on design").


Step-by-Step Process Flow


1. Identify and Inventory Debt

  • Action: Run a technical debt workshop with engineers (use the 4 Types taxonomy).
  • How: Ask, "What’s slowing you down?" and "What would you fix if you had 2 weeks?"
  • Output: A TDB (Technical Debt Backlog) with 20–50 items.
  • Example: At a SaaS company, engineers flagged a legacy API causing 30% of support tickets.

2. Quantify Impact (Business + Engineering)

  • Action: Score each debt item using:
  • D/V Ratio (for business impact).
  • Interest Rate (for engineering cost).
  • CoD (for time sensitivity).
  • Example: A monolithic checkout flow has:
  • D/V = 0.8 (costs $80K to refactor, generates $100K/month).
  • Interest = 25% (maintenance costs $20K/year).
  • CoD = $5K/week (blocks a high-value feature).

3. Prioritize Using a Framework

  • Action: Apply ICE (Impact, Confidence, Ease) or RICE to the TDB.
  • Impact: Use D/V or CoD.
  • Confidence: Engineer confidence in the fix (e.g., "90% sure this will reduce bugs by 50%").
  • Ease: Story points or engineer-hours.
  • Example: A debt item scores:
  • Impact = 8 (D/V = 0.8), Confidence = 9, Ease = 5 → ICE = 14.4.

4. Communicate to Stakeholders

  • Action: Translate debt into business terms (use CoD or D/V).
  • Template:
    > "If we don’t fix [X], we’ll lose [$Y] in [revenue/support costs/time] over [Z months]. The fix takes [A] sprints and will unblock [B] future work."
  • Example:
    > "The legacy API costs $15K/month in support tickets. Fixing it takes 2 sprints and will unblock our mobile app launch (CoD = $5K/week)."

5. Allocate Capacity

  • Action: Use the Debt Ceiling framework to decide how much to pay down.
  • Options:
    • Dedicated sprints (e.g., "1 sprint per quarter for debt").
    • Boy Scout Rule (e.g., "10% of every sprint").
    • Feature + Debt combo (e.g., "Build the new feature and refactor the API").
  • Example: At Shopify, teams allocate 20% of sprints to debt, tracked via a "Debt Wall."

6. Track and Reassess

  • Action: Monitor debt metrics in every sprint review:
  • Debt-to-Feature Ratio: % of sprints spent on debt vs. features.
  • Bug Rate: # of bugs introduced by debt (e.g., "30% of bugs come from the legacy API").
  • Velocity Impact: % slower delivery due to debt (e.g., "Features take 20% longer because of tech debt").
  • Example: If bug rate spikes, trigger a debt fire drill (pause features to fix).


Common Mistakes


Mistake 1: Treating Debt as "Engineering’s Problem"

  • Correction: Frame debt as a business risk (use CoD or D/V). Example: "This debt will delay our IPO roadmap by 3 months."
  • Why: Stakeholders care about outcomes, not code quality.

Mistake 2: Prioritizing Debt Without Data

  • Correction: Always quantify impact (e.g., "This debt causes 10% of our outages"). Use the TDB to score items.
  • Why: "We feel this is important" isn’t enough—tie it to metrics.

Mistake 3: Paying Down Debt Without a Plan

  • Correction: Use the Debt Ceiling or Boy Scout Rule to systematically allocate capacity.
  • Why: Random debt fixes create opportunity cost (e.g., fixing a minor UI bug instead of a security flaw).

Mistake 4: Ignoring "Invisible" Debt

  • Correction: Include test debt, documentation debt, and design debt in the TDB.
  • Why: Missing tests or docs compound over time (e.g., onboarding new engineers takes 3x longer).

Mistake 5: Letting Debt Accumulate Until It’s a Crisis

  • Correction: Set a trigger (e.g., "If debt-to-feature ratio > 20%, pause features"). Use the Debt Wall to visualize.
  • Why: Debt is like compound interest—the longer you wait, the more it costs.


PM Interview / Practical Insights


1. "How Would You Convince a Non-Technical Stakeholder to Prioritize Debt?"

  • Trap: Talking about "clean code" or "refactoring."
  • Answer: Use CoD or D/V. Example:

    "This debt costs us $20K/month in support tickets. Fixing it takes 2 sprints and will unblock our Q3 roadmap (CoD = $5K/week)."


  • Why: Stakeholders care about money and time, not code.

2. "How Do You Balance Debt and New Features?"

  • Trap: Saying "It depends" without a framework.
  • Answer: Use the Debt Ceiling or Boy Scout Rule. Example:

    "We allocate 15% of sprints to debt (Debt Ceiling). For high-impact debt, we pair it with a feature (e.g., refactor the API while building the new checkout flow)."


  • Why: Shows systematic thinking and trade-off management.

3. "How Do You Measure the Impact of Debt?"

  • Trap: Vague answers like "fewer bugs."
  • Answer: Use quantifiable metrics:
  • Bug rate (e.g., "30% of bugs come from debt").
  • Velocity impact (e.g., "Features take 20% longer").
  • Support cost (e.g., "$15K/month in tickets").
  • Why: Proves you track outcomes, not just outputs.

4. "What’s the Difference Between Technical Debt and a Bug?"

  • Trap: Saying "Debt is intentional, bugs are not."
  • Answer:
  • Bug: A specific failure (e.g., "Login button doesn’t work").
  • Debt: A systemic issue that causes future problems (e.g., "No unit tests → more bugs").
  • Why: Debt is proactive, bugs are reactive.


Quick Check Questions


1. Your team wants to launch a feature that will add $50K/month in revenue but introduces $100K in technical debt (D/V = 2). How do you decide?

  • Answer: Don’t launch. A D/V > 1 means the debt outweighs the value. Propose a phased approach (e.g., build a minimal version with less debt).
  • Why: Debt with D/V > 1 is value-destructive long-term.

2. A stakeholder says, "We’ll fix the debt later—just ship the feature now." How do you respond?

  • Answer: Calculate CoD. Example:

    "Shipping now will cost $5K/week in delayed future work (CoD). If we spend 1 extra sprint now, we’ll save $20K over the next month."


  • Why: Later = never. Use data to show the true cost of delay.

3. Your engineers say, "This debt is slowing us down, but we can’t quantify it." What do you do?

  • Answer: Run an experiment. Example:
  • Allocate 1 sprint to fix a small debt item.
  • Measure velocity before/after (e.g., "Features took 10 days before, 7 days after").
  • Why: Proof > opinions. Use A/B testing for debt.


Last-Minute Cram Sheet

  1. Technical Debt Quadrant: Prudent/Deliberate (good), Reckless/Inadvertent (bad).
  2. D/V Ratio: (Future Rework Cost) / (Current Value). D/V > 0.5 = prioritize now.
  3. Interest Rate: (Annual Maintenance Cost) / (Original Cost). Compare to WACC.
  4. CoD: (Value Lost per Week) × (Weeks Delayed). Use to justify debt work.
  5. Debt Ceiling: Set a % of sprints for debt (e.g., 15%).
  6. Boy Scout Rule: 10–20% of sprints for small debt fixes.
  7. TDB: Prioritize using ICE/RICE (Impact, Confidence, Ease).
  8. Debt Wall: Visualize debt by severity, owner, blockers.
  9. ⚠️ Debt ≠ Bugs: Debt is systemic, bugs are specific failures.
  10. ⚠️ Stakeholders care about CoD/D/V, not code quality. Translate debt to business impact.


ADVERTISEMENT