Joel raises a good point in his post Choices = Headaches. His complaint is that Vista has WAAAAAY too many options for saying “see ya” to your computer: sleep, hibernate, shut down, restart, log off, and switch user. I agree with him here. I was just thinking the other day how silly it is that there is even a restart option. It’s basically only there because of brain-dead software, and if you really, really need to restart, couldn’t you just turn the computer off then on again?
Joel’s solution is a single action, which he calls b’bye:
When you click b’bye, the screen is locked and any RAM that hasn’t already been copied out to flash is written. You can log back on, or anyone else can log on and get their own session, or you can unplug the whole computer.
He calls it b’bye, but it’s just another name for off. If you implement it the way he described though, you’re still missing a true reset option. Sure, it may be a cop-out for poorly-written software, but I think it’s still necessary.
The big-picture idea that Joel is touching on here is that more is less. Having too many options is a bad thing, because you actually have to invest significant mental effort to choose between them. Sometimes this can be enough to turn you away altogether. I procrastinated on buying a digital camera for years, because it was such a monumental effort to just learn about the choices I had. Too many choices can also make you feel belittled, because you don’t understand the differences. The menu at Starbucks has this effect for many people.
In software, adding a configuration option is the ultimate design cop-out. I’ve seen this happen many times with Eclipse since I was a developer in pre-1.0 days. Would you like to double-click to open files, or single-click? Would you like to use curvy tabs or square tabs? Having so many options makes it really difficult to find the important ones. (In fairness to the Eclipse developers, they have a very diverse set of stakeholders, and this is the only way to keep most of them happy)
What it really comes down to is having the courage to make those tough design design decisions. By removing those unnecessary options, you risk alienating a certain group of users — the people that actually want them. But would you rather by stuck in the zone of mediocrity?