The Question That Breaks Most AI Features
- 4 days ago
- 4 min read
Updated: 1 day ago

Every product team building with AI eventually hits the same wall. The prototype works. The demo impresses. Leadership approves. Engineering ships. Then someone asks a question that nobody can answer:
"How do we know if it's working?"
For traditional software, that question has a well-worn answer. Write test cases. Define acceptance criteria. Run QA. The feature either does what the spec says, or it doesn't. Pass or fail. Ship or fix.
AI features refuse to play by those rules. And most product teams find that out the hard way, in production, in front of customers.
Why the Old Playbook Fails
Traditional QA assumes deterministic software. Given the same input, the system produces the same output, every time. Test it once, and the result holds.
Large language models completely break that assumption. The same prompt can produce different responses on different days. A prompt that works perfectly today can quietly degrade tomorrow when the underlying model updates. Outputs are open-ended text, not values that can be asserted true or false.
Quality itself stops being binary. A response can be factually accurate but tonally wrong for the brand. It can be helpful but too long. It can seem confident even though it is completely fabricated. "Good" now depends on tone, context, user intent, and business risk all at once.
No test suite catches that. No QA checklist covers it. The team needs something different.
The Pattern that Fails
The pattern repeats across the industry with extraordinary consistency.
A team builds an AI feature. The demo works great. Stakeholders love it. Approval comes fast. The feature ships.
Then users start complaining. The AI hallucinates. It misunderstands simple queries. It gives answers that sound right but aren't. Support tickets pile up. The team scrambles to fix things but can't, because nobody knows what "broken" means. There are no metrics. There are no baselines. There is no definition of acceptable.
Eventually the feature gets rolled back. Months of work, gone. Not because the model was bad. Because nobody defined what good looked like before shipping.
The teams that avoid this fate all do one thing differently. They build evals.
What Evals Actually Are
Strip away the jargon and evals are simple: structured, repeatable tests that measure whether an AI system meets the quality bar the product requires.
Think of them as product QA, UX testing, and data science validation rolled into one discipline. A good eval suite measures dimensions like:
Correctness. Did the response get the facts right?
Groundedness. Did the answer stick to the source material, or did the model invent details?
Relevance. Did it address what the user actually asked?
Tone plus fit. Did the length, structure, and voice match the product experience?
Safety. Did it avoid outputs that create legal, ethical, or brand risk?
Each dimension gets tested against a set of real cases, scored consistently, and tracked over time. When the team changes a prompt, swaps a model, or adjusts the system, the evals reveal whether quality improved or regressed. Without them, every change is a guess.
How to Start Without Boiling the Ocean
Teams new to evals tend to make the same mistakes. They generate synthetic test cases in a vacuum. They track generic metrics that sound impressive in stakeholder meetings but explain nothing. They celebrate a 10% hallucination rate without knowing what is actually hallucinating or why.
The better path starts small and stays rooted in reality.
Start with production data. Real user queries beat invented ones every time. The messy, ambiguous, badly formatted inputs from actual usage are exactly what the system needs to handle.
Build a failure taxonomy. What actually breaks? Wrong facts, missed intent, bad tone, unsafe outputs. Name the failure modes the product experiences, not the ones a blog post lists.
Write one eval per failure type. Users complain about tone? Write a tone eval. The AI misses context? Write a context eval. The eval suite must mirror the product's real problems.
Keep growing the set. Every new edge case discovered in production becomes a new test case. The eval suite compounds in value over time, just as a regression suite does for traditional software.
Automate carefully. Many teams use one model to judge another's outputs assessed by a rubric. It scales well, but it comes with a trap. A judge that rarely flags anything can show 90% agreement with human reviewers while missing every failure that matters. Track whether the judge catches real problems, not just whether it agrees on the easy cases.
Why This Belongs to Product, Not Engineering
Here's the part many teams get wrong. Evals look technical, so they get delegated to engineering or data science. That's a mistake.
Defining "good" is a product decision. What counts as an acceptable answer depends on who the user is, what job they're trying to do, and what the business can tolerate getting wrong. An engineer can measure groundedness. Only someone close to the customer can decide whether a technically accurate answer actually solved the user's problem.
This is where evals connect back to discovery. Teams that talk to customers every week know what failure looks like in the customer's own words. They know which mistakes diminish trust and which ones users forgive. That knowledge is the raw material for every eval worth running. Teams that skipped discovery have nothing to build evals from except guesses.
The hard truth: an eval suite is only as good as the team's understanding of the customer. AI didn't change that. It raised the stakes.
The New Baseline
Shipping AI features without evals is shipping blind. It works fine for pitch decks. It fails in production.
The product teams winning with AI right now aren't the ones with the best models.
Everyone has access to the same models. They're the ones who defined quality before they shipped, measured it continuously afterward, and treated every production failure as a new test case rather than a fire drill.
"How do we know if it's working?" stops being a wall when the team answers it before writing a single line of code.
That's the job now.

