Front-end Choice Paralysis

A problem we regularly face in this industry is an abundance of choice. We have a plethora of tools, frameworks, languages, abstractions and platforms. Choice is ultimately good for competition and innovation, however when faced with too many choices, we can feel paralysis. Rather than making a choice we feel frozen and alone with the indecision of having too many options in front of us. This isn’t necessarily an industry problem — it’s a human problem.

Take the simple idea of streaming a movie on Netflix.

Over the weekend, I was determined to watch a movie on it. I’d set aside two hours, which I thought was sufficient to select and play something.

What I didn’t realize was that it had been a while since I had last performed this exercise. The Netflix catalog had introduced (what felt like) hundreds of movies since my last break and so I started browsing. And browsing. And browsing. Watch Twilight! Or 2. Or 3. It’s the timeless tale of a girl who has to choose between ripped abs or clingy dependency. Watch Avatar! It’s like the Blue Man Group go to Jurassic Park.

There were so many choices and I felt flustered. In short: choice paralysis set in. It took me an hour to find a title I felt comfortable watching and I barely got half-way through before my time was up. My subscription now feels like one of those abusive relationships people are afraid of leaving.

Psychologist Barry Schwartz covers this phenomenon topic well in his 2004 book The Paradox of Choice, where he argued that by eliminating too much choice, you can reduce the amount of anxiety felt by shoppers.

He summarized a very relevant jam experiment by Sheena Iyengar and Mark Lepper as follows:

“When researchers set up [in a gourmet food store] a display featuring a line of exotic, high-quality jams, customers who came by could taste samples, and they were given a coupon for a dollar off if they bought a jar. In one condition of the study, 6 varieties of the jam were available for tasting. In another, 24 varieties were available. In either case, the entire set of 24 varieties was available for purchase. The large array of jams attracted more people to the table than the small array, though in both cases people tasted about the same number of jams on average. When it came to buying, however, a huge difference became evident. Thirty percent of the people exposed to the small array of jams actually bought a jar; only 3 percent of those exposed to the large array of jams did so.”

The challenge is that when presented with an abundance of choice, you can feel increasingly unsure of whether yours is the right one. Instead of being happy with our decisions, we’re filled with anxiety. Did I pick the wrong one? Would I have been better off with something else? What would my friends have used? Should I ask them? I don’t want to seem stupid. We’re stuck in a rut pondering whether we’ve missed an opportunity for something better. How many times have you second-guessed your technology stack?

When you’re given too much choice you can also end up increasing your expectations. Maybe you feel that if you hold out, you’ll find the ‘best’ one. The unicorn in the herd. Clearly, with so many options to choose from, the correct choice must be amazing. Often, however, on discovery of what the ‘correct’ choice is like we can feel unfulfilled. Such high expectations are difficult to meet, leaving us in a state of unquenchable dissatisfaction.

JavaScript has “Yet another framework syndrome” (how many solutions do we have for MVC, template rendering or data-binding?), Perl has “There’s more than one way to do it” (TIMTOWTDI), and Python has “There should be one obvious way to do it”, The Zen of Python.

We need to start getting realistic with our expectations. Competition can coexist happily, but perhaps the developer with a passing interest in a tool or framework benefits more from limited choice (something highly opinionated) whilst the person with a keen interest and more experience with some of the options available benefits from a broader selection.

If you’re an experienced developer speaking to someone stuck on a decision, try to help them simplify their options. It’s a freeing experience and may help narrow down their choices to something that doesn’t feel so daunting. Even taking a few off the potential list can give them an opportunity to get more clarity and choose something they can at least evaluate before making a final decision.