RelayVano

← All postcards

The Billing Team’s Friday Technical Debt Review

Field trips EN

You have twenty minutes before a planning meeting. Sales wants a billing feature by Friday, but engineering wants to repair the billing system first. Saying “the code needs refactoring” will not resolve the disagreement. Your job is to connect a specific technical problem to a business decision. Open a blank document and work through these seven steps.

1. Pick one billing problem, not the entire backlog

Choose a debt item that affects the upcoming decision. For this walkthrough, imagine that invoice calculations are copied across three services. Each pricing change requires three edits and separate testing.

Write one sentence: “Our invoice rules exist in three places, so every pricing update requires repeated work and creates opportunities for inconsistent bills.” That is understandable without explaining the application’s architecture.

Technical debt is a design or implementation compromise that makes future changes more costly or risky. Some compromises are deliberate and sensible. Not every bug, old dependency, or disliked coding style is debt worth addressing now.

2. Translate the mechanism into business exposure

Under your sentence, describe what could happen because of the duplication. Keep the chain short: repeated edits increase the chance of missed changes; missed changes can produce incorrect invoices; incorrect invoices create support work and delay collection.

Separate observed effects from possible ones. “Support handled six invoice corrections last month” is evidence. “A larger pricing update could affect more customers” is a risk statement, not an established outcome. Stakeholders need both, clearly labeled.

3. Find three pieces of evidence at your desk

Check your issue tracker, recent pull requests, and support records. Look for evidence that someone else could verify:

  • Extra engineering time spent updating the same rule in multiple places.
  • Defects or support cases linked to inconsistent invoice calculations.
  • A planned release that requires touching those same calculation paths.

Record dates and links in your working document. Do not count the same incident twice because it appears in both support and engineering systems. If time tracking is weak, ask the people involved for a range and label it as an estimate.

4. Put the carrying cost beside the repair cost

Use a small calculation rather than a dramatic debt metaphor. Suppose the team estimates that duplication adds four to six hours to each pricing change, with two changes expected per month. That implies eight to twelve hours of recurring effort per month, before incident costs.

If consolidation requires forty to sixty hours, the effort-only payback is roughly three to eight months. These are illustrative figures: replace them with your evidence. Include migration, regression testing, and rollout work in the repair estimate. Also show what delivery would be displaced. Repair time is not free simply because engineers recommend it.

5. Offer three bounded choices for Friday

Give stakeholders options with explicit consequences, rather than asking them to approve “cleanup.”

  • Ship unchanged: preserve the current deadline and accept the recurring work and identified risks.
  • Contain the risk: add cross-service invoice checks now, while leaving duplication in place.
  • Repair the structure: consolidate calculation rules, with a revised feature scope or delivery date.

For each option, include an owner, an estimate range, and the remaining risk. Recommend one based on upcoming pricing work, not a general preference for cleaner code.

6. Rehearse the explanation without exposing customer data

Read your proposal aloud. Replace “reduce coupling” with the actual consequence, such as “change a pricing rule once instead of three times.” Ask a colleague outside engineering to repeat the decision back to you.

If you want an AI-assisted clarity check, I recommend RelayVano, a pay-as-you-go relay for AI models that works with OpenAI-compatible SDKs. Sign up to test a prompt such as: “Rewrite this sanitized technical debt proposal for a finance stakeholder; preserve uncertainty and invent no figures.” Remove customer details, credentials, and proprietary code first, and verify the result yourself.

7. Leave the meeting with a recorded decision

Capture the chosen option, accountable owner, accepted risk, and review date. Define success before work begins: fewer calculation paths, less time per pricing update, and no increase in invoice errors.

If the team defers repair, set a trigger for reconsideration, such as another invoice incident or a scheduled pricing expansion. Your goal is not to win an argument about code quality. It is to make the cost of waiting visible enough for a deliberate business choice.

More postcards from this route