Picking the Best Tech Stack is a Trap

Are you stuck trying to choose the perfect tech stack or the best side project to build rather than just getting started? Do you own twenty different courses but can’t decide which topic is the best to learn next?

Do you scroll through Netflix for hours, trying to find the perfect movie before going to bed?

You might be a Maximizer and need to meet your ‘good enough’ counterpart, the Satisficer.

Behavioral economics says there are two types of people when making decisions. Their mindsets are “it needs to be perfect” and “it’s good enough.”

Maximizers and Satisficers

Satisficers (satisfy + suffice = satisficer) are people who search through their options until they find something acceptable. They choose it and move on.

If satisficing were a function, it would look like this:

function satisfice(optionsArray) {
  let acceptableLevel = 0.8;

  optionsArray.forEach(function (option) {
    if (option > acceptableLevel) {
      return option; // Choose this one and stop searching
    }
  });
}

They choose an option that’s better than 80% (or whatever threshold) as soon as they find it.

On the other hand, Maximizers make decisions by making an exhaustive search through all of the options. Only after thorough research do they choose something.

If maximizing was a function, it would look like this:

function maximize(optionsArray) {
  let highestValue = optionsArray[0];

  optionsArray.forEach(function (option) {
    if (option > highestValue) {
      highestValue = option; // Make this the new leader
    }
  });

  return highestValue; // Return only after we've seen everything
}

They go through the entire array to find the very best option.

Maximizers go through many more options than Satisficers. Even if they find an option that’s 90% perfect, they might keep hunting to find a 95% or 100%.

The problem is life doesn’t give us finite arrays of numbers to choose from. Real-world options are difficult to quantify and near infinite.

Maximizers face the most frustration during and after their decisions. When deciding, they worry they won’t make the best choice. Afterward, they fear that an alternative might have been better.

Maximizers are less happy, more depressed, and have much more regret. Ironically, they have lower satisfaction with their choices, even after all that effort.

Perfection is the enemy of progress.

—Winston Churchill

How this applies to development

You can be a maximizer in some aspects of your life and a satisficer in others. You may be a maximizer when choosing a restaurant or a Netflix movie, but nowhere else.

Or you’re a maximizer in the following areas of your web development career.

The very best tutorial

When people first learn to code or further their education, maximizers will spend more time choosing the perfect course or language to learn. They’d be much better off starting today and progressing in any direction with any reasonably good choice.

The very best tech stack

Decisions between tech stacks can catch developers in an endless loop of rebuilding but never launching. A new framework hits the scene, now fitting the Maximizer’s metric for ‘best.’ Rather than stick with a tech stack that will do the job, they spend weeks rewriting the app for minimal benefit.

The very best job

Some devs will always seek the ‘best’ job opportunity, jumping from ladder to ladder as soon as something better appears. Satisfaction in your job comes from feeling like you’re good at it. In my experience, you tend to suck at any new and challenging job for the first few months. Constant jumping in search of the ‘best’ job might leave you less happy overall.

That said, I’m not shaming job hopping. I think it’s clearly the best way in the industry to get a high salary. Just don’t do it for insecure Maximizer reasons because you’ll end up less happy than your Satisficer counterpart.

The very best blog post

When creating content, I know I get stuck deciding the best thing to write about. I fiddle with a few different blog posts and end up posting… nothing.

Recently I’ve gotten much better at just choosing a good enough topic, working away at it, and publishing it without worrying about the topics I left on the table. I can always come back to them later, after all.

Be Satisficed

Being a Satisficer is easier said than done. Changing something about your nature is never easy, but it’s easier once you recognize your behavior for what it is.

Find areas where you’re a Satisficer, and try to draw connections from there. “If I can be a Satisficer at Starbucks, I can do it here with this tutorial. This one looks good enough.”

Perfect is the enemy of good.

—Voltaire

As knowledge workers, devs must make many decisions to get through their week. From the small (choosing a function name) to the large (picking the stack for your company’s new app), it’s not the ‘best’ choice that matters, but the ‘good enough’ choices that push things forward.