Skip to content

Extract or bind

Two estates arrive at the same complaint: "our repos are all different, and nothing we write centrally seems to stick."

One of them should extract a shared layer. The other should not touch a single file — it should move a person. Getting this backwards is expensive, and the surface symptoms are identical.

The two situations

Case 1 — a shared habitat exists. A platform team wrote a harness. It is declared, referenced in the architecture deck, and genuinely good. The question is whether anything in each subject actually reaches it.

Case 2 — no shared habitat. Each team built its own control surfaces. The question is whether those surfaces share an ancestor.

The portfolio regimes split each case in two, and the steers do not transfer between them.

Case 1: bind before you extend

An estate with a declared harness that binds in one subject and not in three is Distributed, and the instinct it provokes is almost always wrong.

The instinct is to improve the harness. More rules, more coverage, another round of adoption comms. But the harness is not the problem — three-quarters of the estate cannot see the one that exists. Improving it makes a better artefact that still reaches one subject.

Binding is the cheapest uplift available in the whole estate, and it is not a build. Nobody writes a testing policy or a governance model; they already exist. Somebody makes the subject reuse the shared workflows and defer to the shared conventions. Several dimensions move the day it lands.

The tell that you are here: inherited-unbound marks in the matrix, and a spread driven by the subjects carrying them.

Case 2: extract only what has lineage

An estate with no shared habitat splits on one question: do the per-subject control surfaces share an ancestor?

Fragmented — several subjects carry near-identical but diverged copies of the same artefact. Somebody copied a HARNESS.md four times and four teams maintained it separately. That is a genuine extraction candidate, and the divergences are the work: they encode four local decisions, some of which are real requirements and some of which are accidents nobody remembers making.

Islanded — each subject's habitat is genuinely its own, with little overlap, and the spread is wide because one team is materially further along.

Extraction is the wrong move here, and it is the move people reach for. There is no common layer to extract; there is one team that has figured something out and three that have not. Consolidating four unrelated habitats into one produces an artefact that fits nobody and erases the local knowledge that made the leading team effective.

Move people, not files. Rotate someone from the leading team. Have them run the assessment with another team and explain their own report. What transfers is the reasoning, and the reasoning is not in the files.

Why the distinction is easy to miss

Fragmented and Islanded look the same from a distance: four repos, four different habitats, wide spread, no central harness. The matrix rows look similarly ragged.

The difference is only visible if you actually read the control surfaces and ask whether they are versions of each other. That is why near-duplicate detection requires all three of a shared name, overlapping content, and divergence — any two of those without the third is a coincidence, and acting on a coincidence starts a consolidation programme against files that were never related.

Declared variance is not drift

Some divergence is correct and should stay. A COBOL batch job cannot adopt the harness's test tooling; a data pipeline's observability will not look like a web service's.

An estate can declare those exceptions, and the report lists them as declared rather than reporting them as drift. This is not a loophole — it is listed in the open precisely so a reader can disagree with it. Without it the report generates a permanent backlog of "convergence" work that nobody should do, and the honest response is to stop reading the report.

The short version

You see You are Do
Harness declared, inherited-unbound in several subjects Distributed Bind it. Do not extend it.
Harness declared, inherited throughout, narrow spread Federated Hold. Watch the pins.
No harness, near-duplicate diverged artefacts Fragmented Extract, and reconcile the divergences deliberately.
No harness, unrelated artefacts, wide spread Islanded Move people. Leave the files alone.