Big decisions - the Engineering approach

How to overcome indecision and a free tool to help

It’s easy to get stuck in when making decisions.

We all know that making confident, clear, quick decisions is essential, but how can we do that when the choices are so ambiguous?

Personally, I’ve found that a lot of indecision comes from not having a clear idea of what exactly my goal is. If you don’t know what makes one choice better than another, you can’t pick between them. Getting more information that doesn’t answer any relevant questions just leads to analysis paralysis. We need a technique that will help us focus on determining what features make one choice better than another.

Enter LAAAM

LAAAM stands for ‘Lightweight Architecture Alternative Assessment Method,’ and even though the acronym is anything but lightweight, it’s a useful framework for helping to focus the decision-making process. I first learned this technique from Jeromy Carriere while working at Vistaprint. He has a great intro to the math behind LAAAM on his blog. I use it for a lot more than just software architecture, however.

In essence, LAAAM offers three important benefits:

  1. It separates deciding values from evaluating options.
  2. It starts out with generic attributes, but focuses on coming up with concrete scenarios that opens can be evaluated against.
  3. It simplifies determining the relative importance of different attributes by using rankings instead. It’s easy to say that flexibility is more important than money when finding a new job, but it’s very difficult to quantify exactly how much more important it is.

In Practice

Two weeks ago, I decided to start looking for a new job. However, I wasn’t sure what type of job to pursue. I worked as a software developer at Vistaprint, and after that, I started my own company. Now, I live in Beijing and am trying to figure out what to do next. Should I look at local engineering jobs, remote software positions, project manager positions, or something else? It was time for LAAAM.

  1. List the attributes that are relevant to your decision

    First, I thought about what attributes I’d like in a job. One is stability; running my own company was pretty stressful because every day I had to figure out something new to do. Another is money, of course. The ability to achieve goals is a third, and finally, I would like to work closer to other people again.

  2. List specific scenarios that would indicate an option possesses each attribute

    Under each attribute, I thought about specific qualities that would exemplify that attribute. For example, under people, does a job give me the opportunity to learn from experts, to have others to bounce ideas off of, to make new friends, or to see new perspectives?

  3. Rank the attributes and scenarios in terms of importance

    I decided that my personal priority for job attributes was Goals, People, Money, Stability. Under People, the order was having others to bounce ideas off of, learning from experts, seeing new perspectives, and finally making new friends.

  4. List each option and score them against each scenario

    Next, I listed out all the different types of jobs I could pursue (I ended up with 8 of them) and scored how well they match each criteria, using a scale from 0-2. 0 is poor, and 2 is great.

  5. Calculate a total score for each option using rank order centroids to assign a weight to each criteria

    Finally, I calculated the overall score for each type of job as described in Jeromy’s blog post, weighting the most important criteria and attributes higher than lower ranked ones. I ended up with remote full-time engineer as the top choice, and remote freelance engineer and local project manager basically tied for number 2. I did this all on paper, so it was quite annoying.

The Tool

Next time I want to use LAAAM to make a decision, I don’t want to spend so much time doing calculations and writing stuff down. Therefore, I wrote a javascript app where you can quickly build and rank decision trees and add potential options. Even though I built it for me, anyone can use it to help gain some clarity when you need to make a decision. If you try it out, let me know what you think in the comment section here. If there is enough interest, I’ll add a way to save and collaborate on decisions.

Try the Decision Clarifier 2000 here!

Written by Mpdaugherty on Thursday, 7th April 2011.
Posted in: Javascript

Next: Upgrading to Django 1.3 1 week later

Previously: Announcing Django-Vehicles 1 week earlier