Engineering note

Why AI programs stall after the pilot

The prototype is rarely the constraint. Programs stall on identity, data access, and the absence of a team that owns the system in production.

The same pattern repeats across enterprises that have tried to put a model into production. The pilot works. Someone demonstrates it to a steering group, the room is impressed, and a budget line appears. Nine months later the system still carries no real work.

The review usually blames the model. The model is rarely the cause, and a smaller one would often have done the job. The problem sits between a working prototype and a system the business is willing to depend on.

The prototype ran with privileges it will not get again

Teams build prototypes against an export. Someone copies a snapshot of the CRM into a notebook, or points a retrieval index at a shared folder. Every document in that folder is readable by the person running the demonstration, so the question of who may see what never comes up.

In production the same corpus carries permissions that differ by document, by region, and sometimes by clause. Retrieval has to respect them, which means the access model has to reach from the system of record into the index and back out through an answer. That is engineering work, and teams usually discover it after they have agreed the architecture.

The prototype hadProduction requiresCost of finding out late
one flat corpusper-document permissionsthe retrieval layer is rebuilt
the builder's own accessa delegated identityevery tool call is reworked
inputs someone choseinputs nobody chosea held-out set has to be built
no owneran on-call rotapromotion stalls indefinitely

No one decided which identity the system uses

An agent that reads a ticket, checks an account, and issues a credit acts as someone. If it acts as a service account with broad rights, your security team will stop it, and they are right to. If it acts as the requesting user, every downstream system has to accept a delegated identity, and most enterprise systems were not built for that.

This is the most common place a promising pilot stops. The work does not demonstrate well, so teams defer it until it blocks them.

Quality was demonstrated, not measured

A demonstration shows the system worked once, on inputs someone chose. Production requires a claim about how often it works on inputs no one chose. Without a held-out set and a suite that runs on every change, quality drifts, and the first signal is usually a complaint rather than a metric.

Teams resist building the harness because the system already appears to work. The harness is the product. A system whose quality you cannot state is a system no one can approve.

No team accepted the system

Ask who holds the pager. In a stalled program the answer is often a name someone volunteered, attached to a person with a full-time job elsewhere. A system without an owner does not reach production, because reaching production means someone accepts responsibility for it at three in the morning.

Naming that team at the start changes the design. It forces decisions about runbooks, observability, and how much of the system one person can reason about. Those decisions cost less early than they do as a retrofit.

What helps

Build the second version in the environment it will run in, under the identity it will use, against data with its real permissions. It takes longer and demonstrates less well, and within weeks it tells you whether the program is viable.

The uncomfortable version of this argument is that some programs should stop. An assessment that recommends not proceeding is a legitimate result, and usually a cheaper one than establishing the same thing a year later.

More field notes

Bring us the problem.

Tell us the outcome you are trying to create, what you have already attempted, and where the constraints are.

Contact nuperX