Vendor lock-in isn't the contract — it's the exit cost
In 2021, Tesco did exactly what everyone tells you to do. It didn’t rent. It bought — perpetual licenses for vSphere Foundation, Cloud Foundation and Tanzu, with support running through January 2026 and renewal options out to 2030. Perpetual. In writing. Owned.
In June 2026, Tesco started moving 40,000 server workloads off VMware, and sued Broadcom for over £100 million.
That sentence is the most useful procurement lesson of the year, and it has almost nothing to do with virtualization.
What “perpetual” turned out to buy
Broadcom acquired VMware in late 2023 and reshaped how the software is sold, moving customers off standalone perpetual-license support and toward subscription bundles.
Tesco’s filing alleges it was then presented with a proposal worth $23.5 million — a 175% increase over its 2021 agreement, and a 350% jump for its mainframe services — with a 19-day notice period on one offer. The lawsuit calls the conduct “abusive” and the increases “manifestly unfair and excessive,” and says Tesco was “forced to incur material costs to procure alternative solutions with reduced functionality.”
Two honest caveats, because this is a live case and I’d rather you trusted the argument than the outrage: those are Tesco’s allegations. Broadcom denies them, and the matter isn’t expected in court before late 2027. I have no idea who wins.
Here’s why that doesn’t weaken the point — it is the point.
Tesco didn’t wait for the verdict
Look at what Tesco actually did. It didn’t stop at suing. It started migrating, in parallel, with a deadline of end-2027. It decided its own exit was worth more than its own court case.
Sit with the position Tesco was in. This is one of Britain’s largest companies. It had the agreement in writing. It had renewal options to 2030. It has a legal department that can file a nine-figure claim and wait two years for a hearing without blinking.
None of that was leverage. The 40,000 workloads were.
Tesco had it in writing, had renewal options to 2030, and can afford to sue for £100 million. None of that was leverage. The 40,000 workloads were.
Your vendor prices to your exit, not to your contract
This is the mechanism underneath every lock-in story, and once you see it you can’t unsee it.
A vendor setting your renewal price isn’t really asking “what did we agree?” It’s asking “what will they do if we say no?” And the honest answer is a number: how long would it take you to run somewhere else? That number is your negotiating position. Everything else — the contract language, the relationship, the years of loyalty — is commentary on it.
Tesco’s number was about two years. So the quote was priced against two years, and a 19-day notice window was survivable for the vendor, because where exactly was Tesco going to go in 19 days? A short notice period is only a threat if you need more time than it gives you.
Note what this means: the contract didn’t fail Tesco because it was badly written. It failed because a contract is a promise about terms, and the exit cost is a fact about physics. When the two disagree, you find out which one you were actually relying on. That’s the same lesson as Terraform not making you portable: the artifact that describes your infrastructure is not the same thing as the ability to move it.
Being small is the advantage here
Here’s the inversion, and it’s the whole reason I write for small businesses rather than for Tesco.
You are not going to sue anybody for £100 million. You don’t have a migration department. On every axis that looks like power, you lose. And on the only axis that priced this deal, you win — because your exit isn’t 40,000 workloads and two years. It might be a weekend.
But only if you kept it that way. And that’s the catch: an exit cost doesn’t announce itself when it grows. Nothing breaks. There’s no alert. You just adopt one convenient managed thing, then another, and each one is individually a good decision, and two years later the honest answer to “how fast could we leave?” has quietly gone from a weekend to nobody knows. That’s the same silence as the cloud waste that’s nobody’s job — a number nobody owns, drifting in one direction.
Your leverage isn't your contract. It's how fast you could leave — and that's a number you can measure this week.
Keeping the number small
None of this requires leaving anything. It requires being able to. Concretely, the things that keep an exit cheap:
- Boring runtimes. Software that runs anywhere — a container, a plain Linux box — costs nothing extra today and keeps your options open. Exotic managed runtimes charge you the difference later, in a currency you can’t see at signup.
- Data you’ve actually exported. Not “they offer an export.” An export you have personally run, into a format something else can read. The gap between those two is where people discover the export omits the thing they needed.
- Config as code. So that “stand it up somewhere else” is a task, not an archaeology project.
- A restore drill you’ve done once. The single highest-value hour on this list. Rebuild it somewhere else, for real, and time yourself. Now your exit cost isn’t a guess — it’s a measurement, and you can put it in front of the next renewal quote. Who runs it at 2am is the same discipline pointed at a different failure.
- Say no to the last 10%. The deepest lock-in is almost never the core product. It’s the one proprietary convenience at the edge that nothing else replicates — and it’s usually worth less than it costs.
Do those and the renewal conversation changes character completely. You’re not arguing about fairness. You just have somewhere to go, and both sides know it.
What “own” actually means
I’ll hold myself to this too, because the word gets abused constantly in my industry — including by people selling what I sell.
I don’t own my servers. I rent them, from a provider, like everybody else. I’m not going to tell you that renting a box in France is ownership and renting one in Virginia isn’t. That’s marketing, and you’d be right not to trust it.
What I own is the ability to leave in a weekend: standard runtimes, data I’ve exported myself, config in a repo, a restore I’ve actually rehearsed. That’s it. That’s the whole asset. And it’s the only kind of ownership that has ever priced a renewal in my favor — including against the vendors I like.
Tesco owned its licenses. It says so in the lawsuit. It’s leaving anyway.
If you can’t answer “how many weeks to move off our biggest vendor?” with a number you’d defend, that’s the number your next renewal is priced against — and you’re the only one at the table who doesn’t know it. Send me your stack and I’ll tell you where your exit is expensive and what the cheapest fix is. Every message comes straight to me — I read and reply to each one myself, usually within a business day, and what readers send shapes what I build next. Send it over — free, within a day.