We all understand, it's very important to have a smooth install experience. If the product doesn't install correctly and work in the first attempt, chances of someone looking into the product is very slim. We understand that bit completely and spent weeks getting the installer perfect. The challenge was purely due to the various combination of things we need to work out (Different OS's, IIS, 64/32 bit registry, configuration files etc etc). We use WIX as our installer technology. Installer programing is a completely different breed. It's convention based i.e you need to remember lot of pre-build properties names, UI sequence, Execute Sequence, taking care of rollback, orphaned files, UI development is 1990's etc. Something very simple to do in .NET/C# may drive you crazy on an installer program.
We perfected the first time installation, but until now we didn't have a good upgrade story. Upgrade is even more complicated. One simple example, you will find it hard to get a decent document explaining how you can do database upgrade smoothly. We reached a point where we can't ask our existing users to uninstall and reinstall the application all the time.
BizTalk360 version 3.1 (due in Jan 2012) will be the first version to support smooth upgrade. We invested in Red Gate SQL Compare to create the difference in SQL scripts and we got our internal logic to apply the scripts in right order. We also worked on preserving customer specific configuration changes in the config files during the upgrade. We also support command prompt quite installation and made some subtle changes to installer UI to make it keyboard only installation.
I personally wish I can blog about all these things in detail, hopefully one day!
Join us on @biztalk360 | http://facebook.com/biztalk360 | http://getsatisfaction.com/biztalk360