The question looked simple. Clean up first, or build the feature first.
The feature had a business date on it. Build it now and it would land on top of code that needed work. The debt would grow, and the clean-up afterwards would take longer than doing it first. Clean up first and the feature would be late, but built at full speed.
Either way it would hurt. Feature first meant slower work for a long time afterwards. Clean-up first meant no growth now.
Product wanted the feature. A delay, to them, was a missed chance that would not come back. The development team wanted the clean-up. They knew what feature first means in practice: the regression work gets pushed to the end, it overruns, and the overrun is paid in evenings and weekends.
Both were right about what they could see.
It did not resolve. So we did what a room does when it is tired of an argument. We voted, development and product together, and the clean-up won. Part of product had come round to it: clean up now, and the next features come faster. I voted with the room. A safe choice for the technology. No growth for now.
We lost a big customer over it. Nobody had that customer on the radar. Not the engineers, not product.
The engineers were protecting something real, and so was product. What I missed is what the split was telling us.
People who know a system sort most of it in seconds. Shared understanding produces shared classification. When those same people cannot agree on one item, the trouble is rarely in the room. It is in the item. Something about it is unknown, or contested, or doing two jobs for two groups who have never compared notes.
Plenty of disagreement is just noise: two people underinformed, or talking past each other. The tell is narrower. It is when the people who agree on almost everything else hit one item and stay split. It looks like a stalled meeting. It is a finding.
We treated it as a stalled meeting. A show of hands settled the discomfort and left the cause untouched. And look at what the hands were counting. Every argument in that room was about our own costs: speed, debt, overtime, how soon the next features would come. The vote weighed those against each other, carefully. The cost that decided the outcome was not in the room, so nobody could vote on it.
What I would do now is slower by one meeting. Do not vote. Ask each side the same question: what would have to be true for you to be right?
For clean-up first to be right, the delay had to be affordable. Someone had to be able to say which customers were waiting on the feature, and what they would do if it came late. For feature first to be right, the extra debt had to be something the team could carry without breaking. Put those answers side by side and the gap is plain. We could answer the second in detail. Nobody could answer the first. The possible loss had no name on it, and it turned out to have one.
That gap was the finding. It is almost always more specific, and more useful, than either of the positions that produced it.
The tell does not tell you what is wrong. It tells you where to look.
The first place it tends to point is at a part the room keeps not because it still earns its place, but because everyone is quietly afraid of what happens if it goes. That fear has a shape, and it is where I go next.
Field note · Standups: ritual or bloat
Every team asks it sooner or later. Can we kill the daily standup, or is it holding something up we cannot see?
Ask it in a room and watch the split. One camp calls standup overhead, fifteen minutes of status a message could replace. The other says it is the one moment the team is in sync, where the plan gets corrected before it drifts. Both are certain. Both work on the same team, in the same week.
That is the tell. Not the standup. The fact that people who share a working life cannot agree what it is for.
So do not vote on it. Ask each side what would have to be true for them to be right.
The Core camp's answer: important state lives nowhere else, and blockers surface here or surface too late. The Bloat camp's answer is the mirror: the state is already visible on the board, in the channel, in the pull requests, and standup reads it aloud.
Now you have a test built for your team. Go and look. Did anything real surface in standup this week that would not have surfaced anywhere else? The answer decides it, and the answer is yours, not mine.
"Is the standup Core or Bloat" has no general answer. Somewhere there is a team it quietly saves and a team it bores, and they would run the same sort and land in opposite columns, both correct. The disagreement is not a sign you are behind on a best practice. It is a sign the answer lives in your room.
Cases in this series are composites. The patterns are real, the companies are not.
The full Core and Bloat™ method, four boxes and all, sits at dirkbauer.com/core-and-bloat.html.
· · ·
Also this week
I Treated It as a Tuesday. A note on the plan that changed after the call ended, because decisions form where the conversation keeps going. https://dirkbauer.com/notes/i-treated-it-as-a-tuesday

