InterviewAdvancedDesigning for Uncertainty & Trust / Designing for failure and graceful degradation / #22

Walk me through the failure states you would design for a feature I name.

SPARK the feature I'll name is DoseGuide, a vet telehealth dosage calculator

Fernbrook Veterinary Network runs a telehealth app for rural mobile clinics. DoseGuide is the feature inside it: type in an animal's weight and species, and it calculates a medication dose during a live call. Ingrid Falk is a vet tech who runs a mobile clinic van across three counties.

The direct answer
Design four distinct failure states, not one generic error screen: missing weight blocks the calculation outright, a species or size outside the tool's verified range shows the number with a hard flag and a required second confirmation, a dropped connection falls back to clearly dated cached data instead of pretending it's live, and the unit is never assumed, it's shown and confirmed every single time.
Do this, in order
  1. Never let the dosage unit be assumed. Show it, and require confirmation, every time.Why: a silent unit mix-up is the one failure state that can cause real, invisible harm with no warning on screen at all.
  2. Block the calculation entirely when weight is missing, rather than filling in a default.Why: a guessed weight looks exactly as confident as a real one, and there's no reason to guess when you can just ask.
  3. Flag, and require a second tap to confirm, any case outside the tool's verified species-and-size range.Why: this is where the model is least trained and most likely to be quietly wrong, so it should be the loudest state, not the quietest.
  4. On a connectivity drop, show the last cached formulary data with a visible, dated "offline" banner.Why: rural connectivity will drop. The failure isn't the drop, it's pretending the stale data is current.
  5. Track how often each failure state fires, and how often the required confirmation gets skipped or rushed.Why: a confirmation step that's always tapped through without a pause isn't actually catching anything.
  6. Leave the core dosage math untouched for the common case, a known species and weight well inside range.Why: this whole design is about the edges. Most calls never touch any of these four states.

How to answer this, stage by stage

Nobody is grading whether you picked a clever feature. They're grading whether you can walk through more than one way it actually breaks.

Stage 1
Invent one feature, precisely
Say it like this
"I'll design this for DoseGuide, a feature inside Fernbrook's vet telehealth app that calculates medication dosage from an animal's weight and species during a live call."
Why this works
Gives the interviewer something concrete to push on, instead of a vague category of "an AI feature."
Stage 2
Say your structure out loud
Say it like this
"I'll use SPARK. Situation, how this happens today. Payoff, the habit I want. Anchor, the failure states and their designed responses. Risk, what breaks it. Keep out, what I'm not building yet."
Why this works
Signals a method for a question that could otherwise turn into an unstructured list.
Stage 3
Ground it in a real moment without the feature
Say it like this
"Today, a vet tech does this math by hand, off a printed formulary card, in a van, sometimes at a farm gate with the engine still running."
Why this works
Shows the feature is replacing a real, error-prone process, not solving a hypothetical.
Stage 4
Name every failure state, not just one
Say it like this
"Four states: weight is missing, the species or size is outside what the tool's actually been checked against, the connection drops mid-call, and the unit, pounds or kilograms, gets ambiguous."
Why this works
Answers the actual question asked, walking through states, not defending one clever fix.
Stage 5
Give the anchor: a different response per state
Say it like this
"Missing weight blocks the calculation. Out-of-range flags loudly and needs a second tap. A dropped connection shows dated cached data, clearly marked offline. And the unit is never assumed, it's shown and confirmed, every time, no exceptions."
Why this works
This is the direct answer, stated as four concrete, arguable design decisions.
Stage 6
Prove the worst state survives itself
Say it like this
"The first time a vet tech assumes pounds when the record was in kilograms, this design doesn't let that assumption happen silently, the unit is always on screen, always confirmed, so a mistake there requires two people to miss the same printed word."
Why this works
Answers the real question underneath: what happens the one time the most dangerous state actually fires.
Stage 7
Close on the one line
Say it like this
"A good failure state doesn't hide the failure. It tells you which one you're in and what to do next, and the rarest one gets the loudest warning, since that's usually the one that matters most."
Why this works
Restates the direct answer in one breath, ready for a follow-up.

Let's learn

Here is what happens when a feature works fine for months, then fails in a way nobody actually designed for.

DoseGuide is a small piece of Fernbrook's telehealth app: a vet tech types in an animal's weight and species, and it returns a dose for whatever medication a remote veterinarian just prescribed on the call. Before it, that math happened by hand, off a printed formulary card, checked twice against a chart taped inside the van's glove box.

Hand sketched flow diagram titled A dosage calc, before DoseGuide. Four boxes: Estimate weight, Look up formulary, Do math by hand highlighted, Double check.
Slow, but every step forced a person to look at the number twice before it reached an animal.

Now the calculation takes about three seconds, and most calls never touch a failure state at all.

Here's the turn: the failure states were never really one thing called "an error." They're four different situations, each needing a genuinely different response, and treating them all the same, one generic warning banner, is itself a design decision that will eventually let the worst one through quietly.

DoseGuide failure states, per 1,000 telehealth calls
15 7 0 14 Missing weight 9 Out of range 6 Connection drop 2 Unit ambiguous
Unit ambiguity is the rarest state by far. It is also the one with no natural place to catch itself, which is exactly why it needs the loudest design response.

At its worst, a vet tech reads a dose meant for kilograms as pounds, or the reverse, and administers a dose off by a factor of more than two, with nothing on screen ever having looked uncertain.

Hand sketched labeled parts diagram titled DoseGuide's four failure states. Center gauge icon labeled DoseGuide, with four callouts around it: missing weight, out of range species, connection drops, unit ambiguous.
Four states, four different jobs. None of them should get the same response as any other.
The decision I would take back DoseGuide's weight field defaulted to a breed-average placeholder if a vet tech left it blank mid-call, so the calculation never stalled. That made sense when every tech filled it in carefully, treating the field as required by habit. It stopped making sense the day someone skipped it during a rushed farm call, and the placeholder quietly stood in for a real number.

What I would leave alone: the underlying dosage formula for a known species, well inside its verified weight range, doesn't need touching. This design is entirely about the edges around it.

The lesson: a single "error" state is a lie about how many different ways a feature actually breaks, and each one deserves its own honest response.

Now here is the same thing as a story

The short version above is what you'd say defending this design to Fernbrook's clinical safety board. Read this one for how close the near miss actually came.

Ingrid Falk drives a mobile vet clinic across three rural counties, and by her fourth year she could estimate a goat's weight within five pounds just by looking at it. DoseGuide had been solid for her for months, instant, and matching the printed chart every time she'd checked it against one.

Knowledge spark: why would a unit mix-up be more dangerous than a missing field? A missing field is obviously missing, there's nothing to misread. A unit mix-up looks identical to a correct answer, since the number itself is calculated correctly, just against the wrong assumption about pounds versus kilograms. The screen gives no visual reason to doubt it.

On a rushed farm call, juggling a clipboard and a squirming terrier, Ingrid skipped the weight field entirely, planning to fill it in after the call. DoseGuide silently used a breed-average placeholder weight instead, one built for a mid-sized dog, not a small terrier under ten pounds.

Hand sketched timeline titled One claim four failure points, relabeled here as one call four failure points. Four milestones: Weight entered state 1, Species checked state 2, Connection holds state 3, Unit confirmed state 4 highlighted.
Any one of these four points could have been the moment something went quietly wrong. The unit point is the one with no visible seam.

The remote veterinarian on the call, reading the dose off her own screen, paused: "wait, that seems high for a dog this size, did you weigh her?" Ingrid checked, found the terrier weighed six pounds against the placeholder's estimated thirty, and recalculated by hand before administering anything.

Nothing on DoseGuide's screen had ever looked uncertain. The number was simply calculated against a weight nobody had actually entered.

Nobody filed an incident report, since nothing was actually given. But the near miss reached Fernbrook's product team through the veterinarian mentioning it on a routine call review, and an audit of recent sessions found the same silent placeholder had quietly stood in for a real weight eleven other times that month.

Hand sketched comparison titled The day units go wrong. Left, a red box icon labeled Auto Assumed, caption silent 10x risk. Right, a green scale icon labeled Always Shown, caption unit forced every time.
Same design mistake, one field over. A silent assumption anywhere in this feature carries the same risk.
Hand sketched quadrant titled Where the real risk sits. Axes how often from rare to common, and how bad if missed from low to high. Unit ambiguous sits top left, rare and severe. Missing weight sits bottom right, common but caught early. Out of range species and connection drops sit in the middle.
The most common failure isn't the most dangerous one. The rarest one is.

With the redesigned states, a blank weight field blocks the calculation outright instead of filling in a placeholder, and the unit is printed large next to every dose and requires a tap to confirm, every single time, regardless of how many times that tech has done it before. Run the same farm call forward: Ingrid can't get a number at all until she weighs the terrier, and the whole near miss never has anywhere to happen.

The old design asked DoseGuide to always have an answer. The new one lets it say plainly when it doesn't have enough to give one.

I let the weight field default to a placeholder because a blocked calculation felt like a worse experience than a fast, if occasionally wrong, one. It took a veterinarian's offhand question to see that a fast wrong number is exactly the kind of thing this feature exists to prevent.

SPARK, in one screenNot a single design trick. SPARK is what tells you why four failure states, not one, is the actual answer.

S
Situation. How this happens today, without the feature.
A vet tech does the dosage math by hand, off a printed formulary card, checked against a chart taped in the van.
Grounds the whole answer in a real, error-prone process being replaced.
P
Payoff. The habit this should build.
Trusting the tool for the common case, and treating any flagged state as worth a real pause, instead of tapping through every warning the same way.
Names the actual behavior change the design is trying to produce.
A
Anchor. The one decision everything hangs on.
Four distinct failure states, each with its own response: block on missing weight, loud flag on out-of-range, dated cache on connection drop, and a forced, visible unit confirmation every time.
This is the hardest step and the direct answer: a concrete set of design decisions, not one generic error message.
R
Risk. What breaks the first time it's wrong.
The first time a unit gets silently mixed up. The anchor survives it by never letting the unit be assumed in the first place, on any call, regardless of history.
Proves the anchor was designed against its most dangerous state, not just its most common one.
K
Keep out. What we won't build, day one.
No drug-interaction checker, no full formulary sync, no automatic species detection from a photo. All real features, none of them this feature's job yet.
Shows judgment about scope, not a wish list of everything DoseGuide could eventually do.
Hand sketched icon list titled What we are not building day one. Three items: a box icon labeled No interaction checker, a question mark box icon labeled No full chart sync, a circle icon labeled No auto species detect.
Each of these is a real, larger feature. None of them fixes the failure states this answer is actually about.

The recap, one line per letter: situation is a vet tech doing the math by hand off a printed card, payoff is trusting the common case while genuinely pausing on a flagged one, anchor is four states with four distinct responses, risk is the silent unit mix-up, and keep out is holding back on interaction checking and chart sync until this scope is solid.

And if you want to be sure it really works, try it somewhere elseSame five letters, a school attendance-pattern assistant instead of a dosage calculator. A completely different feature, the same four-state shape.

AttendWell is a feature inside Alcove ISD's student-information system that flags attendance patterns worth a counselor's attention, missed days clustering in a way that might signal a problem at home rather than ordinary absences. Odalys Kern is the attendance clerk who reviews AttendWell's flags each morning.

Mapped onto SPARK: situation is a clerk today, scanning a spreadsheet by eye for patterns, easy to miss on a busy Monday; payoff is trusting flagged patterns enough to act quickly, without tapping through every flag the same distracted way. The anchor is structurally the same four-state idea, aimed at a different failure: missing attendance data for a transferred student blocks a pattern read entirely instead of assuming zero absences, a pattern that's genuinely unusual for that student's history gets a loud flag needing a counselor's confirmation, a sync failure from the district's central system shows a dated "last synced" banner instead of silently reusing stale records, and which category a pattern falls into, truancy risk versus a family emergency versus a medical leave, is never auto-assigned without a person confirming it.

Hand sketched flow diagram titled AttendWell's four failure states. Four boxes: Missing data, Pattern outlier, Sync drops, Category unclear highlighted.
Swap "dosage" for "attendance pattern," and the same four-state shape holds up in a school office instead of a vet van.
AttendWell flags by failure state vs how often the required confirmation is skipped
50% 25 0 Flags per week, low to high, left to right Missing data Pattern outlier Sync drops Category unclear
The rarest flag has the highest skipped-confirmation rate, the same pattern DoseGuide's own unit-ambiguity state showed.

Swap the trigger and it still runs.
Speed: an interviewer caps you at sixty seconds. Say "name every failure state separately, and give the rarest, most dangerous one the loudest response," and stop.
Cost: there's no time to build all four states with equal polish this sprint. Say so honestly, and build the unit-confirmation state first, since it's the one with the least visible warning if it's missed.
The model gets better, for real: if DoseGuide's underlying dosage model gets more accurate across common cases, that's still not a reason to relax the unit-confirmation requirement, an accurate calculation against the wrong unit is still exactly as wrong.

Where people run it wrong.
They build one generic error state and assume it covers every kind of failure equally well.
They let the rarest failure state get the least design attention, when rare and dangerous often go together.
They wait for an actual incident to design around a failure state, instead of asking upfront what the quietest possible version of it would look like.

How to use it live. When someone hands you a feature and asks you to walk through its failure states, ask yourself one question first: which of these failures would look exactly like success on screen? Design that one loudest of all.

Flashcards (tap any card to flip it)

1 · THE FRAMEWORK
What framework fits a "walk me through the failure states you'd design" question?
Tap to flip
ANSWER
SPARK: situation, payoff, anchor, risk, keep out. The anchor here is a set of distinct failure states, each with its own response.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Ingrid Falk, a vet tech who runs a mobile clinic van across three rural counties and could estimate an animal's weight by eye.
3 · THE SITUATION
How does this get done today, without DoseGuide?
Tap to flip
ANSWER
A vet tech does the dosage math by hand off a printed formulary card, checked against a chart taped inside the van.
4 · THE ANCHOR
What are the four failure states, and their four responses?
Tap to flip
ANSWER
Missing weight blocks the calculation, out-of-range species flags loudly with a required confirmation, a connection drop shows dated cached data, and the unit is always shown and confirmed, never assumed.
5 · THE OLD DECISION
What decision would you take back?
Tap to flip
ANSWER
Defaulting the weight field to a breed-average placeholder when left blank, which made sense while every tech filled it in carefully, and stopped making sense the day one skipped it during a rushed call.
6 · THE NUMBER
Fill in the blank: unit-ambiguous failures happen only about ___ times per 1,000 calls, the rarest of the four states.
Tap to flip
ANSWER
About 2 times. Rare, but paired with the highest possible severity, which is exactly why it gets the loudest designed response.
7 · THE REPLAY
Same rushed farm call, redesigned states. What changes?
Tap to flip
ANSWER
Ingrid can't get a dose at all until she actually weighs the terrier, since a blank field blocks the calculation instead of quietly filling in a placeholder.
8 · CROSS PRODUCT TRANSFER
Section 4 answers this again for a different product. Which product, and what's the anchor there?
Tap to flip
ANSWER
AttendWell, a school attendance-pattern assistant. Same four-state shape: missing data blocks, an unusual pattern flags loudly, a sync drop shows a dated banner, and a flag's category is never auto-assigned.

Check yourself Score: 0 / 0

Multiple choice
1. Why does DoseGuide block the calculation entirely when weight is missing, instead of using a default estimate?
  • A. Because calculating without a weight is technically impossible for the software.
  • B. Because a defaulted weight looks exactly as confident on screen as a real one, with no visible sign it was ever a guess.
  • C. Because Fernbrook wants to slow down every telehealth call.
  • D. Because vet techs asked for the calculation to be blocked.
Show hint
Look at "the decision I would take back."
Show answer
B. A guessed weight and a real weight produce a number that looks identical on screen, so there's no honest way to show a default without also risking it being trusted like a real entry.
True or false
2. True or false: the most common failure state in this answer is also the most dangerous one.
  • True
  • False
Show hint
Look at the quadrant diagram.
Show answer
False. Missing weight is the most common state but gets caught early since it blocks the calculation. Unit ambiguity is the rarest state and the most dangerous, since it has no visible seam.
Fill in the blank
3. Fill in the blank: after Ingrid's near miss, an audit of recent sessions found the same silent placeholder weight had stood in for a real entry ___ other times that month.
Show hint
Look at the story's audit paragraph.
Show answer
Eleven. A near miss that nobody reported as an incident was, underneath, happening regularly across the whole clinic network.
Short answer, apply it yourself
4. Think of an app that showed you a confident-looking number that was actually built on a missing or guessed input. What would have made that guess visible?
Show hint
Think of a form that auto-filled a field you never actually entered.
Show answer
Model answer: Most people can recall an auto-filled address, a default shipping option, or an estimated total that looked exactly as certain as a value they'd actually entered themselves.
Short answer, where it wouldn't matter
5. Name a case in DoseGuide where none of these four failure states apply at all.
Show hint
Look at "what I would leave alone."
Show answer
Model answer: A known, common species with a weight well inside the tool's verified range and a stable connection. The core math there doesn't need touching by this design at all.
Short answer, name the reversal
6. What old design decision does this answer take back, and why did it make sense when it was made?
Show hint
Look at "the decision I would take back."
Show answer
Model answer: Defaulting a blank weight field to a breed-average placeholder. It made sense while every tech filled the field in out of habit, and stopped making sense the first time one didn't.
Before you close the answer
Why this works
Tests whether you can name more than one way a feature actually breaks, and rank them by how quietly each one fails, not just how often.
Follow-up traps
"Won't requiring a unit confirmation on every call just slow down a busy vet tech?" Response: it costs one tap. A silent unit error costs an animal's safety, and the two aren't close in weight.

"What if the out-of-range flag fires so often that techs start tapping through it without reading it?" Response: that's exactly what the confirmation-skip tracking in the priority list catches, if the required pause stops being a real pause, the design needs to change the threshold, not remove the flag.
If pressed
DoseGuide's actual out-of-range threshold is set separately per species, not one global cutoff, since "unusual" for a cat and "unusual" for a horse are different weight ranges entirely, and a single shared threshold would under-flag one and over-flag the other.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more