Managing Configurability

If your program really needs a complicated configuration, provide functionality to help the user manage it. The following sections describe some configuration management techniques that you should consider using.

Consider Group Settings

If a program has many options, it is often helpful to gather related options into coordinated groups so that the user can deal with the options at a group level, greatly simplifying the configuration.

Let's look at some examples. Windows allows the user to use and define schemes for the desktop appearance (that is, all the system colors, fonts, and metrics) and for sounds. Windows also allows the user to set the regional settings using a single locale selection instead of having to select the individual numeric, currency, time, and date settings. In all these cases, the user can change individual settings but is more likely to change the complete set. For one last example, Word allows the user to combine a collection of text styles into a document template and apply them as a group.

Consider Previews and the Apply Button

The Background, Screen Saver, and Appearance settings in the Windows Display Options property sheet are especially useful because they give the user a quick preview of what the settings will look like. Additionally, the Apply button allows the user to see what the changes will actually look like. This two-level approach helps the user select the desired settings with a minimum amount of effort.

TIP
Always implement the Apply button in property sheets.

Consider Configuration Maintenance Features

For especially complex configurations, it is helpful to provide the user with commands to save, restore, compare, print, and lock configuration settings. Ideally, this information should be stored to a text file so that the user can directly review the information by reading the file. Such functionality would be a great help in routine configuration management, and it would be especially helpful for technical support. Users could then back up, copy, and test their configuration settings.

For example, suppose you have two Visual C++ projects, but one works and the other doesn't and you suspect the problem is in the project settings. To compare the two projects, you are forced to go screen by screen and visually compare each setting. A bit primitive, don't you think? A far better approach would be to have the program itself do the grunt work. I would especially like the ability to create a project template for various types of projects so that I don't have to remake all the same settings every time I create a new project. Then, once everything is set up the way I want it, I would like to be able to lock the configuration to prevent accidental changes.

I have never seen this type of maintenance ability provided, and I am at a loss to explain why. (OK, it would take a fair amount of work, but this is a feature for complex applications.) I think such features would be extremely helpful for programs like Windows, Internet Explorer, and Visual C++.

Consider a Settings History

If the configurations are used in such a way that individual settings are constantly changed among a small set of values, then providing a history list (typically through a combo box) is very useful. Not only does a history list make it easier for the user to make changes, but it also reduces the chance of error.

Consider Restoring Original Settings

Providing configurability carries a certain amount of risk. Windows again is a good example. The user can easily select options that make Windows inoperable. If the user selects the wrong display settings, such as the wrong video adapter, refresh rate, or monitor type, Windows may become unusable. Windows 98 allows the user to restart in Safe Mode to help diagnose and correct such configuration problems, and Microsoft Windows NT allows the user to restore the last known good configuration. Users shouldn't have to completely reinstall the program to correct an accidental configuration change.

While your program might not have settings that are quite as risky as some of those in Windows, you can give users a greater level of comfort by providing a Reset, Restore Original Settings, or Restore Defaults command. Such a command would restore the configuration either to the "factory" settings or to a configuration that is known to work for the specific computer. Beginning users as well as your technical support staff will especially welcome such a feature. Such a command is especially useful in times of panic. You need to provide the user a means to restore the original options without having to resort to a drastic measure such as completely reinstalling the program.

TIP
Consider providing a Restore Original Settings command to return the program to a configuration that is known to work.



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