Forward-deployed / Learning zone
Generative AIa Generative AI module
Lesson 03

Probabilistic software

TL;DR

Traditional software is deterministic. The same input always produces the same output, and a bug is a bug you can reproduce on demand. Generative AI is probabilistic. The same input can produce a different output each time you run it, because the model samples from a range of likely answers instead of computing one fixed result. This is not a defect to be patched away. It is how the technology works, and it is the single biggest mental shift a product team has to make. Once output is probabilistic, "it worked in testing" stops meaning "it will always work." A feature can be right ninety-nine times and wrong on the hundredth, with no code change in between. Every later module in this family — evaluation, observability, guardrails — exists because of this one property.

🎯 For the product leader

Why it matters — Engineering teams, QA teams, and support teams all learned their craft on deterministic software. Ship a generative feature without naming this shift, and every team downstream will treat a normal, expected variation as a bug to be fixed once and closed.

What it changes in your decisions — You stop asking "does it work?" as a yes-or-no question. You start asking "how often does it work, on what kind of input, and what happens on the times it doesn't?" That reframing changes your test plan, your support playbook, and your launch bar.

Ask yourself — "If we ran this exact request one hundred times, what is the acceptable range of outcomes, and have we actually measured that range?"

Risk if ignored — A demo that worked perfectly convinces a stakeholder the feature is "done," and the team discovers the real failure rate only after launch, from angry users.

The mental model: a die, not a switch

A traditional function is a switch. Flip it the same way, and the same thing happens every time. A generative model is closer to a loaded die. It leans heavily toward likely, sensible answers, and it can still land somewhere else. Ask it the same question twice, and you are rolling the die twice, not flipping the same switch twice.

Probabilistic software

Same input · different answers · the shift that reshapes testing

The bug budget looks different when the same call can produce different outputs.

Deterministic
Traditional software
Same input
↓
Fixed function
↓
Same output · every time
vs.
Probabilistic
LLM software
Same input
↓
Model samples from a range
↓
P·72%Output A · most likely
P·22%Output B · also possible
P·6%Output C · rare, still possible
The gap between "far more likely" and "always" is where most production incidents live. Bias the die toward good answers, but plan for the tail.

This does not mean the model is random in a useless way. Good answers are far more likely than bad ones, and a well-built system biases the die further toward good answers. But "far more likely" is not "always," and the gap between those two words is where most production incidents live.

Where the variation comes from

What this costs a product team

Determinism let teams write a test once and trust it forever. Probabilistic output breaks that assumption in three concrete ways:

Failure modes

Practitioner checklist