Are Choices Good Or Bad

This post is inspired by this Charlie Collins post. Also partly inspired by a talk I heard - probably on IT conversations - in which the speaker(I had forgotten the name) proclaimed that choice is overrated. I think it's clear that there are times when having more choices is better, and there are times when having fewer choices is better. But we can do better than that. I think A good rule of thumb to use is: have more choices if you care, and have less choices if you don't.

Some examples

buying jam: are you passionate about jam? Do you love a certain kind of jam/fruit(Apricot)? Or do you simply want some jam to put on the table because your wife told you to get some?
buying cars: are you passionate about cars? Do you want a great looking car? A super fast car? A cute car? A car that is safe? A car that is "green"? A car that's cheap? Because a car affects your life in so many areas(driving pleasure, self esteem, financially, quality of life, etc), people are invested in their decision of buying cars.
software frameworks: some people are very invested in how the write software and what frameworks/tools they use, others only care about using their craft to pay the bills and therefore go after the most widely adopted frameworks.
You get the idea.

But then what about the example of patients when faced with the decision of surgery, most would rather defer the decision to their doctors? Well, there's a second component to this: do you have enough knowledge about the issue to make a good decision? If you don't, and you don't have enough resources, time, will, or ability to do the research yourself, then it makes more sense to defer the decision to a more knowledgeable person, even if it's a life-or-death situation.

But what about the problem of choosing software frameworks? First, how does the problem of analysis paralysis manifest itself? In the case of analysis paralysis, we also have a life-or-death situation(sort of, it really shouldn't be, but many view it so), but the decision maker(s) thinks he has the resources, time, will and ability to do the research for himself, and thus goes off and does the research. But the research is taking too long, partly because there are many choices, but really because it's hard to pick a clear winner.

In the software framework space, especially open source, there is another issue in play: manpower. The more popular your framework is, the more contributors you will have, either actually contributing code, submitting bug reports, writting documentation or simply blogging about how to do a certain thing. If your framework has popularity/manpower, it has a better chance of becoming great and coming out on top because it will improve faster than the competitors who do not have a lot of manpower. When you don't have any clear winners, as I think is the case right now for Java and Python, sometimes people give up their analysis and do their own thing - as Neal Ford mentioned, or just live without any fancy framework. This takes manpower away from the would-be winners.

But, in the Java space, I predict that there will eventually be an emerging winner. I just hope it isn't JSF =) Also, I like some of the things Neal wrote in the past, but he's coming off too much like a rails pimp to my tastes.

blog comments powered by Disqus