Articles · Hiring

2027-03-27 13 min EN / FR

How to take over a project from another developer

Someone else built it. You need to keep it alive, fix it, or grow it. A bad takeover rewrites too early, touches production without a map, or discovers on day thirty that the domain still sits under a personal email. A good takeover buys clarity first, then control, then change.

The principle

Do not start by rewriting. Do not start by shipping a feature. Start by answering three questions in writing:

  1. What exists (code, data, accounts, integrations, docs)?
  2. Who can break what (admins, deploy keys, DNS, billing)?
  3. How do we change something safely (staging, backups, rollback)?

Until those answers are good enough, every "quick fix" is a bet against production. The same ownership mindset as a 30-minute account audit applies here, but scoped to the whole product, not only logins.

Handover quality varies. Sometimes you get a clean repository and a paid knowledge transfer. Sometimes you get a zip file and silence. The phases below still work. They compress when the previous developer cooperates, and they expand when they do not.

Phase 1: Inventory without touching production

Build a living inventory before you change behaviour. Capture at least:

  • Code: repositories, branches that actually deploy, build commands, lockfiles, private packages.
  • Runtime: hosts, containers, serverless functions, cron jobs, queues, workers.
  • Data: databases, object storage, backups, retention, who pays for the volume.
  • Identity: domains, DNS, TLS certificates, email sending domains, SSO, API keys.
  • Integrations: payment, CRM, email, analytics, AI providers, webhooks in both directions.
  • People access: who is admin where, personal vs organisation accounts, shared passwords.
  • Docs and tickets: READMEs, runbooks, architecture notes, open bugs, known landmines.

Mark each item owned / shared / unknown. Unknown is not shameful. Leaving it unmarked is. If documentation at delivery was thin, rebuild what you can from configs and history using the lens of the documentation you should demand at delivery. You are writing it for the next person, who might be you in six months.

Phase 2: Stabilize access and backups

Before refactors, make sure you can survive a bad week.

  • Get admin where it matters. Org owner on Git, hosting, DNS, cloud, app store, payment, email. Personal accounts under the previous developer are temporary bridges, not a plan.
  • Prove restore. A backup you never restored is a story. Restore a recent copy to a throwaway environment and time how long it takes.
  • Freeze risky changes. Agree a short freeze on DNS, billing contacts, and production schema while inventory finishes, unless something is already on fire.
  • Secure secrets. Move credentials into a vault you control. Rotate anything that lived in chat, a spreadsheet, or a laptop you no longer trust.
  • Protect customer data in tests. Do not clone production into a shared staging box. Follow GDPR and test environments from day one of the takeover.

If the previous person is leaving the organisation, run access removal as a parallel track with the offboarding checklist. Taking over the project without removing their lingering admin is half a job.

Phase 3: Make the system understandable

You need a mental model good enough to change one thing without breaking three others.

  • Map the happy path. One user journey from entry to money or outcome, with the services it touches.
  • Map deploy. Commit to production: CI, secrets, migrations, feature flags, who presses the button.
  • List cron and webhooks. Silent jobs and inbound callbacks are where "we did not touch anything" outages live.
  • Note debt that is load-bearing. Ugly code that holds revenue is not the same as ugly code you can delete.
  • Reproduce locally or in staging. If you cannot run it, you cannot safely change it. Fix that before big features.

Write a short architecture note (even two pages). Link real paths and commands. Prefer facts over opinions about the previous stack.

Phase 4: Regain the ability to change safely

Ownership without a safe change path is theatre. Build the minimum runway:

  • Staging that mirrors production closely enough for the risky parts
  • A documented deploy and rollback
  • Monitoring or at least error alerts on the critical path
  • A place for tickets and decisions you own (not only their private chat)

If DNS or mail will move as part of reclaiming accounts, treat that as its own project. See migrating DNS without breaking your email. If you inherit SaaS tools you plan to leave later, keep export rights and a sync plan in mind: gradual replacement usually needs both a clean exit path (leaving a SaaS without losing your data) and careful dual-running (syncing two systems: the five ways it breaks).

Need a structured takeover?

We can inventory access, stabilize backups, and set a safe change path before the next feature lands on a pile of unknowns.

Phase 5: Improve under control

Only now schedule product work with clear risk levels.

  • Keep the lights on: security patches, certificate renewals, dependency alerts, unpaid invoices on critical vendors.
  • Small wins: observability, missing docs, flaky deploys, one painful manual step automated.
  • Strategic changes: module rewrites, host moves, SaaS exits, data model changes. One major risk at a time.

Publish a simple roadmap to the client-side owner: what is stable, what is fragile, what you will not touch yet. Takeovers fail socially when stakeholders expect feature velocity on day three while you are still finding which account owns the TLS cert.

Rewrite or keep

A full rewrite is seductive after a messy handover. It is also how many companies lose a year and rebuild the same bugs with nicer folders.

Keep and harden when the product makes money, users know the quirks, and the main pain is ownership, deploys, or missing docs. Most takeovers land here.

Rewrite in slices when a boundary is clear (billing, admin, one mobile screen) and you can dual-run or feature-flag. Prefer strangler patterns over a big-bang cutover.

Rewrite wholesale only when several of these are true: stack cannot be hired for, security or compliance is untenable, vendor is shutting down, or the cost of change in the old system exceeds rebuild for the scope you actually need. Even then, migrate data with a plan, not hope.

Decide with evidence from phases 1 to 4, not with disgust at the first file you open.

Working with the previous developer

Cooperation is an asset. Hostility is a risk to schedule around, not a personality project.

  • Paid knowledge transfer. Book fixed sessions with an agenda: deploy, secrets, landmines, unpaid invoices, "what would you fix first". Record them if allowed.
  • Written answers beat oral lore. Ask for a document. Follow up in email so facts leave their head.
  • Access before opinions. Get admin on critical systems while they still answer. Arguments about code style can wait.
  • Assume goodwill until proven otherwise. Many "bad" codebases are the result of changing briefs and unpaid discovery, not malice.
  • If they vanish. Do not wait forever. Proceed with inventory, registrar and host support, and legal counsel if accounts or IP are blocked. Parallel: stop new dependency on anything only they can unlock.

Contract considerations

The commercial frame decides whether you inherit rights or only a running demo. Align the takeover with contract clauses to demand from any tech provider.

  • IP and source. Confirm assignment or licence that lets a new developer continue without the previous one's permission.
  • Access and non-withholding. Credentials, repos, and admin must transfer on exit. Silence in the old contract is a negotiation problem now.
  • Warranty window. Clarify what the previous party still fixes, until when, and how bugs are reported.
  • Your new engagement. Scope the takeover as its own phase: inventory, stabilize, document, then build. Mixing "take over and ship feature X by Friday" hides the real work.
  • Liability for past debt. Say explicitly what you accept responsibility for after which date, especially security incidents and unpaid vendor bills discovered mid-takeover.

Common mistakes

  • Rewriting in week one because the code "looks bad".
  • Changing DNS early to "clean ownership" and breaking mail or SSL.
  • Leaving personal accounts in place "for a bit" until they become the only way to deploy.
  • Shipping features with no staging because "it always worked for them".
  • Copying production data into a shared test box to go faster.
  • Skipping offboarding of the previous developer while celebrating the new hire.
  • Promising dates before inventory is honest.
  • Trusting chat history as the system of record for secrets and decisions.

Checklist

Access and ownership

  • Inventory of accounts, repos, hosts, DNS, billing contacts
  • Organisation admin on every critical system (or a dated plan to get it)
  • Secrets in your vault, rotated where exposure is likely
  • Previous developer access reduced or removed per offboarding plan

Safety net

  • Backup restore tested to a non-production target
  • Staging (or equivalent) usable for risky changes
  • Deploy and rollback documented and tried once
  • Alerts on the critical path, or a temporary manual watch agreed

Knowledge

  • Architecture note with real paths and commands
  • List of cron, webhooks, and third-party dependencies
  • Known landmines and open incidents written down
  • Rewrite vs keep decision recorded with reasons

Commercial

  • IP and source rights confirmed for continued development
  • Takeover phase scoped separately from feature delivery
  • Warranty or support boundary with the previous party clear
  • Client-side owner named for decisions during the takeover

Related

About to inherit a codebase?

Write us if you want a takeover plan that puts ownership and a safe change path before the next feature promise.