Originally published as a Twitter thread starting here.
Anyone who has spent any time in either a technical or people management leadership position in software development knows that you need to make seemingly difficult decisions frequently.
This week I coached a coworker through making a difficult decision by walking through the following process with him. It turned out it wasn't as difficult as he initially thought.
Identify your options.
List the risks & possible mitigations (for each option).
Relatively rank risk ranges and expected risks (across options)
List benefits (for each option).
Decide and take next steps!
Step 1: Identifying options
In this step, you need to think creatively. Previously, I have not always fully explored the option space, which limited my ability to get more of what I wanted. To inspire creativity, ask questions, talk to people with different perspectives, take an excursion (walk/cycle/ride), listen to music you like but haven't listened to in a long time, try to think of the worst possible option first to get you thinking differently, or start with the simplest and refine from there.
Realistically, you want to limit the number of options to about three to five. So pick the best options and trim down your list after you have brainstormed.
Two options is perfectly fine but don't trick yourself into believing this is the full option space if it still feels like an impossible decision at step 5. In that case, revisit this step and start over from here. Hopefully you have time before option opportunity windows start closing on you due to external factors.
Step 2: List the risks & possible mitigations (per option)
List out what risks each option has then think about how you can limit the risks in each case. How likely is it that you can mitigate the risks in each case? How much control do you really have?
Step 3: Relatively rank risk ranges and expected risks (per option)
It isn't a quantitative step nor is it objective. In fact, you want this to be somewhat subjective because you are choosing which problems and magnitude range of problem you would rather recover from when things don't go your way.
Here are the parameters to keep in mind as you rank them:
the damage caused by the completely unmitigated option being carried out
the damage caused by the perfectly mitigated option being carried out
how much control do you have over the mitigations in place?
how likely is that that when you take maximum mitigations your result will be significantly negative.
Remember the purpose isn't to eliminate ALL possible negatives, just the negatives you really care about. If you only get a +5% return on investment instead of the outside-chance of +200%, will that ruin something of import for you or just be less return than completely unreasonable return on an investment than you thought? (It might, it might not; it often depends on your operating environment and relevant factors such as inflation expectations in this example.)
Step 4: List benefits (per option)
Remind yourself what the benefits are. Filter out options that have marginal or unimportant benefits to you.
If you have exactly one option left then the next step should be easy. :)
Step 5: Decision and take next steps!
Give yourself a reasonable timebox to do this step given the options left after step 4. Sometimes you will not have full control of how long you can take to decide (e.g. job offer deadline) but try to negotiate if needed to avoid opportunities closing on you.
At this step, you want to consider if you can negotiate ideal conditions for exercising your first choice option first before closing windows that might be good backup options if you can't.
However, you do not want to hang on this step too long. Make a considered choice and move on. The Zeigarnik Effect suggests what is unfinished consumes your working memory which might prolong anxiety or stress. Take care of yourself. (However, you can use the Zeigarnik Effect to great effect to help you spur on work momentum, which I wanted to write about in another post.)
This is not for every kind of decision. Some decisions should be obvious to make given your own values. This is a process generally needed when upon first look at the problem, all possible solutions look bad.
It doesn't work for the times you really need to make a decision in an instant, however, you might want ask the car salesperson again if that once-in-a-lifetime offer still stands. You might be surprised.
Your state of mind during this process matters. Try to get your mind to be calm. Try the methods you know work for you to eliminate anxiety and stress about making this decision. Try to remember in most cases you have more control of the situation than you initially thought you would.
If you are faced with being in the path of a stampeed of woolly mammoths while hunting for your next meal, this is not the process you need. Run for your life out of their path!
Remember that you need to understand you will have imperfect information. This is increasingly the normal operating environment in business and technology today.
One last note about this process is that you don't want to take a long time on the final step. If that step takes a long time, then maybe you haven't explored the option space well in step 1. It might save you time and pain if you revisit step 1 and rethink the possibilities available to you.
Hope this helps and remember that you might be able to use this in other parts of your life too.
By Susan Potter
Susan is a software development entrepreneur, team lead, systems architect, developer, enabler, wearer of many hats with a career spanning almost 25 years specifically in software development at varying levels. Even though she prefers developing in referentially transparent functional codebases, she is not above working in whatever language is necessary.