Why require a change review before a version-control change lands on the shared mainline?
answer
- A checkpoint before work becomes shared
- Not only about finding defects
- Knowledge, design pressure, written record
- Small changes read, large ones skimmed
- Waiting for a reader is inventory
basics
~20 sA change review is the last cheap checkpoint before one person's work becomes everyone's. It catches defects a machine has no model of, spreads knowledge of the code, and records why the change was accepted.
solid answer
~40 sA change review is a gate on the shared mainline: a proposed change is published, automated checks run, at least one other engineer reads it, and only then is it integrated. Defect-finding is only part of the value. Review spreads knowledge so a subsystem is not one person's private property, applies design pressure while the change is still small enough to redirect, and leaves a written record of why a tradeoff was accepted. Its effectiveness tracks **size** almost entirely: a few dozen lines get read line by line, a few thousand get an approval and a scroll. It also costs **latency**, because a change waiting for a reader is finished work that is not yet integrated, so teams shrink the unit, automate the mechanical checks, and grade the gate by risk.
go deeper
Be ready to say what a change review is for beyond finding bugs: shared knowledge, design pressure while the change is small, and a written record of the decision. Know that small changes get better reviews than large ones.
Explain the mechanics you control: how you slice work so a change can be read in one sitting, what you hand to automated checks instead of a human, and what a change description must contain for a reviewer to start.
Show you have operated this gate under load. Talk about measuring how long changes wait for a first reader, recognising when approvals have become rubber stamps, and deciding which classes of change deserve a heavier or a lighter gate.
Own the tradeoff between the assurance the gate provides and the flow it costs. An interviewer at this level expects a position on where review sits relative to automated checks, what response window the team commits to, and when working in a pair replaces the gate rather than adding to it.
## What the gate is Every branching model has a moment where a change stops being one person's work and becomes everyone's: the moment it lands on the shared mainline. A **change-review gate** is the checkpoint a team places at exactly that moment. The author publishes the proposed change, automated checks run against it, at least one other engineer reads it, and only when both the machine and the human agree does the change join the line the rest of the team builds on. Two things follow from stating it that way. The gate belongs to the *integration* step rather than to the writing step, which is why its shape changes with the branching model. And its cost is paid in **waiting**, because a published change that nobody has read yet is finished work that is not yet integrated. ## What a review actually buys It is tempting to describe review as bug-hunting and then conclude that good automated checks make it redundant. Four distinct things are bought, and only the first is defect-finding: - **Defects a machine has no model of.** Tests confirm the code does what its author believed. They cannot tell you the author solved the wrong problem, missed a case nobody encoded, or changed a behaviour another team depends on. - **Shared knowledge.** After a review, at least two people know that code exists and why it is shaped the way it is. On a small team that is the cheapest available insurance against one person being the only one who understands a subsystem. - **Design pressure while it is still cheap.** Naming drift when it is forty lines costs a conversation. Naming it after two months of building on top costs a rewrite. - **A durable record.** The review thread is where the reason a tradeoff was accepted gets written down, and it outlives the people who accepted it. The corollary is that a review spending its attention on what a machine already checks (formatting, ordering, a naming convention an automated check can enforce) is a review wasting the only scarce thing it has. ## Size dominates everything else The strongest lever on whether a review finds anything is the **size of the change**, not the seniority of the reviewer or the number of approvals required. | Change size | What a reviewer really does | Typical outcome | |---|---|---| | A few dozen lines | Reads every line, questions intent | Substantive comments, design pushback | | One to a few hundred lines | Reads carefully, skims the mechanical parts | Most real defects still surfaced | | A thousand lines and up | Skims structure, trusts the tests | Approval with few or no comments | Teams commonly place their too-large limit somewhere in the low hundreds of changed lines. Treat that as a working convention rather than a measured law: the honest claim is directional, that attention degrades as size grows, and the precise number is contested. The practical consequence is the same either way. When reviews on a team have become rubber stamps, the cause is usually batching, not laziness, so the useful question is what forces changes to arrive large. Long-lived lines of development, a gate people avoid because it is slow, and work that has no way to ship half-finished all push size up. ## Latency is the other half of the cost A published change waiting for a reader is inventory. It cannot be built on, it drifts further from the mainline every hour, and its author has usually started something else, so the eventual comments arrive against code they have paged out. A nine-engineer car-insurance renewals team on a six-week release cadence measured a median wait of 31 hours for a first read, with 11 changes open at once. Nothing about that number is a review-quality problem. It is a flow problem that surfaces as review quality, because authors respond to a slow gate by making fewer and bigger changes so they pass through it less often. The levers are unglamorous and they work: 1. **Shrink the unit.** A change that can be read in one sitting gets read. 2. **Set an expectation, not a rule.** A first read within one working day is a commitment the team can measure and visibly miss. 3. **Automate the mechanical.** Every check a machine can make is attention returned to judgement. 4. **Grade the gate by risk.** A change to how a renewal price is computed and a correction to a log message do not deserve the same ceremony. ## Where the gate is not the answer Review is a means, not the goal. Teams that pair or work as an ensemble have already had the second pair of eyes, in real time and with more context than a later reader gets, and bolting an asynchronous gate on top of that buys little except delay. Equally, the gate cannot rescue a change that should never have been allowed to grow that large: the fix there is upstream, in how the work was sliced.
- If automated checks already run on every proposed change, what is left for a human reviewer to do?Everything the machine has no model of: whether the change solves the right problem, whether it fits the design the rest of the code assumes, whether an edge case nobody encoded is handled, and whether the next reader will understand it. A well-set-up gate deliberately hands formatting, style and mechanical correctness to automation precisely so the human's attention goes where only judgement works.
- How do you keep the review gate without letting changes sit for days waiting for a reader?Attack size and expectation together. Slice work so a change can be read in one sitting, agree a visible expectation such as a first read within one working day, automate every check a machine can make, and grade the gate by risk so a low-risk correction does not carry the same ceremony as a pricing change. Then measure the wait: it is a flow number, not a virtue.
- Does every change deserve the same gate?No. The gate is a risk instrument. A change to how money is calculated, to an authorisation path, or to stored data deserves a careful reader and sometimes two. A corrected log message or a comment does not, and pretending otherwise trains people to approve without reading, which quietly weakens the gate on the changes that mattered.
It is the walkaround before takeoff rather than the flight itself: a second pair of eyes at the last moment when fixing something is still cheap.
saying these in an interview costs you the question
- Says review exists only to find bugs
- Thinks reviewer seniority decides whether a change is approved
- Defends thousand-line changes as more efficient to review at once
- Believes automated checks make human review unnecessary
- Ignores that a change waiting for a reader is unintegrated work