Skip to contentAnemo
EN
Contact

How to Hand Over an Existing Software Project to a New Team

· 6 min read

Taking over someone else's software starts with an assessment, not with code. Before agreeing a price or a timeline, a new team needs to know whether it builds, whether it is tested, where it runs, who holds the accounts, and what the previous team knew that was never written down. Handovers fail on the last of those far more often than on code quality.

This guide covers what to demand before signing, how to run the transition, and what to do when the outgoing team is unavailable or unwilling.

Key takeaways

Assess before you price

A credible assessment takes one to two weeks and needs read access to everything. It should answer:

Question Why it matters
Does it build from a clean checkout? If not, deployment knowledge lives in someone's head
Is there a test suite, and does it pass? Determines how safely anything can change
How is it deployed, and by whom? Manual deployment from a laptop is common and fragile
What are the dependencies and their versions? Two major versions behind turns updates into projects
Where is it hosted, and in whose account? Decides whether you control your own product
What monitoring exists? Whether problems are noticed or reported by users
What is documented, and how stale is it? Sets the discovery effort

Any supplier quoting a takeover without this has priced a guess. Pay for the assessment separately and own the output. It is useful whoever you eventually engage.

Secure the accounts first

Code is recoverable; accounts frequently are not. Before anything else, establish who holds and controls:

Apps published under an outgoing agency's developer account are painful to move, and the moment you discover this is usually the moment the relationship is already difficult. Where accounts are in someone else's name, transferring them is the first task, not a later one.

Extract what only people know

The largest risk in a handover is not the code. It is the years of business rules, edge cases and operational habits that were never written down and leave with the previous team.

Where a handover period is available, use it for knowledge rather than code walkthroughs. Ask what breaks regularly, what nobody should touch and why, what the manual steps are, who calls when it goes down, and what the last three incidents were.

Record these sessions. An hour of conversation contains more than a month of reading the repository, and nobody remembers it accurately a fortnight later.

Plan for a hostile or absent handover

Frequently there is no cooperative outgoing team, the relationship ended badly, or the developer has moved on.

In that case, budget more discovery and expect the first weeks to be archaeology. Practical approach: get it running locally first, then in a staging environment, then make a trivial change and deploy it end to end. That single exercise, a one-word change shipped to production, surfaces most of what you do not know about the system.

Read the code paths that run most often rather than trying to understand everything. Production logs tell you what actually gets used, which is usually a fraction of what exists.

Stabilise before you extend

Resist the pressure to ship features immediately. The first four to eight weeks should go to: getting the build and deployment reliable, adding monitoring if it is missing, patching known security issues, and writing tests around the parts you are about to change.

This is not a delay; it is what makes everything afterwards predictable. A team that starts adding features to an unfamiliar system without tests will spend the following quarter fixing regressions, and the client will conclude the new team is worse than the old one.

Agree this period explicitly in the contract, with what it delivers. A stabilisation phase nobody agreed to looks like slow progress.

Fix documentation as you go, not as a project

A documentation project produces a document that is stale in a month. Instead, write down what you learn as you learn it, starting with a runbook: how to deploy, how to roll back, what to do when it goes down, and who to call.

Keep it in the repository so it is versioned with the code. Documentation in a shared drive is documentation nobody updates.

Set expectations about the first quarter

Be direct with whoever is paying: velocity will be lower initially, some estimates will be wrong, and some parts of the system will surprise everyone. That is what taking over unfamiliar code means.

The alternative, quoting confidently and then explaining variances, damages the relationship exactly when it is newest. Naming the uncertainty up front and then narrowing it as the assessment completes builds the credibility the engagement will need.

Decide what happens to the old team

Where possible, retain the outgoing developer for a defined consultancy period: a few hours a month for three months, paid, with a clear scope. It is far cheaper than the alternative and it covers the questions that only appear once you are operating the system.

Where that is not possible, say so in the plan and price the discovery accordingly. Pretending the knowledge gap does not exist is how takeover projects overrun.

If the work prompted by How to Hand Over an Existing Software Project to a New Team leads to a funded initiative that needs product strategy, design, engineering, or integration support, Discuss Your Modernization Plan.

Frequently asked questions

What should be defined first?

Start by defining the expected result and owner for priority journeys. Then follow one real example through technical constraints, recording the data used, waiting points, exceptions, and evidence of completion. This creates a more reliable first scope than a screen inventory.

How should success be measured?

Review journey performance, incident rate, change lead time, and recovery time together. Give each measure a definition, data source, owner, review cadence, and response when it crosses a threshold. A single speed or usage metric should not hide quality, rework, or abandonment.

What evidence should be compared before choosing an approach?

For take over existing software project, compare options against the same representative scenario for scope, assumptions, dependencies, exceptions, security responsibility, delivery evidence, and live-support ownership. A feature or total-price comparison alone can hide cost-changing issues such as Blind rewrite and Hidden dependencies.

How we would work on this

Related services

Related reading

Building the product for what comes next

We would rather deliver one product that holds up than three that have to be rebuilt. That standard is the same on every project, whatever its size.

Ali Boran GazelCEO

Contact us