Forward-Deployed Engineering and Customer Engagements
The spec-and-test tradition treats test cases as guarantees that always pass, while the eval discipline treats them as samples that should pass with high probability on the distribution that matters.
Why a Passing Test Means Different Things
Most engineers learn to trust software through one habit. They write down what the system must do, write tests that check those requirements, and expect the tests to pass every time. For deterministic code, this habit works very well. The trouble starts when a team begins building on a system whose behavior is judged statistically rather than absolutely. The same habit that once gave confidence can now work against the team.
This article follows that friction. It looks at what happens when an eval-based way of working meets a team trained in the older habit, and at the job of translating between the two. That job is carried out by the forward-deployed engineer, or FDE, who takes the work into the customer's environment.
What do you think happens?
Suppose an eval case passes once on a single run. Does that prove the system will always produce an acceptable output for that kind of input?
Reveal answer
No, a single pass is one sample and does not promise every future output
In the eval discipline, a case is a measurement of how often behavior is acceptable across realistic inputs. One pass cannot promise that any single output will be correct. The traditional test habit treats a pass as a promise that is expected to hold on every run, which is exactly the assumption the eval discipline does not make.
Tracing What a Passing Test Promises
The two traditions disagree about what a passing test means. In the spec-and-test tradition, a test case is a guarantee. It is written to hold for every run, and a failure means the system broke a promise. The source describes this tradition as one whose test cases are expected to always pass.
In the eval discipline, a test case is a measurement of a rate. The aim is for a case to pass with high probability on the distribution of inputs that matters to the product, not to pass on every conceivable input. An eval set can tell you how often the system behaves acceptably across realistic traffic. It cannot promise that any single output will be correct.
Read the diagram column by column. In the left column, one failure is a broken promise. In the right column, a single failing case is one data point inside a rate, and the question becomes how reliably the system behaves across the inputs it will actually see.
Two Questions Behind Two Traditions
Neither tradition is careless. Each answers a different question. The spec-and-test tradition asks whether a behavior has been promised and kept. The eval discipline asks how reliably a system behaves across the inputs it will actually see. A team that switches between these questions without noticing will keep asking for things the other approach cannot deliver.
Spec-and-test tradition: a practice in which test cases are written to hold for every run, and a failing test means the system violated a stated requirement.
Eval discipline: a practice in which test cases are samples meant to pass with high probability on the distribution of inputs that matters to the product.
A Guarantee Request Arrives Mid-Engagement
Customer engineers trained in the spec-and-test tradition often request guarantees that an eval set cannot give. The request usually sounds like a reasonable engineering requirement. The FDE must translate it patiently, because the translation is part of the customer's adoption process and takes up a large share of the FDE's working time.
Reframing a must-never requirement
A customer team building a ticket summarizer says: the summary must never omit a required field. They want a test that guarantees this for every ticket. (This scenario is an illustration written for this article; the specific field and numbers are generated, not drawn from the source.)
- 1Name the behavior
The behavior is that required fields appear in the summary. This is clear enough to measure.
- 2Name the input distribution
The FDE asks which tickets matter. A realistic set would be drawn from the traffic the product will actually receive, not only from hand-picked edge cases.
- 3Turn the guarantee into a threshold
Instead of never, the FDE proposes a measurable target, such as: at least 98 percent of cases in the held-out set include every required field. The number is a placeholder that the customer and FDE would set together.
- 4Explain the remaining risk
The FDE states plainly that a rate does not promise that any one future summary is complete. Failures are still expected and should be logged as eval cases.
The request moves from a guarantee that no eval set can deliver to a measurable threshold the team can track, extend, and argue about with evidence.
Responding to a Guarantee Request
The reframing in the worked example follows a sequence. The flowchart below traces it, including the branch that depends on whether the customer accepts the reframing. The response is a conversation with branches, not a single answer.
If the customer accepts the threshold, the work becomes concrete. The team agrees on the eval cases and the target rate, then tracks results over time. If the customer rejects it, the FDE explains what an eval set can and cannot promise, then returns to the requirement with the customer to decide together what success should look like. Neither branch is a failure of the engagement. The second branch simply takes longer.
A customer says: the classifier must never label a refund request as a general question. Write a reframed requirement that names the behavior, the input distribution, and a measurable threshold, and say what failures should become.
Hints
- Start by naming the behavior in measurable terms: which inputs count as refund requests?
- Ask where the realistic inputs come from. Traffic from the product is more useful than only hand-picked examples.
- A good answer ends with failures being added to the eval set, not being treated as broken promises.
Recognizing the Customer Taking Ownership
Early in an engagement, the FDE carries most of the eval thinking. Over time, the work is meant to move into the customer's hands. The engagement can be read as a sequence in which responsibility for the eval discipline shifts from the outside engineer to the inside team.
The source identifies one specific signal that marks the move. The customer has joined the work when their own engineers start producing eval material. Two concrete behaviors count: filing bugs in the form of missing eval cases, and submitting their own labeled examples. Either one shows the team is reasoning in eval terms rather than waiting for the outside engineer to supply every judgment.
The source calls this a quiet but important threshold. It is quiet because nothing about the code visibly changes at that moment. It is important because the engagement no longer depends entirely on the FDE to decide what counts as a good result. The later stages in the diagram, maintaining, extending, and acting on the eval set, are the direction the handoff takes, and they are the observable evidence that ownership has truly moved.
Mistakes FDEs and Customer Teams Make
Common mistake Treating a single failing eval case as proof that the system is broken
Why it failsAn eval case is a sample inside a rate. One failure matters for what it reveals, but the eval discipline asks how often the behavior is acceptable across realistic traffic.
Do this insteadLog the failure as an eval case and look at the rate across the distribution that matters.
Common mistake Promising the customer a guarantee that an eval set cannot give
Why it failsThe eval discipline cannot promise that any single output will be correct, so the promise cannot be kept.
Do this insteadTranslate the guarantee into a measurable threshold and explain the remaining risk plainly.
Common mistake Treating the translation as a side task
Why it failsThe translation takes a large share of the FDE's working time and is part of how the customer adopts the new tradition.
Do this insteadPlan time for it and treat it as central to the engagement.
Common mistake Judging ownership by how much code the customer has written
Why it failsThe threshold is quiet and visible in eval material, not in code changes.
Do this insteadLook for filed missing eval cases and submitted labeled examples as evidence of ownership.
Summary of the Two Traditions
- 1The spec-and-test tradition treats a test case as a guarantee that always passes; the eval discipline treats it as a sample that should pass with high probability on the distribution that matters.
- 2A customer trained in spec-and-test often requests guarantees that an eval set cannot provide, so the FDE must translate patiently.
- 3A guarantee request is best answered by naming the behavior, naming the input distribution, and proposing a measurable threshold, with a branch for whether the customer accepts it.
- 4The customer has joined the work when their own engineers file bugs as missing eval cases or submit labeled examples, a quiet threshold that is nonetheless important.
At a glance
- The spec-and-test tradition treats a passing test as a guarantee; the eval discipline treats a passing case as a sample that should pass with high probability on the inputs that matter.
- Customer engineers trained in spec-and-test often request guarantees an eval set cannot give, and the FDE must translate those requests into measurable thresholds.
- The customer has joined the eval work when their engineers file bugs as missing eval cases or submit their own labeled examples.