In Part 1 of the 10 Best Practices for Managing Software Updates and Upgrades blog, I shared the first five best practices, including:
- Clearly differentiate update vs. upgrade processes
- Make the fulfillment process for paid upgrades and on-maintenance upgrades the same
- Make the software upgrade process a PULL process, not a PUSH process
- Make upgrades available electronically (default) with an optional physical delivery (for some countries with lack of connectivity)
- Provide customers a website where customers can find their maintenance coverage for all their products
Here are the Remaining 5 Best Practices...
- Notification of upgrade availability should be extensive to ensure that customers on maintenance are aware of the newest release
Publishers want their customers to upgrade to the newest version (reduces support costs) so making sure that customers are aware of the new version is important. Some approaches I've seen:
- Provide a self-service "sign up for upgrade notification" mechanism
- Email all eligible customers as soon as the new release is available
- Mark the license entitlements with the new version on the entitlement management site
- When generating new licenses keys, ask the user if they want keys for the old version or the new version. Provide a link for more information about the new version.
- Provide on-the-desktop messaging ("new version is now available")
Provide in-product messaging ("you are eligible for new version")
Put major version numbers in license keys
For most products, customers are cautious about upgrading. By forcing them to get a new license key for the new versions – vendors are:
- Enabling customers to easily see what version is being used (this is key for SAM practitioners so that they can validate version compliance)
- Tracking version adoption (affects new roadmaps, support costs, etc.)
Another "upgrade no-no" story: a vendor issued a new version which had an extremely bad bug (data destroying bug) but because they didn't track versions in their licenses, they had a very hard time identifying who should be notified of this issue
- Change licenses during the upgrade to correctly reflect the new licenses/configurations.
For complex products, it is not unusual for a product manager to merge licensable features or add new freely available licenses from one version to another. By providing a correct license with the new features, vendors are helping customers understand what rights they have.
- Enabling changing licensing technology (optimizing the customer experience)
- Make the versions available when they were on maintenance, even after customers come off maintenance
This should be standard policy – if a customer paid for maintenance for 3 years, they should have access to 3 years of versions – even if they are no longer on maintenance.
(i.e. If the customer had a current/valid maintenance plan for years 2009, 2010 and 2011 then went off maintenance…they should still have access to any versions and updates released in 2009, 2010 and 2011, but if they are not on maintenance in 2012 or 2013—they should not access to any versions/updates released in 2012 or 2013)
Provide ability to get older versions/older license keys as long as the products have not entered an End-of-Life (EOL) status (support downgrades)
It's a fact of life that customers may upgrade and then decide that the new version doesn't suit them yet. Vendors need to support downgrades.
- Organize for downloads that are less than 2 gigs and 1 gig is even better
There should be a balance between a user having to select a bunch of items to download (not ideal because he/she might miss a critical component) and downloading huge amounts. Test your experience over a DSL or even smaller line (think China, where the average user has access to 256K download speeds)
What did I miss? What best practices have you implemented in your software update and upgrade process. Many of the best practices that I shared require a great software licensing solution and a great back-office entitlement management solution to provide a great customer experience.