Configurability vs. Design

As important as it is, the need for configurability should not be used as an excuse to avoid making design decisions. Users don't want the ability to configure absolutely everything, since there is an obvious trade-off. While having more options makes a program more configurable, it also makes it harder to configure. The logic that if some configurability is cool, a whole lot of configurability should be really cool doesn't hold. Having dozens of unnecessary options makes it harder to find the options that are really worthwhile. Configurability isn't the answer to all problems.

In Windows, all of the configurable items I mentioned earlier have a clear purpose, and users routinely configure all of them. Gratuitous options have been avoided. For example, you cannot customize the way menus are drawn, change the look of the caption bars, or change the look of the standard controls. A Windows program looks more or less the same on everyone's computer—there isn't so much configurability that programs are not recognizable. But Windows includes enough configurability to accommodate different personal tastes, work styles, and accessibility requirements. Considering the amount of functionality in Windows, the designers of Windows used a fair amount of restraint in its configurability.

When faced with a user interface design decision, your first reaction shouldn't be "Oh well, let's just make it configurable." The mere possibility that somebody might want to configure a feature isn't a good enough justification. Rather, consider how the feature is going to be used. Is there really a need for configurability? Is it really impossible to accommodate most users in one way only? If the feature were configurable, would anyone bother to configure it? If so, go for it—make it configurable. If not, you should design the feature one way for all users.

TIP
While having more options makes a program more configurable, it also makes it harder to configure. Avoid providing options that aren't useful.

While this might sound harsh, the fact is that good constraints are also an important user interface quality. A good user interface guides the user through complex tasks, carefully balancing the need to keep the user in control with the need to prevent the user from screwing up. Constraints are especially important for beginning users. Probably the ultimate restrained user interface is a wizard. In a typical wizard, the user has very little control—the user can select from among a fixed group of settings and then choose either to continue to the next step or to cancel. Yet there is no better way to guide a user through a complex task. By contrast, probably the ultimate unrestrained user interface is the MS-DOS command line. Enough said.

Note that accessibility issues are an exception to this line of thinking. The goal of accessibility is to create software that everyone can use. Where accessibility is concerned, accommodating most users isn't good enough. You want to accommodate all users, so you need to make sure that the user can configure attributes like colors, fonts, system metrics, sounds, and timings. Fortunately, Windows itself provides most of this configurability, so all your program has to do is honor it. The Designed for Microsoft Windows logo requirements are an excellent resource for accessibility information.

TIP
Provide configurability to make your program accessible to all users.



Developing User Interfaces for Microsoft Windows
Developing User Interfaces for Microsoft Windows
ISBN: 0735605866
EAN: 2147483647
Year: 2005
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net