Error Triage

24 November 2021

"Everything happens for a reason. Sometimes the reason is that you're dumb and make bad decisions."

Retrospectives aren't just for software teams. When things go wrong, my first instinct - after stopping them from getting worse - is to categorise the decision that triggered it:

Mistake

A bad outcome has occured as the result of my decision. At the time that I made the decision, with the information that I had or could reasonably have obtained, I could not have avoided it.

This is unfortunate, but there's nothing to learn here. While this is the "off the hook, don't feel bad" case, the sting in the tail is that there is no guarantee that this bad outcome won't happen again.

Blunder

A bad outcome has occured as the result of my decision. At the time that I made the decision, with the information that I had or could reasonably have obtained, I could have avoided it.

This is bad, especially if the bad outcome has caused harm to other people. There's significant work to do to determine how the blunder occurred; the good news is that it should be possible to stop it from happening again.

Sacrifice

A bad outcome has occured as the result of my decision. I knew that this would happen, and selected it anyway (presumably in service of some other goal, or because the other options were worse).

There's nothing to do here but lie in the bed you made.

Subtleties:

I'm sure that the same framework exists in thousands of other places, probably with different terminology.

Sometimes an apparent blunder is really a mistake or a sacrifice - these are the "I didn't know, but if I had, I still couldn't have done anything about it", and the "I didn't know, but if I had, I would still have chosen this outcome" cases.