Skip to content

Size up a legacy codebase to plan & estimate

Before you can modernize, port, or bid on an inherited codebase, you need to know what you're taking on: how big it is, where the hard parts are, and how tangled it is. Understand turns "we have no idea" into concrete numbers you can put in a plan, a staffing decision, or a customer quote — usually in an afternoon, without building the code.

This page is the scoping workflow; each step links to its full how-to.

1. Get the size and shape

Analyze the code and read the top-level numbers first: lines, files, classes, and functions on the Home dashboard, and the distributions in the metrics overview. This alone answers "how big is this, really?" more honestly than a line count of the repo, because it counts what actually compiles.

2. Find the hotspots that drive effort

Effort concentrates in the complex, risky parts — not evenly across files. Surface them:

3. Assess the entanglement

The cost of change is driven as much by coupling as by size — tightly wired code is expensive to touch. Gauge it with dependencies and coupling & cohesion metrics, and sketch the intended structure with an architecture so you can talk about subsystems, not files.

4. Turn it into an estimate

Export the numbers to build the estimate and set a baseline you'll track through the project:

Where to next

Once you've scoped it and the work begins: