We have identified all potential areas where an upgrade can cause pain and have tried to minimize them.
We have tested all data migration paths.
We have defined the manner in which any customer with a previous version of the system can upgrade to the current version.
We have defined how long the system will be down because of an upgrade.
We have provided detailed instructions on how to completely uninstall an upgrade and convert all data to the previous version.
We have provided tests to confirm successful upgrades and to identify any areas in which the upgrade may have failed.