Delivery

How to prepare a codebase for a new developer.

Before a developer takeover, gather the repository, setup instructions, deployment details and a concrete list of broken or unfinished workflows. The first job is to reproduce the current state. A rewrite decision comes after that evidence.

Use the free worksheet

What would justify replacing the code?

These are assessment scenarios, not findings from a client project. The decision depends on reproducing the problem and checking the boundaries around it. An unfamiliar stack or an unattractive interface is not, by itself, evidence for a rewrite.

Evidence to collect before choosing a takeover approach
Observed situationFirst investigationDecision it can support
One broken workflowReproduce it against the deployed revision and inspect the affected boundary.Targeted repair when the surrounding behaviour is understood and can be checked.
One component blocks a requirementDocument its inputs, outputs, callers and data dependencies.Partial replacement when the boundary can be preserved and migration is bounded.
Core requirements cannot be supportedTest that claim with a small technical investigation and compare migration options.A rebuild only when the evidence justifies its cost, compatibility work and risk.
The product cannot be runRecover setup information, the correct source and agreed test access.An assessment phase. There is not enough evidence yet to promise a repair or rewrite.

Find the code that is actually running.

Identify the repository and revision behind the production deployment. A folder of source files may be older than the live system or missing changes made outside version control. Say what is known and what has not been verified.

List the accounts and services required to run the product. Start with appropriate test access. If production access becomes necessary, agree its purpose and permissions separately. Never send credentials in a public issue or initial brief.

Turn the bug list into repeatable examples.

For each important defect, record the starting state, the actions taken, the expected result and what happened instead. A screenshot can help, but a new developer also needs the steps and relevant test data.

For example, 'checkout broken' leaves too much unknown. 'A returning customer selects a saved address, pays in the test environment and receives no order confirmation' provides a flow to inspect. Avoid including real customer information in test examples.

Document what must keep working.

Existing integrations, mobile clients, customer URLs and operational routines constrain a change. Name them before estimating a repair. A new interface can still break the business if it changes an API contract used elsewhere.

If a release date is already promised, explain why and which requirements are essential for it. Separate urgent defects from preferred refactoring. Both can matter, but they solve different problems.

Expect findings before implementation promises.

A takeover assessment should state which environments and flows were inspected, what could be reproduced and where access prevented a conclusion. It should distinguish observed failures from risks that need further investigation.

The outcome may be targeted repair, partial replacement or a larger rebuild. Ask how the option affects data migration, compatibility and rollback. Rewriting the interface while ignoring the migration is not a complete estimate.

Make the next release easier to verify.

Choose a small set of delivery blockers and agree what evidence will show they are resolved. Keep a working baseline so the team can tell whether a change improves the situation or breaks something else.

The assessment should also improve the setup notes. A takeover that still requires the new developer to hold undocumented knowledge merely changes who the product depends on.

The checklist.

  • Repository and production revision identified.
  • Environment and service inventory available.
  • Important defects have reproduction steps.
  • Existing integrations and compatibility constraints listed.
  • Access gaps and unknowns recorded.
  • Next release has observable acceptance criteria.

Take it into the project.

Codebase takeover evidence pack.

Give the incoming developer a working baseline and reproducible failures before asking for a repair or rebuild estimate.

Download the worksheet (.txt)

Plain text, ready to edit. No account or email required.

Preview the worksheet questions
Running product
Name the production environment, repository and deployed revision. Mark any uncertainty about how these match.
Setup and test access
Link to setup notes, test accounts and service documentation. List missing access and its owner. Keep credentials out of this document.
Reproduction record
For each blocker: starting state, sanitised input, numbered actions, expected result, observed result and relevant error reference.
Baseline checks
Record the commands or user journeys that currently pass. Keep their environment and revision so a change can be compared fairly.
Compatibility boundaries
List existing API consumers, integrations, customer URLs, data formats and operational routines that must keep working.
Access gaps and hypotheses
Separate observed failures from possible explanations. For each hypothesis, name the next check that could confirm or reject it.
Change options
For repair, partial replacement or rebuild, state supporting evidence, unknowns, migration work and rollback constraints.
Next release
Choose the blockers to resolve first. Record acceptance evidence, review owner and any deadline with its reason.

From first spec to production.

What needs
building?

Prepare your brief