Study // Knowledge card 6.4
Ship good enough, and write the debt down
How to use Herbert Simon's satisficing to set a good-enough bar above a fixed floor, so every gap ships as written UX debt.
- Date
- Aim
- How do I decide what can ship imperfect, and what cannot?
- Topic
- Process & Collaborationprinciple · core
- Built with
- Claude + NotebookLMUpdated · 6 min read
Notes
6.4aSatisficing, and why it ends the searchsrc 01
Herbert A. Simon introduced satisficing · thỏa mãn vừa đủ in a 1956 paper: choosing the first option that reaches a set level, in place of comparing every option for the best. As I read his paper, the path he describes clears a set level on each of the organism's needs, with no search for the best. Three things make it sound for a team that ships:
- The level comes before the search. A bar named in advance says when to stop. "Best" never does, because one more option can always be compared.
- Every need gets a level. I read the level on each need as the strict half of the rule: Surprising: I expected satisficing to mean lowering the bar. Simon's version keeps a bar on every need, so it rules out shipping with one need unmet.
- The best is unknown at ship time. In my reading, the best design depends on use that has not happened yet, so polishing toward it is a guess.
In my words
I treat good enough as a stopping rule written before the work, so polishing stops once every need reaches its bar.
Why
Why not keep improving until launch day? Because each round spends time the product could spend in use, and in my experience the gains shrink round by round.
6.4bThe floor, and the debt above itsrc 02
Satisficing needs a floor first: the needs no bar may drop below, such as safety, the core task and the accessibility level the team commits to. As I read it, a gap there locks people out, so it cannot be traded for time.
Above the floor, every shortfall is UX debt · nợ UX. Anna Kaley defines it as ongoing problems in the experience "due to launching a fast, easy, or careless solution," modeled on the technical debt Ward Cunningham devised in 1992.
- It compounds. The longer it stays unpaid, Kaley writes, the more its costs mount; she compares it to Confused: If debt compounds, at what size should a team stop borrowing and spend a whole sprint repaying?
- Unwritten debt is invisible. Her process starts with tracking: a backlog item with the same severity scale as other work, or a spreadsheet first.
Link
Fix disasters before you chase desire — that note reads Kano's must-be quality as disaster; I read the floor here as the same set.
6.4cFour moves that ship good enoughsrc 02
- Name the floor first. Write down the needs that cannot drop. A floor named after the work tends to match whatever the work reached.
- Set the bar above it. One line per area on what good enough means there: the stopping rule from 6.4a.
- Log each gap as UX debt. Use Kaley's columns: the issue in the user's words, where it occurs, how often, who reported it, and the effort to fix. Actionable: On my next release, add a 'shipped short' label to the backlog and file every known gap under it before launch.
- Book the repayment. Kaley suggests at least one or two debt items a sprint, a quarterly cleanup sprint, or a single "cheese day." A gap with a date stays a decision the team made.
Why
Why log a gap the team already knows? Because that knowledge leaves with the people who hold it; a later sprint repays from the log.
6.4dAt work: three situationssrc 03
- "One more week and it will be perfect." That week is a search with no stopping rule. I ask which need still sits below its bar. If none does, we ship and log the rest.
- A known contrast failure is on the release list. Contrast belongs to the floor. Connection: Same test as 6.4b: a floor item cannot move to the debt log quietly; someone has to sign for it.
- "We'll crunch to get it all in." The Agile principles say sponsors, developers and users should be able to "maintain a constant pace indefinitely." I read a polish crunch as borrowing from the next release.
Critique
Goal: ship on time without hiding gaps. Element: a "known issues" line in the release notes. Works? Not alone, because the line has no owner and no sprint. Pair it with a backlog item that has both.
Examples
Two cases of the same shape, kept for reference.
6.4eAmazon returns page, 2018src 02
Kaley reports a return of four pairs of pants where the shipping page said 2 items and the refund summary said 3. The user went back to check the refund.
Link
6.4b — a small careless gap the user pays for with a second check.
6.4fSymantec press release, 2018src 02
The body text of a Symantec press release measured 3.2:1 against its background. WCAG calls for 4.5:1 on normal-size text, so the copy was not accessible.
Link
6.4b — a floor item shipped as if it were polish.
Meaning
Sketch (from my project · Riding Cam App)
The audit bar
- WCAG 2.2 AAaudit bar
Shipped short
- Outdoor targetnot adopted
- Swipe-only screen
- Red tab 3.73:1below the bar
Written as
- Limitations statedplainly
- Revisit datenot recorded
Stated plainly · no revisit recorded
On Riding Cam App, a companion app for a cycling camera and a Tail Radar, the final audit was held to WCAG 2.2 AA, without the stricter outdoor target the research had proposed. Some known contrast failures were kept, among them a red selected-tab label at 3.73:1, and one screen pages by swipe only; I list them as accepted limitations. I read the outdoor target as a fair satisfice above the floor, and the 3.73:1 label as a gap below the audit's own bar. The profile records no debt log, owner or revisit date for them, and the outcome is in progress: the GUI document is complete, the design tokens are handed off, and there are no metrics yet.
Paraphrase (my own words)
- Good enough is a level chosen before the work; reaching it ends the search.
- A satisficed design reaches every need's level, so nothing is left unmet.
- Some needs form a floor no bar may drop below.
- Past the floor, ship at the bar and turn each shortfall into dated, owned debt.
Critique (disagree, edge cases, trade-offs)
- Good enough as a label for done. Calling unfinished work good enough after the fact skips the bar. Tell-tale sign: nobody can say what the bar was before the release.
- A log nobody repays. Logged debt still compounds. Tell-tale sign: the oldest item has outlived three releases. Reserve a share of every sprint for it.
- The bar is a guess. It is set before anyone has used the product, so it can sit too high or too low. The first release's support tickets test it.
Remember
The note in a few cards: the idea, the words, the steps.
Concept
Good enough is a bar
Name the level before the work starts, because only a named level tells a team when to stop.
Concept
Hold the floor
Never trade away safety, the core task or accessibility, because missing one keeps people from using the product.
Term
Satisficing · thỏa mãn vừa đủ
Simon's rule: accept the first choice that clears a fixed level for each need.
Term
UX debt · nợ UX
Kaley's name for lasting experience problems left by a fast, easy or careless launch.
Not Technical debt in the code.
Workflow
Ship good enough
- Name the floor
- Set the bar
- Log each gap
- Book the repayment
Retrieval
Cover the notes. Answer each question from memory, then turn the card to check.
Q1
Why does a team that aims for the best design often ship later without shipping better?
Tap to answer
Q1Answer
Why does a team that aims for the best design often ship later without shipping better?
"Best" has no stopping point, since another option can always be compared. A bar fixed beforehand marks the end, and the saved time goes to real use.
Tap to turn back
Q2
Sort these into floor or bar: the core task, visual polish, safety, the committed accessibility level, rare edge cases.
Tap to answer
Q2Answer
Sort these into floor or bar: the core task, visual polish, safety, the committed accessibility level, rare edge cases.
Floor: the core task, safety and the accessibility level. At the bar: polish and rare edge cases.
Tap to turn back
Q3
A PM asks to move a known contrast failure into next quarter's backlog. What do you settle before agreeing?
Tap to answer
Q3Answer
A PM asks to move a known contrast failure into next quarter's backlog. What do you settle before agreeing?
Whether contrast sits on the team's floor. If it does, this is a breach rather than debt: fix it now, or have a named person accept it in writing.
Tap to turn back
Q4
Your release notes list known issues that never come back. How do you fix it, and why does the fix work?
Tap to answer
Q4Answer
Your release notes list known issues that never come back. How do you fix it, and why does the fix work?
File each as a backlog item with an owner, its effort and a sprint. A dated item gets weighed against new work at every planning meeting.
Tap to turn back
Q5
When is aiming for the best still the right call?
Tap to answer
Q5Answer
When is aiming for the best still the right call?
For floor items, and for choices that are costly to reverse after launch. There a later fix costs more than the time saved now.
Tap to turn back
Q1 / 5
Open question
Kaley compares UX debt to compound interest, but gives no rate. How could a team measure how fast a logged gap grows before users pay for it?
Sources
- 01Rational Choice and the Structure of the Environment (opens in a new tab) — Herbert A. Simon — Psychological Review 63(2), 129–138, 1956
- 02UX Debt: How to Identify, Prioritize, and Resolve (opens in a new tab) — Anna Kaley, Nielsen Norman Group, 2018
- 03Principles behind the Agile Manifesto (opens in a new tab) — Beck, Beedle, van Bennekum et al.
- 04Attractive Quality and Must-Be Quality (opens in a new tab) — Noriaki Kano, Nobuhiko Seraku, Fumio Takahashi, Shin-ichi Tsuji — Journal of the Japanese Society for Quality Control 14(2), 1984
Related
Next note