Use a Scenario Table to Organize Complicated Situations

Published

When thinking in scenarios, I find it useful to lay it out as a table. A table is the most compact way of sharing definitions with a team. A table helps you explain what’s going on in a way that is mutually exclusive and collectively exhaustive. This keeps the team organized and provides the ability to refer to each case.

What goes into a scenario table?

Columns and values

Which columns determines which dimensions of the problem matter. If you are responding to an incident for example, the goal of the table is to summarize all of the ways a bad thing happened so each column would be contributing factors.

Picking the right columns is a thinking aid to help you and the team reason about the problem. What other possible combinations of these columns exist in the system? Do we have examples and does it matter? Which can you rule out entirely?

Labels for each case

Since we’re in a table format, it’s easy to add a column for labeling each case (a row in the table) so they can be referred to easily. If your situation is very complicated (i.e. many columns), simply number the rows and refer to the case by number. If it’s not as complicated, use a very short name that is distinct and memorable for each case (I use the former for incidents and the latter for product brief).

How do you know if you’re done?

To calculate the total number of possiblities, multiply the number of options in for each column together. For example, a table that has 3 columns with two possible values per column is 2 × 2 × 2 = 8 possible scenarios.

Of course, some of the combinations of column values might not be valid. I find it useful to discuss them with the team to verify that these are not possible and, as a software engineer, I can use this as a guide to make invalid states unrepresentable.

See also:

  • Thinking in Scenarios Simplifies Scoping

    When scoping out and planning work, an easy way to get a comprehensive understanding of everything that needs to happen is to enumerate every scenario. I find this technique saves a lot of time and clarifies what to do in a way that avoids surprises later.