Let me start this post with the following TED talk. It lasts 20 minutes, and it's a nice introduction to the argument of this post

I am currently in the process of choosing a web framework for a project. Problem is: there are too many! Every single one does more or less what I need, or I assume it does. So I would say that just picking one would work, right ? Hardly so. The reality is: I am stuck into "choice paralysis".

Human nature demands freedom of choice, but not out of an excessive number of choices. In other words, Less is More. An educate personal guess lets me believe that the underlying reason in terms of brain wiring is the same for the Rule of Seven and the Hick's Law. As absurd it can be, an overwhelming number of opportunities short-circuit our decisional machine to the limit of making it useless. If you are proposed three retirement plans, your choice will be relatively easy. If the same company provides you 15 different retirement plans, you will not be able to choose. On the other hand, being limited to only one choice will trigger a sense of limitation, lack of personalization and adaptation. We want to have our personality recognized, and express it through our choice.

There must therefore exist a sweet spot where these two effects compensate and maximize the satisfaction. Needless to say, this spot is likely to be very useful for marketing purposes, since many choices today involve money transactions. One of the examples I find particularly interesting is Apple: Apple sells a very limited choice of products, with a distinctive branding that puts it in a different category. You have only three laptops, with a rather limited choice of personalization. Their marketing aims at a reduced amount of choices. Any other (non-Apple) laptop is just one choice out of many very similar laptops, and choosing is more difficult.

At the opposite side of the spectrum, the perl language puts strong focus on the assumption that you can write the same code in many different ways: TIMTOWTDI, or "There's More Than One Way To Do It". In other words, excess of choice. See [1] and [2] for more discussion on this specific topic. In software development, an excess of freedom can bring a project to a halt due to "Analysis Paralysis".

It is therefore important not only to provide choice, but also to distill it to the real, essential minimum.