← back
RSS

On Decision Making

7 min read ·

Context

Four inspirations for this blog post (first three come from Clojure world, last one is coming from HN):

Life/project is a sequence of decisions. Where you are now is the outcome of decisions you and other people made in the past. Affected by randomness of course - it’s never wise to underestimate power of randomness in life!

However, if we pretend for a second that randomness/luck/call-it-whatever-you-want doesn’t exist, it would be beneficial to try thinking on how you make decisions and how you could start making better decisions.

However, even if you know how to make quality decision - it’s only one part of equation. It’s also super important (not always) how fast you’re making the decisions.

The last dimension worth including is: “how important is the issue about which you are making the decision”.

In this 3 dimensional space you usually want to make great decisions fast - prioritizing decision making on the most important issues first. It’s not that hard to come up with such conclusion, right? However, if you look around, probably it’s not what you’re observing.

Situations where it goes wrong

Making tragic decisions

Very often people make a decision without having enough context, without considering alternatives and thinking too much about consequences. It’s not that bad if issue they are deciding on is “what I will eat for dinner?“. It’s much worse if they make such decision on issue like “who will I marry?” or “how to represent this complex business requirement in the codebase? (without even asking if I should in the first place!)“.

Inspirations I listed at the beginning of this blog post focus exactly on that - how to make good decisions. I’ll elaborate on that in next section.

Making no decisions at all

When you make a decision you should take responsibility of it. People are reluctant of taking responsibility of things that they don’t need to. That sucks when you’re in environment when nobody doesn’t want to make any decision. Everything stagnates. Nothing is happening. I even heard “any decision is better than no decision at all”. I strongly disagree (I saw too many bad decisions already), but “no decisions” situations suck. The most common sitaution for that is a work environment, where everyone has “it’s not my responsibility” attitude - not a fun place to be.

Making slow decisions

It depends on context a lot. I had tendency to make decisions too fast and forcing others to make decisions faster. Especially at work I couldn’t stand when people were discussing some edge cases and color of buttons. I wanted to just have SOMETHING working. Often it was the right approach and everybody was happy when SOMETHING landed very fast on production.

Over time I’ve came to few conclusions:

However, there are times were you suffer when you don’t make decision fast:

Focusing on not important decisions (pointless discussions)

That’s an interesting phenomenon! The easier and lower-impact decision is - the more people are willing to talk about it and they become very verbose!

Trying to have everyone on board when making decision

Some decisions are so small that they shouldn’t take lot of people to agree on. Usually you don’t need to ask whole family if it’ll be OK if you take a shower now or how you name some method in code. Being overloaded by decision making means that you make decisions slower and even may create some friction that will discourage talking about bigger issues as well.

Finding the right balance

How to make right decisions?

I think that Rich Hickey found a great answer for that. I just recommend you to go and watch his talks. I’m just doing very short parahprase (simplified a lot):

  1. Make a problem statement clear - it’s not always obvious. Very often we see / hear the symptomps - you need to do some digging to find out what’s the real problem
  2. List criteria across which you will be comparing possible solutions
  3. List all solutions that come to your mind and assess them
  4. If you’re in team - talk with people and encourage them to challenge you and propose other solutions
  5. Make tradeoffs clear, list consuequences each solution brings
  6. Give yourself time (at least sleep one night with the problem)

It’s incredible for me how good this framework is. I’ve been trying it for some time already and it can make wonder, especially the last step is surprising for me. It still amazes me how good can be taking break, not thinking about the problem and then coming back to it after some time! Or how it sometimes just click when you think about decision matrix you have somewhere in back of your mind.

How to prioritize the most important decisions?

First of all - it’s useful to have a backlog of decisions to be made and with defined potential benefits and risks for each - this way it’s easier to prioritize them. Also it’s worth keeping track of already made decision.

In software project I find it super useful to have log of ADRs. Recently I joined a team which does ADRs sessions for pretty long time. Thanks to having this history I can get lot of context why things are the way they are but also I can learn what “size” of issue is worth discussing on such session and what is not.

When people are proposing things to be discussed - items are sorted by importance - and it makes lot of sense. It’s not trivial and sometimes it’s hard to say which issue is more important, but trying to assess importance (if it’s not too overcomplicated process!) works than random in my experience.

Important bit: it’s the best if decisions of little importance aren’t even proposed to be discussed - but that’s of course hard to achieve. Everyone may have different perspective. However, being direct and honest can improve situation of what’s being proposed and what’s not.

How to make fast enough decisions?

  1. Eliminate not important decisions out of the sight (pointless discussions)
  2. Think of what does it mean to be fast enough (i.e. if you’re loosing lot of money every minute due to some decision not being made - ASAP may be reasonable)
  3. Calibrate issues so everyone is on the same page which decisions are worth discussing more and which are not

Don’t underestimate life randomness

No matter how good decisions you make - the outcome stil may be terrible:

However, it’s not a reason to give up. Quite the opposite! It’s a reason to try even harder to make right decisions so you can uplift the outcome even if life throws at you terrible circumstances.

I wish you great decisions on the issues that matter, made deliberately but never slower than they need to be. Cheers!