The whole product, or the part blocking it.
A product taken from a problem statement to running software somebody operates: scope and architecture before code, then the interface, the services behind it, the integrations, the deployment path and the handover. The person who scopes it stays accountable for the build.
The builds this fits.
Being specific about fit is worth more than being available for everything. A company that says yes to all of it is one you cannot calibrate.
- A product that does not exist yet, where the hard part is not the interface and you want one team accountable for all of it.
- An existing product with a component that is blocking the rest, where the blocking part reaches below the application layer.
- A rebuild where the current system is understood well enough to say what must survive it.
- Internal or operational software a business genuinely runs on, rather than a proof of concept.
- A team that has the surface handled and needs the backend, the data model and the deployment path built properly underneath it.
Where complete builds usually fail.
Almost none of it is the interface. A build goes wrong at the seams: the frontend assumes a shape the backend never promised, an integration behaves differently in production than in the sandbox, a data model that was right for the first feature quietly becomes wrong for the fourth, and nobody notices until the change that needs it is already late.
The second failure is ownership. Split a product across a design vendor, an app shop and whoever administers the infrastructure, and every hard problem lands in the gap between two contracts. The part that is nobody's job is reliably the part that decides whether the thing works.
The third is the handover. A system that only its authors can operate is not finished, it is rented. What separates a build you own from one you are stuck with is whether the reasoning came with it: the decisions, the alternatives that were rejected, and the procedure for the things that need operating.
The stack, and where this sits.
A complete build reaches the whole ladder. Where a rung is another category's depth, the diagram says so rather than absorbing it quietly.
A reference architecture, meaning the shape the work is designed to rather than a record of systems delivered. It names layers and responsibilities and never products: what runs at a given layer is a decision taken with you during scoping, not one taken here in advance.
- L5
Product surface
Coverage: OwnedThe interface and frontend application, built against real states rather than the happy path. A visual comp with no system under it is somebody else's offer.
- L4
Services and APIs
Coverage: OwnedBackend services and APIs, with the integrations behind them, and the seams made explicit rather than assumed by both sides at once.
- L3
Data and state
Coverage: OwnedThe data model, shaped for the fourth feature and not only the first, because that is where it quietly goes wrong.
- L2
Models and agents
Coverage: TouchedBuilt where the product genuinely needs it. The boundary, retrieval and evaluation work is scoped as AI and automation.
- L1
Runtime and infrastructure
Coverage: TouchedA deployment path from commit to running service, with a rollback that has been exercised. The platform itself is its own category.
- L0
The layer underneath
Coverage: TouchedReached when the part blocking the product lives below the application layer, rather than stopped at a vendor boundary.
What the marks mean
- Owned
- This category is accountable for the layer. It is designed, built and handed over inside the engagement.
- Touched
- The work reaches the layer as far as the build needs it to, and the depth here belongs to one of the other categories.
- Outside
- Deliberately not this category. The note on the rung says where the work goes instead.
What the engagement produces.
Systems and documents, not activity. Every item is a thing you keep.
- A written scope: the problem as understood, what will and will not be built, the stages, and the acceptance criteria for each.
- An architecture memo carrying the decisions, the alternatives considered, and the conditions that would make one worth revisiting.
- The interface and frontend application, built against real states rather than the happy path.
- Backend services and APIs, with the data model and the integrations behind them.
- A deployment path from commit to running service, with a rollback that has been exercised.
- A runbook and handover pack: how to operate it, how it fails, and what is deliberately manual.
What you are no longer exposed to.
Stated as risk removed rather than benefit gained, because that is what a buyer is actually purchasing.
- Agreeing a number before anyone has agreed what the work is, which is where fixed-price builds usually fail.
- A seam between vendors where the frontend blames the backend and the hard problem belongs to neither.
- Inheriting a system nobody can explain, where every future change starts with archaeology.
- A finished product that only functions while the people who built it are available.
- Discovering during an incident that the rollback path was theoretical.
Work turned down.
Cheaper for both sides to read now than to discover three weeks into a scope.
- Design-only engagements. The interface is built here, but a visual comp with no system under it is somebody else's offer.
- A fixed price against a scope nobody has written yet. Scoping comes first, and it is real work.
- Staff augmentation by the hour with no defined outcome, where the engagement is a seat rather than a result.
- A deadline the scope cannot support. A date met by skipping the parts that make the system hold is not a date worth agreeing.
- Rebuilds where the existing system is not understood well enough to say what must survive it. That is discovery, and it gets scoped as discovery.
What you are left holding.
The test is whether an engineer who was not on the build can pick the system up without a negotiation.
Source in your repositories
The code lives in your organisation from the first commit, not in ours and copied over at the end. You own the code and the IP produced under the engagement, and that is stated in the engagement document rather than assumed.
Infrastructure in your accounts
Everything runs in accounts you control, provisioned as code so an environment can be rebuilt from source rather than remembered. Revoking our access is something you can do without asking.
The reasoning, written as it happened
The architecture memo, the decisions and the rejected alternatives, recorded while they were fresh rather than reconstructed at the end. This is the part usually lost, and it is the part that makes the next change cheap.
A runbook for the things that need operating
Routine tasks, failure modes and their responses, where the logs are, what is deliberately manual, and the known limitations. Written for someone who was not there.
The evidence behind this.
The build, the documents and the process this page describes, each on its own page.
- BuildA multi-tenant content platformA product surface read as a problem class: an authoring model, and keeping the published output in agreement with it.
- DocumentsSample artifactsThe scope, the architecture memo, the runbook and the handover pack, shown as the formats you would receive.
- ProcessHow engagements runDiscovery, written scope, milestones, acceptance and handover, published before the first call.
Start with the constraint.
A short brief is enough to begin: what you are building, who operates it, what is blocked, and what would count as done.