How we work

The six-step path from a legacy estate to AI in production

This is the same sequence on a discovery call, in a proposal and on this page. Six steps, in the order they ship. Each one answers a failure that stops AI work reaching production, and each one leaves an artifact your team keeps whether or not we do the next step.

The argument

Why a sequence and not a methodology

Most AI work fails under the model rather than in it. The models are good and improving, and they are not the constraint. The constraint is four layers below them that were never built for software that acts: data that was never provisioned, infrastructure that was never sized, security that assumes a human behind every action, and an estate that cannot be paused while any of it is fixed.

The order below is not a preference. It is the order a project hits those failures, and each step exists because skipping it makes a later one impossible. You cannot size an architecture against data you have not contracted, and you cannot harness an agent inside a boundary nobody has drawn.

The six steps

Step 01 · Discovery

Read the estate

Before anything is designed we establish what actually runs the business: which systems hold the system of record, what they cost to run, where the data physically lives, which integrations are load-bearing, and what may not be touched under any circumstances.

This is deliberately unglamorous and it is where most of the risk gets removed. A transformation that surprises itself in month three usually skipped this. We write it down and hand it over, because it is useful to you even if we never work together again.

You keep an estate map — what runs, what it costs, what is untouchable
Answers the question every later step depends on

Step 02 · Data engineering

Provision the data

The pilot ran on an extract somebody built by hand. Production cannot. This step builds the data layer the system will actually read: pipelines with contracts on the fields that matter, a retrieval path designed for the question being asked rather than for a demo, and lineage from the answer back to the row it came from.

Crucially, it also assigns ownership. A data contract names who decides what a field means. Without that, every disagreement about a number becomes a meeting instead of a lookup.

You keep data contracts, a pipeline spec, a retrieval path, named field ownership
Answers failure 1 — the data was never provisioned

Step 03 · System architecture

Architect the system

The target architecture gets drawn beside the legacy one, with the boundary between them named explicitly. Services, gateways, and the seams where the new system reads from and writes back to the estate.

Then the numbers, before the build rather than after: throughput, p99 latency, capacity ceiling, cost per request, and what the system is supposed to do when it exceeds any of them. Ten questions a day and ten thousand a day are different systems, and which one you are building is a decision, not a discovery.

You keep a migration architecture note with capacity, latency and cost budgets on the page
Answers failure 2 — the infrastructure cannot hold it

Step 04 · Agent harnessing

Harness the agents

An agent is scoped to one job with a stated boundary, given a tool and authority model that says exactly what it may reach and who approved that, and wrapped in an evaluation harness that runs before every change rather than after every incident.

Anywhere the action is irreversible, a named human checkpoint sits in front of it. Not a review queue in principle — a person, named, with the authority to stop it. Every run can be replayed from its inputs, so a failure can be reconstructed instead of guessed at.

You keep agent design, an authority model, an evaluation harness, named checkpoints
Answers the question you will be asked in month two — what happens when it is wrong

Step 05 · Security engineering

Secure the boundary

Application security assumes a user behind every action, and an agent breaks that assumption. It is a principal with credentials, a tool list, and an input channel an attacker can write to directly.

So: least privilege on every tool grant, reviewed as a change rather than issued as a default. A threat model that includes the prompt that is itself the attack. Identity for software, separate from the human identity it acts on behalf of. Model provenance — what ran, which version, on what. And keys you hold, in your infrastructure.

You keep a threat model for software that acts, least-privilege grants, provenance records
Answers failure 3 — security has no model for software that acts

Step 06 · System architecture

Run it under load, with a way back

The system is load-tested against your real traffic shape, not a synthetic average. Observability goes on before launch rather than after the first incident. Cost per decision is measured and known, so the inference bill stops being a surprise.

And the rollback to the legacy path is built, tested, and left in place. Cutover is not a date on a plan; it is a switch that keeps working after it has been thrown. This step is the entire reason the sentence below is allowed to exist.

You keep load-test results on your system, observability, cost per decision, a rollback and cutover plan
Answers failure 4 — the legacy estate does not move

The claim, and its mechanism

Nothing is paused, and there is always a path back

That sentence is the whole pitch to a business that cannot afford an outage, and it is only true because of step six. A migration claim without a rollback is a hope.

It is also why we will not compress the sequence to win a deal. Steps two, three and five are the ones a competitor drops to quote a shorter timeline, and they are the three that decide whether the thing survives contact with production.

What we will not do

  • Quote a performance number we have not measured on your system
  • Put an agent in front of an irreversible action with no named checkpoint
  • Ship a cutover with no tested path back
  • Start at step four because the pilot is exciting
The six-step path, with the rollback Six steps in sequence: read the estate, provision the data, architect the system, harness the agents, secure the boundary, and run it under load. A dashed return path runs from step six back to the start, labelled the path back, which stays available after cutover. 01 Read the estate 02 Provision the data answers failure 1 03 Architect the system answers failure 2 04 Harness the agents 05 Secure the boundary answers failure 3 06 Run under load answers failure 4 the path back — built, tested, and still there after cutover
The sequence, and the rollback. The dashed return is the part competitors drop to quote a shorter timeline, and it is the part that decides whether the migration is reversible.

Send us the problem

Describe what is stuck. We will come back with an architecture, a timeline and the first commit.