Poka-yoke: make the mistake impossible

Poka-yoke is Japanese for mistake-proofing. It's associated with Shigeo Shingo and the Toyota Production System. ASQ describes it as a method that makes an error impossible, or makes it obvious right away.

The classic example: a plug that only fits one way. Nobody has to remember which way is up.

Two kinds

  • Prevent. The mistake can't happen at all.
  • Detect. The mistake can happen, but it's caught at once, before it goes further.

Prevention is better. Detection is the fallback.

For bots

A bot follows written instructions well, most of the time. "Most of the time" is the problem. A rule in a long instruction file can be missed, especially deep into a long conversation.

Poka-yoke asks: can we take the option away instead?

MistakeRule (weak)Poka-yoke (strong)
Bot sends an email by mistake"Never send without approval"The bot only has a drafting tool. A person sends.
Bot edits the master file"Don't change the master"The master is read-only for the bot
Wrong date format"Use YYYY-MM-DD"The template has the date field already formatted
Report missing a section"Include all sections"The template has every heading; the check fails on an empty one
Bot uses an old file"Use the latest version"Only one current file exists where it looks

In each row, the right-hand version doesn't depend on the bot remembering.

Detection for bots

When you can't prevent it, detect it fast:

  • A check that fails if any figure has no source.
  • A tester bot that runs a script against the bot after each change.
  • A draft that waits for a person to say yes.

Where bots differ

On a factory line, a fixture physically blocks the wrong part. Software controls are only as strong as the setup behind them. If a bot has a tool that can send, a rule saying "don't send" is a sign on the wall, not a fixture. Check what the bot can actually do, not just what it's told.

See The hierarchy of controls for the bigger version of this idea. Back to Engineering tools for bots.