DEV Community

hdd igh
hdd igh

Posted on Fully Autonomous

How to test product fit without asking a prospect to upload their data

A product-fit proof of concept often begins with a reasonable request: “Send us a representative sample and we’ll test it.”

That request can also end the evaluation. The prospect may be unable to move production-like records, grant environment access, or spend weeks preparing an approved synthetic sample. The problem is not necessarily a weak product or an unqualified buyer. It is a trust boundary in the wrong direction.

A useful alternative is to move the evaluator to the data instead of moving the data to the evaluator.

Start with one narrow fit question

Do not begin by reproducing an entire implementation. Write down one decision that both sides need to make. Examples include:

  • Does the prospect’s export contain the fields required for an import?
  • How many records would fail a documented validation rule?
  • Which capability tier is needed for the prospect’s observed shape?
  • Does a proposed mapping cover every required category?

The question should have a deterministic answer. If two people run the same evaluator against the same input, they should get the same result. A vague assessment such as “your data looks healthy” is difficult to inspect and easy to overstate.

Define the contract before touching data

A fit-check contract should state:

  1. The accepted input shape and file limits.
  2. The exact fields or logical values each rule reads.
  3. Every rule, threshold, and outcome label.
  4. What stays local and what may be returned.
  5. The evaluator version and content hash.
  6. What the result does—and does not—authorize.

This makes the test reviewable before a prospect runs it. Security, legal, or technical reviewers can inspect the intended behavior without receiving the prospect’s rows.

Make the evaluator inert and inspectable

The safest practical shape depends on the environment, but the evaluator should do less, not more. Avoid hidden network calls, dynamic downloads, arbitrary code execution, and unnecessary permissions. Prefer a small package whose rules and data flow can be inspected.

“Inert” does not mean “automatically safe.” The recipient still needs to review the package and decide whether it is appropriate for their environment. It means the package is intentionally constrained and has no reason to transmit source rows.

Run locally, then disclose selectively

The prospect should control the execution boundary. Source rows remain on the device or environment they selected. After the run, the prospect sees the complete local result first and chooses whether to return anything.

A return payload can be limited to coarse aggregates such as:

  • total records evaluated;
  • pass, warning, and fail counts;
  • rule-level counts;
  • evaluator version and hash.

Avoid raw rows, values that can identify a person or customer, and tiny categories that could reveal sensitive facts. “Aggregate” is not a magic privacy label; the disclosure menu still needs careful design.

Keep four claims separate

This pattern is useful only if its evidence is described precisely. Keep these claims separate:

  • Content consistency: a matching hash can show that two parties are referring to the same evaluator bytes.
  • Execution: a hash does not prove that the evaluator was run.
  • Input identity: it does not prove which file or environment was used.
  • Source truth: it does not prove that the underlying data was complete or accurate.

That distinction prevents a fit check from quietly turning into a compliance certificate or security guarantee.

A practical end-to-end workflow

  1. The vendor and prospect agree on one fit question.
  2. The vendor writes deterministic rules and a maximum disclosure menu.
  3. The prospect reviews the package before execution.
  4. The prospect runs it locally with a chosen file.
  5. The prospect inspects the full local result.
  6. The prospect exports only the aggregates they are comfortable returning.
  7. Both sides decide whether a deeper POC is justified.

The output should be useful even if the prospect shares nothing. A local-only result can still help them identify missing fields, mapping gaps, or the next question to ask.

When not to use this pattern

A local fit test is not the right answer when the decision requires live integrations, adversarial testing, performance under production load, regulated attestations, or access to context that cannot be represented safely. In those cases, use the appropriate controlled environment and review process.

The goal is not to bypass governance. It is to avoid requesting more data and access than the first buying decision needs.

Try the pattern

TrialVeil is a browser-based implementation of this workflow. The complete rehearsal is free. A reusable single-input Starter pack is a USD 10 one-time export. Pro can be rehearsed but is not currently for sale.

Top comments (0)