In praise of Optimizers

Scott Adams has written a piece on Boing Boing in which he talks about Simplifiers and Optimizers, the difference between the two he summarizes thusly:

Some people are what I call simplifiers and some are optimizers. A simplifier will prefer the easy way to accomplish a task, while knowing that some amount of extra effort might have produced a better outcome. An optimizer looks for the very best solution even if the extra complexity increases the odds of unexpected problems. I have a bias for simplification, but surely there are situations in which optimizing is the better play.

I find it interesting that at the beginning of this piece I’m all “he’s so right” but after a while I start chafing at the idea of everything being simple because I start thinking of software that aims to be ‘simple’ which often means creating something that only caters to the lowest common user. Useful features are stripped and assumptions are made, all of which means that the abilty for making it work efficiently for me is lost.

I don’t accept that ‘simple’ has to mean feature or option free. There is often an attempt to make software accessible to the new user at the expense of making it configurable for the more experienced user. A user is a new user for only a brief percentage of the time that they’ll use your software (hopefully) and it seems to me that finding a way to balance the needs of the two users is more prudent than creating only a single a half naked version.

More options can definitely making troubleshooting more complex on occasion and adding new features can be more challenging but it also makes for a more personalized and rich user experience for those that want it.

A distinction has to be made between the Everything-but-the-kitchen-sink programs that try to be all things to all people with a scatter-gun feature set and the feature-rich One-thing-well applications which try to enhance the experience for a specific group of people.