Decide the little details so your customers don’t have to
You’re faced with a tough decision: how many messages do we include on each page? Your first inclination may be to say, “Let’s just make it a preference where people can choose 25, 50, or 100.” That’s the easy way out though. Just make a decision.
Preferences are a way to avoid making tough decisions
Instead of using your expertise to choose the best path, you’re leaving it in the hands of customers. It may seem like you’re doing them a favor but you’re just making busy work for them (and it’s likely they’re busy enough). For customers, preference screens with an endless amount of options are a headache, not a blessing. Customers shouldn’t have to think about every nitty gritty detail — don’t put that burden on them when it should be your responsibility.
Preferences are also evil because they create more software. More options require more code. And there’s all the extra testing and designing you need to do too. You’ll also wind up with preference permutations and interface screens that you never even see. That means bugs that you don’t know about: broken layouts, busted tables, strange pagination issues, etc.
Make the call
Make simple decisions on behalf of your customers. That’s what we did in Basecamp. The number of messages per page is 25. On the overview page, the last 25 items are shown. Messages are sorted in reverse chronological order. The five most recent projects are shown in the dashboard. There aren’t any options. That’s just the way it is.
Yes, you might make a bad call. But so what. If you do, people will complain and tell you about it. As always, you can adjust. Getting Real is all about being able to change on the fly.
Preferences Have a Cost
It turns out that preferences have a cost. Of course, some preferences also have important benefits — and can be crucial interface features. But each one has a price, and you have to carefully consider its value. Many users and developers don’t understand this, and end up with a lot of cost and little value for their preferences dollar…I find that if you’re hard-core disciplined about having good defaults that Just Work instead of lazily adding preferences, that naturally leads the overall UI in the right direction.