I’m working on using WordPress, a great piece of open source blog software, to run a community site that allows users to register and post stories. While this is similar to a blog, it’s outside the standard single-author publishing paradigm. WordPress, it turns out, can be easily configured to do exactly what I want. I appreciate WordPress’s flexability.
Yet, as a programmer who thinks Simplicity Rules, I can’t help but be taken in by the arguments against endless preferences. Jeff Atwood has a long rant about customization that ends in three great reasons for “intentionally choosing to make things not configurable:”
- It forces you to carefully select good default values
- It forces you to pick a strategy and run with it rather than hedging your bets and trying to satisfy everyone
- It’s one less thing for the user to think about when using your software
The extremely minimalist Jason Fried says to get real and get rid of preferences because of exponential permutations:
“when you start combining this preference with that preference your customers will quickly end up seeing a screen you’ve probably never seen.”
As a programmer, I’ll continue to heed their advice and keep things simple. But as a user, I can’t help but be appreciative when a highly configurable piece of software is done right.