Skip to main content
GullySystem
A practical guide

How to Plan Software Version Upgrades

Ganesh HSStrategy and Technology, GullySystem
Practical advice · 4 min read

In this guide 6 sections
The short answer

Plan upgrades from a live inventory of every framework, library, database and operating system version in use, checked against each vendor’s own support dates rather than memory. Schedule by risk with the business owners. Test data, integrations and rollback before go-live. Then record the result.

Keep a live version and dependency inventory

You cannot upgrade what you cannot name. List the exact version of every framework, library, database engine and mobile operating system target that the application depends on, because each undocumented one becomes a research task. Slow work, wrong answers.

Treat the list as a living document updated whenever a dependency changes, and keep it beside the dependency manifest in the repository, where drift shows up in review. Never rebuild it from scratch. Name an owner for it as well, because an inventory with no owner is only accurate on the day somebody last had spare time.

Watch official support timelines, not just bug reports

Vendors publish their own end-of-life dates. Check the vendor’s page rather than memory or an old article, because support windows get extended, shortened and restructured over the years. A version nearing the end of its security-fix window is the clearest trigger for scheduling an upgrade, and better evidence than the code simply feeling old.

Consider a loan platform built on its own framework and database, plus a credit bureau API and a payment gateway, each publishing compatibility notices on a separate schedule. Four vendors, four calendars. The team must watch all four, not only the part it wrote, because any one of them falling out of support exposes the whole platform to unpatched faults.

Schedule upgrades by risk, with the business and not just IT

Not every upgrade is equally urgent. Treating them alike produces timid upgrades that leave known security gaps open, or aggressive ones that disturb a stable system for no reason, so rank them by risk. An expiring security window comes first.

Bring the business owners into the calendar, because they know the peak trading weeks, the month-end disbursement run and the days when a customer-facing outage costs the most. Dates are business decisions too. Fixing a go-live around those pressure points is as much a commercial call as a technical one, and the owner of the process should sign off the chosen weekend.

Test data, integrations and rollback before going live

Run three checks before go-live. Testing an upgrade only in isolation misses most of the real-world risk, because the failures that hurt appear where the new version meets old data or a partner system.

Rehearse the rollback with particular care. It is the step most often skipped under time pressure, because teams assume they could simply undo the change if anything broke. Untried rollback means no rollback. Do the rehearsal on a copy of production data and write down how long the return to the previous version took, so the real window can be planned honestly.

  • Existing data still behaves correctly
  • Every integration still connects and responds
  • Rollback to the old version succeeds

Record what happened and set the next review date

After go-live, write a short record. Note the issues met, how long the work took, and what surprised the team compared with the plan, so the next similar upgrade starts from evidence instead of memory. A year later, that note matters.

Set the next review date in the same sitting, as a fixed point on the calendar when the team rereads the inventory and confirms nothing nears a support deadline. Open-ended reviews never happen. Keep the register short enough that a single person can review it in an afternoon, with one row per dependency and one date per row.

Upgrade calendar and risk register

A combined calendar and register listing each dependency, its current version, its known support end date, a risk rating, and a planned or completed upgrade date. It is reviewed on a fixed schedule so upgrades are planned ahead of a support deadline rather than reacted to after it passes.

Open a blank worksheet to print

Questions owners ask

Should every update go in immediately?

No, because a minor patch with little chance of breaking anything can go in quickly while a major version with known breaking changes needs staged testing first. The exception is a security patch for an actively exploited flaw, which deserves a faster path than routine change control allows, provided a rollback is ready.

How do we plan around peak periods?

Identify your own peak windows first, such as a retail season, a month-end financial cycle or an exam period, and keep risky upgrades well away from them. Only low-risk changes that are easy to reverse belong in the weeks nearest peak activity, because a failed upgrade there costs the most revenue and the most goodwill.

Who approves an upgrade date?

The owner of the business process the software supports should approve the date, with the technical lead presenting the risk of waiting. That pairing stops a weekend being chosen only because it suits the developers’ calendar rather than the customers who need the software on Monday.

Browse all guidesBack to top ↑
Next step

Have a specific situation to work through?

This article covers the general case. Tell us what you’re actually dealing with and we’ll respond directly.

Discuss Your Requirement