Roberto's blog

Decision matrices as a thinking tool

Some decisions require comparing multiple options where it’s not immediately apparent which is best. One common way of doing that is to list the pros and cons of each option. For example, option A lists low latency as a pro, while option B lists high throughput as a pro. But do you know what throughput option A provides? Not being explicit makes it easy to make assumptions and ignore crucial comparisons.

One of my favorite tools for making decisions is the decision matrix. It’s well-known enough that you would think there is no reason to write about it. Yet, not a week goes by without me reading some documents that could have been improved using a decision matrix.

So, how do you write a good decision matrix? You should always start with a concise problem statement. After all, you are trying to make a decision to solve a specific problem, and you want to keep that front and center. Defining the problem statement is a whole can of worms on its own, and I plan to write more about it in the future.

The columns of the matrix hold the options to evaluate, and the rows are the criteria used to evaluate them. Each cell in the matrix is an aspect of an option from the perspective of a criterion. A criterion is an important property of the problem you are trying to solve.

Column names should be descriptive and short – don’t use single-letter names and have the reader mentally join with a legend.

If you are trying to decide whether to modify or replace something that exists today, make the status quo your first option. Usually, there will be something that isn’t great there. If there isn’t, what are you trying to solve? Also, if the problem has been solved before, list the known solutions as new columns.

The rows are the criteria used to evaluate the options. Some criteria are about how well an option solves the problem, while others are more meta, like expected cost, implementation time, etc. Criteria need to be relevant to the decision you are making. Don’t mindlessly copy-paste them from one matrix to another.

Sort the criteria from the most important to the least important. The rows at the very top should be the criteria that most distinguish the options.

A cell describes how an approach meets a criteria. Use a short objective description instead of some numerical rank from 1 to 10 so that readers can understand your thought process. Write the facts as objectively as you can. If you don’t have the data, add a question mark as a reminder.

Use the background color of a cell to convey your subjective opinion. If the color is neutral, the aspect is neither desirable nor bad. If it’s green, it’s particularly desirable. If it’s negative but not blocking, it’s yellow. If it’s red, it fails to address the problem and is likely blocking. A reader who disagrees with your recommended option should only be able to change the color of specific cells, not the content.

Putting the options in a single place and seeing them contrasted with each other will help you develop new options and ultimately make a decision. For example, if a row doesn’t provide any valuable information to make a decision, get rid of it or move it down the matrix. If a column is all green, are you attempting to justify an option because you have some bias? If two columns are indistinguishable from each other, is an important criterion missing? If all options are blocking, have you exhausted all solutions? The matrix is more than a list of options – it’s a thinking tool to come up with novel and better solutions iteratively.

#System Design