Building8 min read

Taking over code from a vendor: the checklist before changing providers

Taking over code from a vendor means handing a new team software it did not write, to maintain and evolve it. For companies changing providers: what to recover, what the incoming team must check before promising, and why a takeover is not a rewrite.

Cover reading Taking over code from a vendor, on a sand background with an orange disc.
Table of contents

Why do takeovers go wrong?

The provider who built your tool no longer answers, or answers too late, or too expensively. You look for someone else. And you discover that you do not have the code, that the server is in their name, and that nobody knows how it deploys. It is the most frequent scenario we meet, and it is almost always avoidable.

Taking over a provider's code means entrusting a new team with software it did not write, to maintain and evolve it. It goes well when three things come together: you hold what belongs to you, the incoming team looked before promising, and nobody talks about rewriting everything on day one.

The cost of code nobody understands, the first cost item in maintenance, is detailed in application maintenance: the real cost.

What should you recover, and in which order?

A short list, to request in writing from the outgoing provider. If you are still under contract with them, do it now, while the relationship is cordial. These are your assets.

What must the incoming team look at before promising?

At Figue, we look at the repository and access on the first call, and say straight away whether we take it on. Here is what we look at, and what each point tells us. Ask the same of any provider.

01

The stack and its age

Which languages, which frameworks, which versions. A common, up-to-date stack is taken over in days. An exotic or abandoned stack can be taken over, but every intervention will cost more, and that has to be said beforehand.

02

Dependencies and known vulnerabilities

How many libraries, how long without updates, how many with security alerts. It is the first securing workstream, and its size is measured in an hour.

03

Tests, or their absence

If there are tests, we can change things without breaking them. If there are none, every change needs a manual check, and the first requests will be used to write tests on the flows that matter.

04

Deployment

Automated and reproducible, or manual and in someone's head? As long as we cannot deploy, we cannot deliver. It is often the real first request.

05

Readability

An engineer opens three random files and tries to understand what they do. If they can, the takeover will be smooth. If not, we say so, and we count the understanding time as time, not as a mystery.

“We never promise on a repository we have not opened. One hour of reading saves three months of bad surprises, on both sides.”

Our rule before any takeover

Takeover or rewrite: the wrong question for day one

Almost every incoming provider offers to redo everything. It is more comfortable for them (they know their own code) and seemingly more reassuring for you (a blank page). It is also, in the vast majority of cases, the wrong decision at the wrong time.

A rewrite costs the price of the software a second time, while the old one keeps running and asking for fixes. It reproduces known bugs and adds new ones. And it relies on an understanding of the business the incoming team does not have yet. The right order is the reverse: secure, understand while evolving, and decide to rebuild a part, later, with facts.

The two approaches, side by side
CriterionProgressive takeoverRewrite
Starting costA few securing requestsThe price of a piece of software
RiskLocalised, one request at a timeGlobal, at switchover
Value for your usersFrom the first deliveriesAt the end, if all goes well
When it is the right answerAlmost alwaysDead stack, or code that cannot be run

The detail of that trade-off, module by module, is in technical debt: rebuild or evolve.

How does a takeover go at Figue? The steps, timings indicative

To make it concrete, here are the first steps of a takeover, for a client arriving with an existing product. These are ordinary requests in the queue, that you order like any other. Their duration depends on the state of the code and on how fast access comes in: timings are indicative.

01

Step 1: everything in your name

Repository, hosting, domain, third-party accounts, secrets. We gather, transfer, and document where everything is. You leave with a page listing your assets and their access.

02

Step 2: deploy and monitor

A reproducible deployment, a preview to approve, an alert when an error appears in production. From then on, we can ship without holding our breath.

03

Step 3: secure, then the first evolution

Priority security updates, tests on the flows that make money, and already the first request that matters to your users. The takeover ends when it becomes invisible.

The model carrying these requests, one at a time, is described on the unlimited development page.

Frequently asked questions

Taking over code, in questions

What we get asked when a client arrives from elsewhere.

My provider refuses to hand over the code. What can I do?

Reread the contract: if the transfer of rights is in it, they are bound to hand over the code, and a formal notice is often enough. If it is not, negotiate it, possibly against the balance of an invoice. Without code, the only path is a rewrite, and it is better to know before choosing the next provider.

Do you take over any technology?

Most of them. We look at the repository on the first call and answer straight away, including when it is no. A rare stack can be taken over, but we tell you every intervention will take more time.

How long does a takeover take?

The first requests are used to put everything in your name, deploy properly and secure. These are ordinary requests, handled one at a time; their duration depends on the state of the code and on how fast the outgoing provider hands over access. We do not promise a date, we show progress.

Should I tell the former provider?

Yes, and as early as possible. A cordial takeover, with a one-hour handover, is worth weeks of investigation. Ask them for access and a deployment demonstration while you are still a client.

What if the code is really bad?

We tell you, with examples, and we estimate what it costs to keep it alive as is against what rebuilding a part would cost. The decision is yours, module by module. Bad code that runs is often worth more than good code that does not exist yet.