The complexity, time, cost and resources required to upgrade your software will depend on a variety of factors including whether your site has been customized – either via plugins, with changes to the core system or by an integration with another system.
There are, however, a set of steps and considerations an organization can undertake to help ensure a successful software upgrade.
1. Identify and engage with your stakeholders
Remember to include both internal and external stakeholders. End users, trainers, content developers, administrators, support and hosting teams, QA and testing teams, system owners, external suppliers and service partners. Work out how each group interacts with the system, how an upgrade will affect them and what level of ongoing engagement they might require.
2. Undertake change control planning
Besides the technical work involved in upgrading your system, effective change control will probably be the biggest challenge surrounding a software upgrade. Keeping the balance between adequate communication and consultation, and overwhelming stakeholders with detail can be difficult. Consider assigning a change control manager to the process and include developing a communication plan and (at a minimum) a high-level project plan as deliverables for that role.
3. Perform a site review
Performing a site review involves taking a stocktake of any and all customizations within the site. Identify all bespoke developments and dig out the specifications and other relevant documentation relating to this work. Assess each development for upgrade or reimplementation. Is this customization in the core system or has it been developed as a plugin? Is this feature (or something very similar) now available in the new software version? Is the current development or the business need for this feature still applicable? Is your software integrated with any other systems or applications?
4. Establish upgrade requirements
Based on your site review, do you need to redevelop customizations and integrations or upgrade bespoke plugins? Do you need to make allowance for historical data from those customizations? Can you upgrade to the latest version of the software from your current version or do you need to upgrade to a more recent version first? Check the technical specifications of the new software – do you need to upgrade, install or purchase anything as part of the upgrade? Do you also need (or want) to upgrade your theme/design or will it work in the upgraded version?
5. Make an upgrade plan
Who will perform the upgrade? What needs to be upgraded? What needs to be redeveloped? Does anything need to be newly developed? How will the upgrade be performed? Is there any guidance on the upgrade from the software supplier? What time, people, resources and budget do you need to apply to the upgrade process?
6. Make a roll-out plan
When will the upgrade be performed? Will there be an outage? How long will it be? What sort of messaging needs to go out to stakeholders? What will be the implementation process? What is your roll back plan?
7. Back up everything
Store that backup somewhere very safe and secure. Back up again, and store that file somewhere else safe and secure.
8. Run a trial upgrade
The best way to know if any issues will crop up during the upgrade is to try upgrading a copy of the live site. It will identify any code and/or database conflicts and where further work will be required. Allow plenty of time for this step and engage with relevant stakeholders.
9. Upgrade a staging site
Once the technical aspect of the upgrade has been completed and any issues have been resolved, it’s time to upgrade a copy of the live site to a staging or testing environment. Remember to switch off any email processes so users aren’t messaged as part of any testing and make sure the staging site is only available to permitted users.
10. Perform testing
This includes functional, non-functional and technical testing, quality assurance, data integrity, security, performance and theme/design testing including browser and device testing. Vital to the testing process is a shared mechanism for capturing and tracking issues. Issues should be described in detail, have a unique identifier for tracking purposes, have a current status and be allocated to someone until fully resolved. It is also important to allow time for, and manage expectations around, user acceptance testing. While an upgraded system might be functional, it might not fulfill all of the business requirements it was implemented to address.
11. Undertake configuration
With your freshly upgraded staging site now deployed, tested and issues resolved, site administrators will need some time to ensure any new features and functionality introduced by the updates are configured correctly. This might involve turning on or off features, or updating settings to best accommodate your users.
12. Prepare documentation
Preparing help files or user manuals as well as technical documentation detailing any custom developments or deployment requirements, is vital to the success of your current upgrade as well as any future upgrades. Leverage any documentation or training provided by the software supplier or your technical vendor and highlight the differences between versions to emphasize important changes in the new release.
13. Provide training
Training the right people at the right time not only requires adequate training resources but adequate planning. Trainers and the trainees need to be available at the same time, in a suitable space. The amount of training, the type of training and the length of training will depend on the end-user facing functionality and feature changes within your upgraded software. Leverage any training provided by the software supplier and encourage and even incentivize your users to complete training.
14. Prepare your infrastructure
If your upgrade introduces a number of significant changes or you are timing the software upgrade with a re-release of the system, you will need to ensure your hosting setup will be able to cope with any increase in access and usage – if only for a short period of time.
15. Go live
You have a few options around your go live including a complete switchover or running the old system and updated system in parallel for a period of time. Refer back to your roll out plan to make sure everyone knows their role and responsibilities for the release.
16. Offer support
There will probably be an initial demand on support resources after an upgrade has been released as users become acquainted with the new system. Changes to ongoing support might be required as a result of new system features and functionality or changes to processes and policies. Ensure the support team has enough documentation, training and coverage to meet demand going into the upgrade release.
17. Perform an upgrade review
Review the upgrade project in retrospect to identify what worked well and where improvements can be made for your next upgrade.
18. Celebrate!
Success is an often forgotten step in any project. Take a step back and enjoy and appreciate the effort you and the team have put into your upgrade as well as the end result – an updated site, serving your users with new functionality and features to use and enjoy.