Upgrading an enterprise application can be a stressful and time-consuming proposition, requiring coordination and input from lots of teams across your organization. Propper planning is of utmost importance to ensure that a system-wide software suite is upgraded efficiently and quickly with minimal risk to a business process and the end-user community, and oftentimes requires several project plans, timelines, architecture diagrams, and lots of meetings to ensure success.
If you’ve made it past all of these sometimes daunting efforts…congratulations! The most difficult part of the upgrade process is behind you! However, now is also the perfect time to reflect and ensure that your organization is getting the most out of the upgraded software suite and planning appropriately for the future while things are still fresh. We’d like to share a few tips and recommendations with you that Shamrock has garnered through our 20+ years of software upgrade experience. These will help ensure that your organization is making the most of out the newly upgraded software, and best preparing for the future.
Recommended System Maintenance & Upkeep
Fine-tuning and ensuring that regular maintenance is being performed on your upgraded software is one of the most critical pieces of an upgrade process. A software upgrade can cause data in a software’s database to become disassociated and take longer to return for an application query. Real-time antivirus scanning can also negatively impact an application’s performance on a server environment. Server or network inconsistencies can cause confusion and uncertainty should an application require future maintenance. Yikes… But fear not – ensuring that you’ve considered the following points will help with best optimizing and protecting your newly upgraded software:
Implement a database maintenance plan, ensuring that appropriate backups are taken on an hourly, nightly, and weekly basis, and that regular index rebuilds and statistics updates are running on a weekly basis. Ola Hallengren provides a great free maintenance plan that can be easily implemented on SQL databases.
Backup server environments daily. Modern virtualization makes taking and storing a server snapshot very easy, and can be automated.
Exclude any application directories and binary files from real-time antivirus scanning on a server environment. This can be configured within the Antivirus software itself.
Set up monitoring and alerts on critical application services and processes – should an application go offline, an email alert can be sent to your organization’s stakeholders to begin providing immediate resolution.
Perform a system health check – a deep dive of all application and infrastructure components, ensuring they’re able to facilitate the software successfully. Contact Shamrock if you’d like assistance with performing a health check and ensuring your software is operating at full capacity.
Plan for High Availability - Now or in the Future
Most enterprise-level applications support high availability, which helps ensure that the application will be available should one or several servers go offline for some reason. Usually this high availability is achieved via an Active-Passive, or Active-Active configuration, and requires that some additional setup and coordination be completed in the server environment. If the software becomes unresponsive, another identical copy of the software can be brought online with minimal downtime (Active-Passive), or all application traffic can be redirected to another healthy server with virtually zero downtime or interruptions (Active-Active). Review your software’s documentation for guidance on configuring a highly available system, and note that some additional licensing costs can be incurred if pursing a highly available architecture. Oftentimes an upgrade and/or server migration is an ideal time to implement high availability, but this can also be completed outside of other system work.
Software and Environment Clean-up
Upgrades can require input from multiple individuals and teams, each of which may have their own procedures and methods. This can cause some inconsistencies on the server environment regarding where components are installed or reference materials are located. Hunting through countless folders for that one needed file is no fun – here are a few things you may check for consistency to avoid that headache:
Server naming conventions (name a related group of servers similarly and include a specific application function in a server name to avoid future confusion). Keep in mind that changing this could negatively impact already-existing software.
Software installation locations (ensure all components are installed to a similar drive and installation folder, again to avoid future confusion). Keep in mind that changing this could negatively impact already-existing software as well.
Create a reference directory on the server, containing the following – this will be an easy place for internal or external resources to quickly find pertinent information they may need:
Any old backup files from the previous version
Backups of new files
Relevant software documentation
Service account, external connection, or testing information (but remember that passwords and sensitive data should always be made secure and never stored on a server environment)
Use separate service accounts across Production and non-Production environments – should an account get locked out or disabled, the impact to other environments or applications will be minimized.
Perform an audit on what users and accounts have access to the application servers and database and remove or disable any local or domain accounts that do not have an explicit need for accessing either.
Documentation and Reference Materials
As we discussed earlier, a proper upgrade project entails lots and lots of documentation. Here are some things you may want to keep, create, and record for posterity (and the love and adoration of all those following in your footsteps). These can be especially useful for internal teams or outside consultants during troubleshooting efforts or for future planned enhancements:
Server architecture diagram – this should note where each software component is installed and the appropriate/necessary server resources to facilitate optimal software functionality. These can be as fancy or minimal as you’d like, but generally the more information that can be provided here, the better.
Upgrade project plans (technical or otherwise) – ideally containing a detailed list of all steps performed during the upgrade, along with issue resolutions and other useful notes.
Project timelines – an overall project timeline can be helpful, but if possible, record how long each upgrade step takes as well. This is great information to reference for next time!
Testing or validation plans – any documents that end users might have referenced when validating the upgraded software are great to save.
Status reports – if created or provided during an upgrade project, these can give further insight into what steps were taken during an earlier upgrade project.
Download and save copies of pertinent application information – installation guides, technical recommendations, best practice guides, etc. which can often be found on a vendor’s website.
Lastly, it’s always a good idea to record changes or updates made during troubleshooting efforts for later reference.
Plan for your next upgrade!
It’s never too early to start planning for an upgrade. Depending on a software vendor’s release cadence and your organization’s need/desire to remain current with a piece of software, there may be some considerations to make sooner rather than later. Here are a few thoughts and notes to help best prepare your organization:
Organize the documentation noted above as thoroughly as possible – it could mean the difference between a great upgrade project and a stressful one.
Keep informed on what new features are in development. Yearly conferences, regional user groups, the vendor’s website, or message boards can be a great source of information for what’s coming up next that may benefit your organization.
Talk with end users and find their pain points. Perhaps they don’t have the proper software endpoint, lack appropriate knowledge, or encounter other frustrations that could be addressed in a future release or with a bit of one-on-one guidance.
Keep your team’s knowledge sharp – most software companies offer specific administrative or technical training, which can empower your team to meet your organization’s business needs and plan properly for a rainy day.
If you need assistance with a future upgrade project or any ECM needs, consider Shamrock Solutions for your upgrade needs or consulting services. We are always excited to chat and help provide customized planning and solutions.
Again, congratulations on completing a successful upgrade project! Utilizing the tips and pointers included here will help ensure that your organization is in the best possible position to make the best use of your newly-upgraded software, avoid unnecessary risk and interruptions, and ensure that you’re able to plan for and support your next upgrade project successfully.
Shamrock Solutions employs a full upgrade team with over 20 years of upgrade experience, and we would be more than happy to help provide guidance and work with your organization on an upgrade project. Please contact us for more information!
Director of Marketing