I ran across this comment today on the Acresso web site
“According to IBM, 28% of application failures are related to installation and configuration errors. These errors, often caused by homegrown or out-of-date setups, can significantly increase your support costs while frustrating customers.”
I have spent over 5 years improving the installation and configuration experience for IBM products. So it is reassuring to see the importance of my previous job. However it is interesting how many companies don’t invest in the install until customers complain. I have always seen this as the first impression a customer gets and it better be good.
Clearly some systems are complex. They require multiple products to work together and install into a seemless package. Large business users also want to customize the final configuration to integrate with other parts of their data center. So options become numerous and some environments take weeks to install. However that does not excuse missing some of the simplest concepts.
- Minimize options – Don’t prompt the user for information that can be detected by the installer. If you need to write code to determine where some prerequiste is installed, then do it. If the product only supports a detected value, then display the value in a non editable field. You don’t want a user entering bad data.
- Prefill options – When a reasonable default is known, then prefill fields. This allows the user to review the default and continue quickly. However the data needs to be smart. Use system information to get intelligent defaults. For example, if asking for a hostname, then use code to detect the hostname. When prefilling options, avoid hard coded defaults. It looks bad to have an installer running on Linux default the install location to C:\Program Files\MyProduct.
- Validate options – For any user supplied input (and detected input), validate the data to ensure it matches what is expected. If the user is entering a username and password, verify that it can log in and has the necessary permission to do the appropriate tasks. The earlier the validation is done, the better. Users do not like when an install fails at 80% after 30 mins of waiting.