Installing your software should be a pleasant experience. It shouldn't be regarded like a trip to the dentist. Let's first look at the installation process from the point of view of the user's experience.
Don't make the user jump through hoops during the setup process. Consider the following:
TIP
Avoid restarting Windows during an installation.
Notice how the Microsoft Office setup automatically detects when other Office applications are running and suggests that you quit them before continuing the installation.
Once the setup is complete, don't make the user jump through hoops to use the program. Consider the following:
Suppose that your program consists of the following items: the program itself, its help file and help contents file, the setup program and uninstall utility, an online tutorial, a readme file, release notes, a technical support document, and several data files. How many of these items should be in the Start menu? The answer is one—the program itself. Putting the other items in the Start menu adds clutter and doesn't help the user at all. How many times have you launched a program's help file from the Start menu? How many times have you done this for the readme file? For most users, the answer is never. It makes sense to use the Start menu to help the user get his work done, not for dealing with installation and technical support.
Help the user clean up the Start menu and make your program easy to find. The user shouldn't have to wade through a bunch of unused icons to find your program in the Start menu. Instead of using the Start menu to tie all these items together, use the program itself. Use the program's Help menu to provide access to all the help and technical support files. The uninstall utility needs to be registered with Windows and is accessed using the Add/Remove Programs applet in the Control Panel (and possibly the program's Help menu as well), not the Start menu. Rarely used auxiliary programs and utilities should be moved to a submenu to make the main program stand out.
TIP
Reduce Start menu clutter by not adding installation, documentation, and technical support-related files to the Start menu.
The setup program can help the user clean up the desktop as well. Don't add icons to the desktop, Quick Launch bar, or taskbar System Tray without asking. These system resources have a limited amount of space, so the user will want to reserve them for the most commonly used programs. Don't take it for granted that your program is one of these. Let the user choose.
Status-only System Tray icons should be optional and off by default. For notifications, it's better to dynamically add and remove icons to notify the user of an event than to permanently keep an icon and just change its appearance. For example, a mail icon that appears in the System Tray only when there is new mail is more effective than an icon that is always there and changes its appearance when new mail is received.
Note that adding an icon to the desktop or the Quick Launch bar is very simple, since you can drag and drop an icon directly from either Windows Explorer or the Start menu. Having to add an icon to the desktop is at worst a minor inconvenience.
TIP
Reduce desktop clutter by not adding icons to the desktop, Quick Launch bar, or taskbar System Tray without asking permission.
Respect the user. Put the need of the user to maintain control of his desktop and hard disk over your need to promote your programs and your company. Don't install things like promotional material and demos without asking permission. Don't use unnecessarily long titles for items in the Start menu, since each menu is adjusted to be long enough to display the longest item. You'll make an impression if you don't respect the user, but it probably isn't the kind of impression you want to make.
The two basic installation goals I discussed earlier were to provide the ability to successfully install and uninstall the program. But the best setup programs don't just install and remove the software; they go out of their way to help the user control his system. This is the ultimate goal for setup programs.
TIP
The best setup programs go out of their way to help the user control his system.