Insight · Upgrades

Recovering an instance several releases behind

Deferring an upgrade does not postpone the cost. It raises it, on both ends at once.

Editor's note for Suresh: this draft is written from general ServiceNow practice, not from your specific engagements. Add your own examples where they fit — a real anecdote from HPE or T-Mobile will do more than anything here. Delete this box before publishing.

An instance several releases behind is one of the most common situations in ServiceNow, and one of the least discussed, because nobody wants to write the case study. The pattern is consistent: an upgrade slips once for a good reason, the next one is harder, and after two or three cycles the work has grown large enough that it needs its own budget — which is exactly when it stops getting approved.

It is worth being precise about why this compounds, because the shape of the problem determines the shape of the fix.

Why each deferral costs more than the last

ServiceNow upgrades do not overwrite customizations. When you have modified a record that ships with the platform, the upgrade engine detects the conflict and skips that record, leaving your version in place and flagging it for review. That behaviour is protective and correct. It is also cumulative.

Every release you skip adds its own set of skipped records. Meanwhile, development continues on the older base, adding more customizations that will themselves be flagged next time. The review queue grows on both ends at once: more releases to catch up on, more customizations to review per release.

The result is a reinforcing loop rather than a linear backlog. Effort rises exactly as appetite falls, and eventually someone says the instance cannot be upgraded. It almost always can. What it cannot be is upgraded casually.

What actually makes recovery hard

In practice the difficulty is rarely technical.

  • Nobody knows why the customizations exist. The person who made them has moved on, there is no comment, and the requirement they satisfied may no longer apply. Reviewing a change you cannot justify is slow, because the safe default is always to keep it.
  • There is no regression pack. Without a defined set of things that must still work, "did the upgrade break anything?" has no answerable form, so testing expands to fill whatever time is available.
  • Ownership is split. The platform team owns the upgrade, the process owners own the outcomes, and neither can sign off alone.
  • The upgrade has become a container for other work. Because it is the only funded platform project, every deferred enhancement gets attached to it. That is how a six-week upgrade becomes a nine-month programme.

A method that finishes

1. Inventory before you plan

Before scoping anything, get the actual list: which records are skipped, which are customizations to platform records, which are genuinely custom applications, and which are configuration that will migrate cleanly. The platform tracks this. Most recovery plans fail because they were sized from an estimate rather than an inventory.

2. Classify ruthlessly, in three buckets

Every skipped record goes into one of three:

  • Revert. The customization no longer serves a purpose, or the platform has since implemented the capability natively. Take the out-of-box version. This bucket is usually much larger than teams expect, and every item in it permanently reduces future upgrade cost.
  • Re-apply. The requirement is real and still current. Re-implement it on the new version — ideally in a way that does not modify a platform record next time.
  • Retire. The requirement is gone. Remove it and the process that depended on it.

The classification decision needs a process owner in the room, not just the platform team. That is the meeting people avoid scheduling, and it is the one that determines the size of everything downstream.

3. Build the regression pack first

Define what must still work — the handful of end-to-end flows the organization would actually notice: raise and resolve an incident, submit and fulfil a catalogue request, run the integrations that feed other systems, produce the reports leadership reads. Automate what you can. This is the artefact that lets you say the upgrade is done, and its absence is why upgrades drag.

4. Get current before you improve

This is the discipline that most often gets abandoned under pressure, and abandoning it is how recovery projects lose their end date. The upgrade delivers no new functionality. None. Enhancements queue behind it and are delivered afterwards, on a current platform, at normal cost. Bundling them in makes the upgrade unfinishable and gives its failure a much bigger blast radius.

5. Use the instance chain properly

Clone production down before you start, so the sub-production instances reflect real data and real customizations. Upgrade the lowest environment first, work the skipped-record queue there, then promote. Resist the temptation to fix the queue directly in a higher environment because it is faster; that is how you end up unable to reproduce your own upgrade.

Then hold the cadence

Recovery is worth little if the loop restarts. Two changes prevent that.

Schedule the upgrade before you need it. A date already in the calendar is deferred by exception; a date to be arranged is deferred by default.

Reduce what future upgrades will have to review. Every customization that could have been configuration, a scoped application, or a supported extension point is a line item in the next review. That trade is invisible when the change is made and expensive at every upgrade thereafter.

A note on vendor support. ServiceNow publishes a support lifecycle for its releases, and instances that fall outside it lose access to fixes and, in some cases, security patches. If you are several releases behind, check your current version against the published lifecycle before planning — it may move the work from "should" to "must", and that materially changes how the funding conversation goes.

Where we usually start

On an instance that has fallen behind, the first engagement is normally an inventory and classification pass rather than an upgrade. It produces the actual list of skipped records, a first-pass revert / re-apply / retire classification, a proposed regression pack and a realistic sizing. Two useful things follow: you find out whether the job is six weeks or six months before committing, and the revert bucket often turns out large enough that the next upgrade is materially cheaper regardless of who performs it.

Written by Suresh Ganapathy, founder of Tessivant.

Talk to us about your instance →