MCDA: An essential Decision Making tool

J Devansh
6 min readSep 14, 2020

--

I find myself dealing with lots of complexity at work, and I’ve been thinking about ways to deal with this complexity.

One way is to break complex problems down into smaller, simpler problems. Simple problems are easier to think about, and better lend themselves to being decided in a data driven manner. It’s also easier to talk about them, allowing for discussion with larger teams, and paving the way for consensus.

A tool I find quite helpful to break complex problems down with is MCDA — multi criteria decision analysis, very similar to a Decision Matrix. The setup of the MCDA also requires you to evaluate your goals in a specific way - it’s helpful to know where you want to go before you set out.

I first came across an MCDA in the guise of the WSJF (Weighted Shortest Job First) framework. This form allows product teams to prioritize features or tasks, and I found myself wondering how MCDA can be applied more generally to work or personal decisions.

I went looking to Wikipedia for an explanation of how an MCDA can be used in a generalized form, but found a very theoretical overview - not very helpful if you are trying to use it for your own decision making.

Below, I explain what an MCDA is, walk through its application to a relatively simple situation, and explain how the WSJF uses simple mathematical concepts to capture some additional complexity. I end with a short summary on how it can be applied to common decisions we all must make.

What is an MCDA?

An MCDA takes the form of a table — decision alternatives as rows and goals as columns. Once you have decision alternatives and your goals written down, you assign a score for each decision alternative’s impact on each goal, thus filling the table with numbers.

In its simplest form, by summing the scores you get a number for each alternative’s impact on your goals, with the highest score revealing the alternative with the greatest impact.

An Illustrative Example

Let’s say you’re working on 3 projects, and are trying to decide how to allocate time between them.

Let’s say the Decision Alternatives (ways you could spend your time) are -

  1. Create a personal budget
  2. Train for and run a half-marathon
  3. Watch Sienfeld again

The first step of using an MCDA is to list your goals. Let’s say our personal goals are -

  1. Increased savings
  2. Personal health
  3. Professional learning

You’re now ready to throw everything in to a table -

Then you go through each alternative, and assign a score on a scale of 1–5 ,for example, for how much it impacts each goal -

For a really simple version of an MCDA, you can simply add up the scores of each project, and work on the highest one first, or allocate time in the same proportion as the scores.

These results suggest you should focus on a personal budget, but assumes you value each of the goals equally. To get more nuanced, you can attach a weight to each goal. Let’s say you value being healthier twice as much as your other goals - you can assign weights and multiply those with the scores before you add them up -

This simple model can be extended to handle various units of data by scaling the data, and more complexity in how you want to treat the goals by changing the way you sum the scores. I explain both of these methods using WSJF.

WSJF - MCDA applied in a product context

The classic product problem — you have a number of different features, but you can’t build them all at once. How do you prioritize the different features to produce maximum value?

Agile describes a specific form of MCDA, called WSJF, to solve this problem.

WSJF defines the goal metrics as -

A. User Business Value ( revenue or something similar)

B. Time Criticality ( rate of decay of User Business Value )

C. Risk Reduction / Opportunity enablement

D. Job Size ( how long it will take to build )

Filled out with some potential features and data, a WSJF looks like this -

However there is some complexity here that we didn’t see in our simple example above -

  1. Goal metrics come in different units - User Business Value and Risk Reduction may be expressed in dollars, Time Criticality on a scale of 1–10, and Job Size in number of months. Adding up values in different units doesn’t makes sense.
  2. Not all goal metrics are desirable. While you want to prioritize alternatives with high scores across User Business Value, Time Criticality, and Risk Reduction, you want to do the shortest ones first, meaning you want a low score on Job Size.

How WSJF solves for these complexities-

  1. To be able to perform arithmetic, you need to convert the different kinds of data, to lie on one comparable scale. You could accomplish this by assigning numbers from 1–5 to each value, as we did above. WSJF does this by converting all numbers into fibonacci numbers ( 1,2,3,5,8,….) through a collaborative process described here.

This conversion yields another column with the scaled values, and looks something like —

2. To express that we want a high scores on Business Value, Time Criticality, and Risk Reduction but low scores on Job Size, WSJF asks us to add up the first 3 scores, and divide that number by Job Size. This means a high job size will result in a lower overall score, and vice-versa - exactly what we wanted. Summing this way -

This solves for the undesirability of long Job Size, and tells us that we should probably fix the compliance bug first, then onboard the client, and assign lowest priority to improving Sign-Up UX.

If you’re interested in learning more about WSJF, this website has a detailed explanation.

Summary

The MCDA or decision matrix is a great way to break complex problems into simpler ones. Like many great tools, it can be used very simply as in our personal decision scenario, and extended to handle more kinds of and data and weighing of goals as in the WSJF.

You can create your own MCDA for personal decisions like where to vacation, which companies you might want to work for, or to allocate time between personal projects. You can play with the weights and the summation function till you find something that works - just start with something simple and iterate.

Go forth and make good decisions!

--

--