Whoever Ships First Decides
I looked at a feature a colleague shipped last week, and it was wrong in the ways I would have predicted. Not broken, just built on shortcuts I knew we would pay for later. I had no time to spare, and reopening the decision would have taken a meeting, a design argument, and most of a sprint. So I said nothing, and his version became the version the team now supports.
This is how the standard on a team actually gets set: not by what anyone agrees is correct, but by what someone was willing to ship before the rest of us could object.
The interesting question is not whether the work was bad. The interesting question is why bad work, once shipped, almost never gets undone, even when everyone quietly knows it is bad.
“Done” Changes the Question #
Before the work exists, the question on the table is “is this the right approach?” Once it ships, the question quietly becomes “is it worth fighting to change this?” Those are different questions, and the second one is almost always answered no.
The reason is not that the work got better when it merged. It is that reversing it now costs something it did not cost before. You have to schedule a conversation, justify the rework to someone who already feels they finished, and spend a credibility budget you were saving for your own work. Letting it stand costs nothing in the hour you notice it. So you let it stand, and so does everyone else who noticed.
A piece of work does not have to be good to survive. It only has to be done, because done work turns a technical judgment into a political cost, and political costs are paid by the person who raises them.
The Cost to Object Is Concentrated. The Cost to Absorb Is Hidden. #
The whole pattern rests on this one asymmetry.
Objecting to bad work is expensive in the moment, and you pay the full bill yourself. It is your afternoon, your difficult conversation, your reputation as the person who slows things down. The benefit of objecting, if you win, is spread across the team and across the next year, and most of it lands on people who will never know you fought the fight.
Absorbing the bad work is the opposite. It is free in the moment, and its cost is distributed across the whole team and deferred into the future, where it shows up as the friction of working around a decision nobody loved.
Faced with a cost that is large, immediate, and personal, against a cost that is small, deferred, and shared, almost everyone picks the second one. That is not laziness. It is a rational response to badly priced incentives.
The bad call survives not because anyone thinks it is good, but because the person who would have objected was busy, and objecting then would have cost them their afternoon, and they did not have an afternoon.
The Bar Drifts to the Most Willing Shipper #
Once you accept that done work is sticky and objection is expensive, a consequence follows that most teams never state out loud.
The effective quality bar is not set by what the team agrees is correct. It is set by whoever has the lowest bar and the highest willingness to act first.
If you ship before anyone can object, your version becomes the default, and the default is what everyone else now has to spend energy to dislodge. The person who cares about doing it right is at a structural disadvantage. Doing it right takes longer than doing it fast, and by the time the careful version is ready, the fast version is already the reality.
The disadvantage compounds. Other people copy the shortcut, because the shortcut is now the pattern the codebase rewards. The exception becomes the convention. A year later, nobody remembers that the pattern started as a shortcut someone shipped under deadline. Defending the shortcut has become the team’s default position, because that is what defaults do.
Teams do not converge on their best engineer’s standard. They converge on whatever the most active shipper leaves behind, and they call it the way things are done here.
The Cost Was Never Avoided. It Was Moved. #
Every time a team absorbs bad work, it tells itself the absorption was free. It was not.
The cost was simply transferred, from one person’s afternoon of objection to the whole team’s months of working around the decision, and from a bill addressed to the moment into a bill addressed to the future.
Then the rework arrives, and it is always larger than the objection would have been. By the time the shortcut finally breaks badly enough to force a rewrite, other code has been built on top of it, the original author has moved on, and the team is paying to redo work it already paid to do once.
This is the cruel accounting of absorption. It looked like the cheap option only because its invoice came later and was addressed to someone else. Paid in full, with interest, by whoever is still standing near the code when it finally fails.
The Decision Was Usually Unsound for a Reason #
It is worth noticing why the shipped work is so often the wrong call, because it is rarely because the author was incompetent.
The person who ships first is usually optimizing for the thing in front of them, getting something working, hitting a deadline, unblocking a demo. The costs they are creating live somewhere they cannot see: in the downstream maintenance, in the constraints they did not know about, in the parts of the system their shortcut quietly contradicts.
They made a locally reasonable decision that is globally wrong. Nobody was in the room to add the global view, because the work was already done by the time the people who held that view heard about it.
The person closest to the keyboard is rarely the person closest to the consequences, and shipping first lets them decide for everyone without ever holding the cost.
The pattern is not only a problem with AI-generated code, though cheap generation has made it worse. It is the older and more general problem of whoever acts first setting the default for everyone who acts later, and it applies just as cleanly to a human’s rushed pull request as to a model’s confident output.
What to Do Next #
You cannot make objection free. You can make it cheap enough that it happens before the bad work hardens into the default, and that is where the leverage is.
Object in writing the moment you see it, even if you cannot fix it now. A single line saying “this shortcut will cost us in X” takes two minutes, costs almost no political capital, and does two things at once. It puts the author on notice that the decision was not unanimous, and it leaves a record so that when the cost arrives later, the pattern is traceable instead of invisible. The absence of objection is not consent. It is a measure of how busy everyone was, and writing it down stops that absence from being read as agreement.
Price the absorption out loud. When you absorb bad work to keep moving, say so, and say who will pay: “I am taking this as-is to hit the date, and we will redo it next quarter, and that rewrite is the cost of shipping it now.” Naming the tax prevents the team from pretending the absorption was free, which is the fiction that lets the pattern repeat.
Lower the cost of the conversation. A ten-minute “I would build this differently, here is why” is cheaper than a rework, and cheaper than the resentment that builds when you say nothing for six months. Most engineers respond well to a specific, early objection, and badly to a vague, late one, so timing matters more than wording.
Make the shipper own the consequences for a window. The person who shipped the shortcut stays on the hook for the bugs it produces, instead of routing them to whoever happens to be nearby. This does not require blame; it just re-attaches the cost of the decision to the person who captured the benefit of shipping it, which is the alignment the current default removes.
And if you are the one who shipped, treat silence as the weak signal it is. “Nobody objected” does not mean everyone agreed. It means everyone was busy, and the most accurate reading of a quiet merge is that you got away with it, not that you were right.
The standard on a team is set by what survives, and what survives is whatever was too expensive to undo. If you want a higher standard, do not ask people to object harder. Make objection cheap, make absorption visible, and make the cost of shipping bad work land on the person who shipped it, and the bar stops drifting on its own.
See also #
- The Cost of Work You Did Not Choose - the inverse of this pattern: work handed to you to finish, where here the work is already done and you inherit the burden of supporting it
- Who Maintains the Slop? - the AI-era intensification of the same asymmetry, where cheap generation lets the producer capture the benefit and the maintainer pay the cost
- Distributed Product Management: Cheap to Decide, Costly to Undo - the same cost asymmetry at the level of product direction, where cheap decisions accumulate faster than they can be corrected
- Defects Flow Downstream, Fixes Must Flow Upstream - why the rework tax on absorbed bad work always exceeds the cost of fixing it at the source
- When a Closed Decision Reopens - how to make a decision durable in writing; here the decision never became durable because it never got properly made
References #
Wikipedia, “Status quo bias” - the cognitive preference for the current state, which is why shipped work survives even when everyone knows it is wrong
Wikipedia, “Default effect” - the tendency to accept whatever is already in place, the mechanism by which the shipped version becomes the standard
Wikipedia, “Principal-agent problem” - the split between the person deciding to ship and the people bearing the maintenance cost
Wikipedia, “Technical debt” - the deferred, compounding cost of the shortcut, which arrives later as rework
Wikipedia, “Loss aversion” - why the concentrated cost of objecting feels larger than the amortized cost of absorbing, even when the absorption costs more overall