How The Paradox of Choice Influences Software
Filed Under Thought StuffThis is a guest post by Russell Ball. Russell is a senior .NET developer and the evil genius behind the blog – Caffeinated Coder.
I recently watched another excellent segment on Ted.com entitled “The Paradox of Choice” in which Barry Schwartz challenges the popular notion that having more choice is always a good thing.
Barry points out how the number of absurdly trivial choices we are forced to make on a daily basis has grown exponentially in recent times. Rather than increasing our satisfaction, he argues that this trend actually detracts from our quality of life by leading to paralysis, distraction, and dissatisfaction stemming from lost opportunity costs and unmet expectations.
At one point he cites a study done on investments in voluntary retirement plans which showed that participation in the program dropped by 2% for every 10 mutual funds that the employer offered. The increased complexity and effort required to make a decision in cases where employers offered too many fund choices seems to have paralyzed many participants, thus causing them to miss out on thousands of dollars of employer matched funds.
This line of thought led me to think about Jeremy Miller’s recent post, Breaking News: Java trounces .Net in OSS activity. In this post, Jeremy laments the relative lack of Open Source activity and framework alternatives in the .NET space as compared to the Java space. The underlying assumption in this position is that a high number of options is a desirable metric and that .NET developers should strive to create as many if not more alternatives than currently exist in the Java space.
Although I am of the opinion that we currently suffer from too few alternatives in the .NET world due to the domination of a single vendor, I am not convinced that we should strive to outdo the Java world in terms of the number of alternatives we have available to us.
I remember listening to an old interview with Don Box, Ted Neward, and Mark Pollack in which they discussed the differences of the Java and .NET worlds in terms of values and culture. One difference they talked about was the overwhelming number of choices available to Java developers and how choosing the development landscape at the beginning of a project could be a time consuming endeavor, especially if the team consists of several strong willed developers with different preferences.
I can’t help but wonder if this dynamic is less than optimal from the business perspective in terms of lost time and productivity. I also question whether I would really want to spend my own time learning the relatively trivial nuances of dozens of a particular type of tool or framework in order to make an informed decision when it comes at the expense of diversifying my skills in a wider range of other areas and technologies.
At the end of his talk, Barry emphasizes that excessive choice is definitely only a problem of affluent societies and that there are plenty of places in the world that suffer as a result of too few choices. He muses that what is really needed is a redistribution of choices in order to improve everyone’s lives.
Perhaps the same analogy holds true in the world of software.
The trick is to figure out whether either Java or .NET are currently in the sweet spot when it comes to the number of choices they offer. Do they both currently represent unhealthy extremes? Will both camps remain at these extremes due to their origins?
2 Responses to “How The Paradox of Choice Influences Software”
I agree that .Net should not try to out the offerings from the Java side. Too many choices often kills ingenuity since you travel down the valley of analysis paralysis. That said, I think .Net developers adopting design patterns that have been more prevalent in use in the Java world is a good thing. When you think about it, the design patterns are about confining your solution to a smaller set of choices – a pattern by definition is a directed path, limiting your choices.
W. Edwards Demming once said that second entrant into a market stands a much better chance of crushing competition since they will innovate and improve, as opposed to invent.
UGGHhhh!! Sorry for the misspellings in comments – it’s too early to write!!