The number of days it takes a new engineer to ship their first feature is the most honest readout of your codebase's health. Every delay they hit — environment setup that takes three days, tests that break on code they didn't write, a PR that sits in review for a week — is a structural problem your experienced engineers have learned to route around. The onboarding clock is not running on your new engineer. It's running on your codebase.
A new engineer joins. Day three: still setting up the environment. Day seven: tests failing on code they didn't touch. Day twelve: PR waiting in review. Day eighteen: the feature ships.
"Pretty normal," the team says. "Onboarding always takes a few weeks."
Nobody asks what that number actually means.
The Metric Nobody Tracks
Most teams track deployment frequency, lead time, code coverage, velocity. Almost none track time-to-first-ship: the days between a new engineer's start date and their first feature landing in production.
A new engineer arrives without the accumulated knowledge that lets experienced engineers navigate around problems. They don't know which files to avoid, which tests are always red, which senior engineer unblocks a review. They encounter the codebase without filters.
Every day that passes before they ship is friction the rest of the team has learned not to see.
What Each Delay Actually Reveals
Environment setup takes three days. Not an onboarding problem — no reproducible build process. The team knows how to do it through memory and Slack threads from two years ago. No documented path that works end-to-end exists.
Finding where to make the change takes two more days. Similar file names, overlapping concerns, decisions made by someone who left. The right place requires knowing history that was never written down.
Tests break on code the new engineer didn't touch — and they have no way to know which failures are real. The suite is coupled to implementation, not behaviour. They either spend days investigating or start ignoring failures. Neither is safe.
The PR waits five days. The senior engineers who can approve are the same ones the rest of the team is already waiting on.
None of these delays are caused by the new engineer's inexperience. All of them are caused by the codebase's structure.
The Workaround That Became a Person
Here is where the problem escalates.
Every friction point a new engineer hits, an experienced engineer routes around invisibly. Environment setup: a muscle-memory sequence no one wrote down. Architecture confusion: knowing which channel to ask in. Noisy tests: learned which failures to ignore. Review bottleneck: knowing which reviewer to tag for which kind of change.
Each workaround is a senior engineer carrying structural debt that appears on no dashboard.
When that engineer leaves — or moves teams, or takes three weeks off — the workarounds leave with them. The codebase was never legible. It was interpreted. Someone specific was translating it, in real time, for everyone else.
Many organizations mistake that translation for expertise and promote accordingly. The engineer who "knows how things work" gets recognized. The one who asks why the system stopped being readable does not. The dependency deepens quietly until it breaks.
The new engineer's eighteen days is the bill arriving. The workarounds have been accumulating for years. Someone just made them visible.
What a Good Number Looks Like
Track time-to-first-ship internally, across hires. There is no universal benchmark — domain complexity varies — but the pattern is consistent.
When first ship takes more than two weeks, the friction is structural. When it happens in two or three days, the team has made deliberate decisions: reproducible builds, clear boundaries, a test suite that gives honest signals, a review process that does not accumulate WIP. Each of those is a decision someone made and held to.
If the number rises over time, the codebase is getting harder to enter. If it drops after a refactoring push, the refactoring did something real. The trend tells you more than the absolute value.
The Bottom Line
Start measuring time-to-first-ship with the next engineer you hire. Not time to feel comfortable. Not time to understand the system. Time to ship a feature to production.
Every delay they hit is a structural problem your team has learned to route around — and a senior engineer absorbing friction that should not exist.
When you shorten the clock, you will not have improved onboarding. You will have improved the codebase. The new engineer just told you where to start.