In my last post, I took a look at one specific element of the design in Windows Vista. My intention was to explore two themes that I think this one small example illustrated well: the importance of telling a consistent story well, and the importance of understanding the human emotional response to a user interface.
A couple of comments targeted particular pet peeves about the particular design element in question, which unfortunately wasn't my target because I don't really have the ability to change it with anything more than a bug report (which I am happy to submit on behalf of my readers), but it makes for a good discussion nonetheless. I want to focus in on one in particular, because I believe it really targets a broader and more interesting discussion on user interface design.
I want to dissect this assertion because it gave me some interesting things to think about.
First, there is a hidden claim, assumed to be true, that "some/alot of people don't like Windows." If we want to try to understand the reason why something is true, from a scientific perspective, we first want to understand that it is true. And what do we need for that? Data. I have not seen a scientific study that sought to determine the emotional response to the product, and how people feel while using it (although for all I know this could certainly have been done many times over). Note, however, that the emotional response to the pure aesthetics can be divorced from the emotional response driven by daily usage. What looks startlingly beautiful in a screenshot may be overbearing and annoying during constant use. Remember the Pepsi challenge, where people reacted strongly to the sweet taste of Pepsi in a sip test because we are evolutionarily programmed to favor sweet things; in higher quantities (read: normal usage - when was the last time you drank 2 ounces of our soda and tossed the rest away, not craving another soda for a few days?) the data looked significantly different.
For the moment, let's overlook this assumption. After all, if everyone already had a perfect emotional response to Windows, we wouldn't be working so hard to make another one, would we?
The larger claim is making an assertion as to why this might be the case, zeroing in on customization. This comment suggests that it's just not customizable enough. If I flip through the options in Windows, I see a whole lot of customization. Tons and tons of it. Control panel applets that branch into more specific applets, many of which offer a popup advanced window that can even allow you to change the behavior of the power button on the start menu differently depending on whether or not you're running on batter power. A host of options in gpedit.msc that can even be deployed across an entire enterprise. Raymond Chen's famous TweakUI. There is a LOT of customization available. And with it, a huge amount of complexity.
So, if we want to take anecdotal evidence, my experience is completely different. Until this comment, I have never once heard somebody suggest that lack of sufficient customization was an issue in Windows whatsoever. In fact, complexity (which is what customization necessarily brings) would be one of the biggest issues. Reliability. Security. All of which the team is working hard on in Windows Vista. But never once customization. Similarly, I have never once heard somebody who uses one of our competitors' products claim that they do so because of the customizability of the product. John Hodgman has never once been ridiculed for not being customizable enough. (Incidentally, if you are a Daily Show fan, be sure not to miss Ed Helms' on-scene report on Microsoft.)
Without any detailed research findings exploring motivation behind purchasing decisions, let's instead just go through a thought exercise around customizability and personalization. I am not limiting this to Windows, mind you. After all, you probably don't design and implement the UI for Windows, and neither do I. Rather, let's take the general case. For any software that you or I may write, how personalizable should it be?
How many personalization knobs and switches should you have?
We tell you to provide personalization in your applications. "Because of their widely varying skills and preferences, users must be able to personalize aspects of the interface." It is easy to interpret this statement as being as sweeping as it sounds, and honestly I do not know the intent of the author. However, I would be cautious about taking this statement too far.
First of all, even being the most sophisticated user of an application does not necessarily endow you with user interface design skills. To quote Jef Raskin, "The central point of this issue is that if we are competent user interface designers and can make our interfaces nearly optimal, personalizations can only make the interface worse."
It is also important to consider the ramifications of extensive personalization. Jensen Harris discusses how personalization can lead to a degrading user experience with Microsoft Office in his blog. The user must learn both how to use the software and how to personalize it, and personalizing it frequently does not lead to increased productivity (particularly if you begin with a nearly optimal design). Documentation becomes harder to create. Screenshots may not match what you see on your screen. If you are trying to walk a friend through using the software, you may direct them to use a feature which has been customized to be hidden, so now you not only have to help them learn how to use that feature, you end up teaching them how to use the personalization features before you can even get to that. If you end up accidentally personalizing, you can be left in a mode you simply don't know how to get out of. There are important side effects to consider for providing personalization features.
Of course, the counter argument is that your "personal" computer really should be personal if you want it to be. While most people want their operating system to really fade to the background and not even be noticable (which is what Windows Vista strives to do - your applicaitons should be the focus) and don't give it a second thought, there certainly is a percentage of the population that wants their operating system to shout loudly a personal statement about them. I have intermitently been among this group, so I get that. Stardock sells their Object Desktop line of products precisely to fill this need. And I think this makes for a very complete story. Most people want to have a modern, crisp UI that does the job well, feels nice to use, and really does a good job of staying out of the way because they don't care about their operating system, they care about their work or their fun. For those that want bling, we have partners who deliver.
What does that mean for our applications? Well, if we are designing line of business software, we should design our software to be optimized for the task at hand. (Not that they should be ugly - being optimized for the job at hand, to me, implies driving as positive an emotional reaction as possible, and not just providing the correct number of input boxes.) If we are designing commercial software for consumers, we should take the same route, but we may also want to consider which personalizations may add value. And, once we have done that, we really need to make a well designed personalization system and account for the time to document and explain the intentional modality we have introduced. Windows Media Player provides an interesting example. The documentation will always refer to the full sized window. You can make an arbitrary skin that looks like a giant eyeball, but you can always press the "get me out of this wacky eyeball mode" button and find yourself back in a state that completely matches the documentaiton. And, personally, once the full mode had a well optimized UI, I never went to skin mode again.