Safeguard
Developer Tools•

Should you run a timeboxed spike before a major upgrade?

Yes for most major upgrades. A two to three day spike turns a guess into an estimate. Here is what to test, what to record, and when to stop.

Safeguard Security Team
3 min read

For most major upgrades, yes. A short, timeboxed spike of two to three days turns a vague estimate into one grounded in your code. Try the upgrade on a branch, record what breaks, and stop at the timebox. The output is a plan and a size, not a merged change.

What a spike is for

Major upgrades hide their cost. Release notes list breaking changes in general, but not which ones hit your code. A spike answers a narrow question: how much work is this, here, for us?

It does not aim to finish. If the spike finishes the upgrade, treat that as a bonus and still write down what you learned.

When to run one

SituationSpike?
Patch or minor bump, tests passNo, just merge it
Major bump with a migration guide and good testsShort spike, one day
Major bump touching a core frameworkYes, two to three days
Several majors behindYes, and plan stepwise, see below

If you are many majors behind, our guide to upgrading one major at a time pairs well with a spike for each step.

How to run it

  1. Set the timebox first. Write it in the ticket. Two or three days is typical. When it ends, you stop.
  2. Use a throwaway branch. Bump the dependency, install, and run the build.
  3. Run what exists. Unit tests, integration tests and a basic smoke test. Note what fails, and why.
  4. Search for deprecated APIs. Compiler warnings, linter rules or deprecation output show where your code uses removed features.
  5. Sample, do not fix everything. Fix one example of each class of failure to learn how hard the fix is.
  6. Check the ecosystem. Do the plugins and companion libraries you rely on support the new version? A single blocked plugin can set the schedule.

What to record

Keep the write-up short and structured:

  • Number of failures, grouped by cause.
  • One representative fix for each cause, with time taken.
  • Blockers outside your control, such as an unsupported plugin.
  • A revised estimate in small, medium or large, with a range.
  • A recommendation: proceed, split into steps, defer, or replace the dependency.

What to decide afterwards

The spike should end with a decision someone can sign. Four outcomes are common:

  1. Proceed as planned. The estimate holds.
  2. Split. Break the work into smaller upgrades, each shippable. See major upgrades in small steps.
  3. Defer with a reason. The cost is high and the risk low this quarter. Put it on the deferred list.
  4. Replace. The dependency is the problem, not the version.

Guard against creep

Spikes grow when nobody stops them. Put a second person on the check-in at the halfway point. If the spike is already over budget, ask whether the surprise is the finding.

Where Safeguard fits

Safeguard's SBOM and dependency scanning shows which services use the library, so your spike can name every affected team up front. A free scan is at gold.safeguard.sh/scan.

Quick check

Is a spike different from a proof of concept?

A spike answers a question about effort or feasibility and is thrown away. A proof of concept often becomes the start of the real work.

What if the spike fails outright?

A clear failure is a valid result. Record why, and use it to justify a replacement or a longer, stepwise plan.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.