Use case · Any size · one system nobody wants to touch

Legacy and migrations

The module everyone avoids, the dependency nobody can name, and a migration that has to keep behaviour nobody wrote down.

TEAMS CARRYING A SYSTEM OLDER THAN MOST OF THE PEOPLE MAINTAINING IT

The situation

A system that outlived
the people who wrote it.

The system runs the business and has outlived its authors. Its rules are in the code, in a few documents that stopped being true years ago, and in the heads of two people, one of whom is leaving.

Before a migration somebody is asked for a map of what depends on what. It gets built by hand, over weeks, from grep and interviews — and it is out of date before the first module moves.

What it costs today

What archaeology costs
before every move.

The module nobody touches

Everyone knows which one it is. The change that should take a day waits for the person who remembers, or does not happen at all.

Dependencies with no name

The ones you find by breaking them: a report that quietly feeds a regulator, a job that another team depends on, a rule enforced in two places and changed in one.

Maps built by hand

Lineage and impact maps are assembled for each project and thrown away after it, because keeping them current costs more than making them.

Knowledge that leaves

When the person who knew goes, the system does not become undocumented — it becomes unowned.

What you ask

What you have to answer
before you move anything.

01

What actually depends on this module, including the things that share no word with it?

02

Which business rules does this system enforce, and where is each one enforced?

03

If we move this piece first, what behaviour has to keep working on the old side?

04

What did this system do for the customer that nobody wrote down?

Worked example

Moving billing out of the monolith

01

You ask what the billing module reaches, in those words. The answer names the customer paths, the rules, the records and the areas that lean on it — including the ones no search would return, because they share no word with 'billing'.

02

You take the rules it enforces as a list and decide, rule by rule, which ones move and which ones must keep holding on the old side.

03

Every push during the migration is reviewed against the product model, so a rule that quietly stopped holding is named the day it stops, not at the first customer complaint.

Outcome

The migration starts from a map that stays current while it runs, and the behaviour that had to survive is a list somebody can check instead of a memory somebody has.

A WORKED EXAMPLE OF HOW THE WORK GOES, NOT A CUSTOMER CASE STUDY. WHEN WE PUBLISH A CUSTOMER RESULT IT WILL BE MEASURED AND NAMED.

What changes

What changes when the map
keeps itself current.

The map is built, not drawn

What depends on what comes out of the code itself and is current with the last commit, so it survives the migration instead of expiring during it.

Scoping replaces archaeology

What a change reaches is a question, not a two-week study, and the answer names the parts in the product's own words.

Knowledge becomes transferable

The rules the system enforces are written down as the product, so a new person or an agent starts from them instead of from the person who is leaving.

Migration is measured by understanding

Not by how much code moved, but by how much of the system is now visible to everyone who has to keep it running.

The measured part

Measured, and the same
whatever your size.

92%answers correct, against 78% for the highest-scoring alternative
69%context required
63%cost per question
Where to start

$29 per active developer

One shared model of the system for the people migrating it, with Business Review on the project so every push during the migration is held against the product.

Connect a repository.
Measure the difference.