All briefs

Legacy · safer releases

Legacy code & cleanup

Deploys should be boring. Ours aim for that.

01

The situation

Deploys feel risky every time. Change is slow, outages sting, and too much knowledge sits in one person's head — so every ticket is a negotiation and every Friday has a quiet prayer.

The code is not cursed. It is unmaintained, under-tested, and owned by habit. Patches stack on patches until nobody can say which shortcut is load-bearing and which is folklore.

Teams often live in two modes: freeze everything, or hotfix in panic. Neither is a strategy — both are expensive.

02

What you get

Risk trimmed with small, safe releases; structure and deploy discipline improved; we say outright when a controlled rewrite beats death-by-a-thousand patches.

You get a release path someone else can run, monitoring on what actually breaks customers, and documentation that survives the next hire — not a stealth rewrite dressed up as cleanup.

When a controlled rewrite is the honest answer, we scope it like adults: phased, with a line between what ships and what gets cut.

03

Cleanup work

  1. Release and rollback path you can run on a Tuesday — not only when the hero is in
  2. Tests and monitoring on the flows that actually break customers and margin
  3. Incremental refactors with visible checkpoints — not a stealth rewrite
  4. Dependency and security hygiene proportionate to exposure
  5. Runbooks and architecture notes for the next person who inherits it
  6. Clear call on patch vs replace — with numbers, not vibes

→

How legacy cleanup runs

Small slices — confidence per release, not a six-month rewrite in hiding.

  1. Step 1

    Start safe

    Mapping blast radius before legacy changes

    Map blast radius

    What must not break this month — revenue, compliance, customer paths — before anyone edits a line.

  2. Step 2

    Boring deploys

    Release and rollback discipline on legacy code

    Release discipline

    Rollback you trust, deploy path someone else can run on a Tuesday — not only when the hero is in.

  3. Step 3

    Prove it

    Tests and monitoring on critical legacy paths

    Tests on scary paths

    Monitoring and coverage on flows that break customers and margin — incremental refactors with visible checkpoints.

  4. Step 4

    Out loud

    Patch versus rewrite decision with evidence

    Patch vs rewrite call

    Evidence-based decision with numbers — phased rewrite if honest, or disciplined patching if that is the grown-up answer.

Legacy is not a moral failing. Hero-dependent systems are.

04

Signs this might be you

  • Nobody wants to touch production except one person — and they are tired
  • Rollback is a story, not a button you trust
  • Incidents repeat with different symptoms but the same root cause
  • The board asks for features; engineering asks for a rewrite — nobody aligns on risk
  • Staging never matches prod and everyone knows it
  • You are paying for shelfware because the old system cannot be changed safely

05

How we approach legacy without denial

We start with what must not break this month — revenue, compliance, customer-facing paths — and map blast radius before anyone edits a line.

Small slices ship first: logging, deploy discipline, tests on the scary paths, then structure where it earns its keep. The goal is confidence per release, not a six-month rewrite in hiding.

06

Patch culture vs controlled rewrite

Death-by-a-thousand-patches is real — but so is rewrite fantasy. We name which side you are on with evidence: cost of change, incident history, and who can maintain what you have.

If rewrite is honest, we phase it so you are not betting the company on a single go-live.

→

Good fit when

  • You have revenue on the system and cannot afford a big-bang replacement
  • Leadership will fund incremental improvement, not only hero projects
  • Someone inside will own the system after we step back

×

Probably not when

  • You want a rewrite quote without stabilising what is live
  • Nobody will grant access, logs, or time with the person who knows the shortcuts
  • The real problem is process — and nobody will name an owner