07 / 08
Two people, about to build the same thing twice.
Found before a line of code was written. One feature, two screens and a button.
npx halfcycle The work was split between two contributors and nothing anywhere said what the connection between the two halves should look like.
Would a code review have caught it?
Yes, eventually. When the two halves were joined and did not fit.
The restore feature was going to be built by two contributors at the same time, one on the server and one on the screen. That is a normal way to split work, and it only holds up if both halves agree on the join between them: the address the screen calls, what it sends, and what comes back.
Nothing in the plan said. No path, no method, no shape for the request or the reply. Each half would have been built to a sensible guess, and two sensible guesses made separately are almost never the same guess.
The mismatch would have shown up when the halves were first put together, which is the latest moment available. Both people would have finished. Both would have done good work. One of them would then have redone part of it, and whichever half gave way, the join would have been designed in a hurry rather than on purpose.
A smaller relative of this turned up on the same feature, and spotting it needed no knowledge of the code at all. The plan’s own checklist told the reader to confirm the route paths pinned in the design section. No path was pinned anywhere. The document disagreed with itself and got through four rounds of review before anybody noticed, which says something about how easily a missing agreement reads as a present one.
Read the other seven, or the same argument in general terms: why an agent reviewing its own work is not enough.