It is a source of endless astonishment to me how many software companies will invest huge sums of money to craft their perfect product, then fail at the last hurdle by shipping it using an install program that doesn’t work properly.
The Windows Installer (.msi) format in particular is a fabulous software install system that, when properly executed, allows me (the system administrator) to automatically install the required software on hundreds (potentially thousands) of computers with no manual intervention.
Sadly, the vast majority of companies use mangled versions of this system that incorporate unreliable third-party addons, often to do things that Windows Installer itself is capable of without any help. Even when they don’t use these, the open nature of the Windows Installer format means that a variety of tools exist to create .msi files, and many of them do not follow the specification correctly.
This often means that while the software will work fine for a manual, single-computer install, it performs unpredictably when used for an automated install. At best, the install will not work correctly. Our Adobe Acrobat deployments tend to have about a 5% failure rate even though the install is identical for every computer. At worst, it can stop the entire computer from booting up. I once had to remotely kill the Flash Player plugin setup on more than 200 machines in one day because it popped up an invisible modal dialog box at system boot.
As a result, I have spent the last few years becoming intricately acquainted with the internal format of Windows Installer files, the various stupid ways in which systems like InstallShield muck them up, and the various ways in which they can be fixed.
On rare occasions, an installer will be so bad I will start over from scratch and build my own. I’m not prone to blatant product recommendations, but I have been using the freeware version of Advanced Installer for a couple of years now, and it’s sheer reliability cannot be ignored. I have never managed to create an installer that did not work first time, which only begs the question as to why so many install programs I deal with work so poorly when making a good one is so easy.