Shipping anti-patterns
What happens when you wait too long to ship? What happens when you go through a dreaded multi-month hardening phase?
We know the benefits of shipping early and often, but it is useful to revisit the pain that occurs when you don’t.
If you don’t ship often, your organization won’t develop the “muscle memory” of going through the ship cycle. It will be a complete fire drill every time it happens. When you finally do ship, the rapid response needed to satisfy your long-delayed customers won’t be natural for the org at all. You’ll need that rapid response, though, because the long ship cycle virtually ensures that there has been a disconnect between customer expectations and the delivered code.
If you don’t ship often, the errors in the assumptions you’ve made have far longer to compound – leading to really big errors in the delivered product. (All models/assumptions are approximations of the real world your software will live in – but when you ship often, you get more chances to correct.)
If you don’t ship often, you’ll likely talk yourself into maintaining multiple branches of source code that are extremely unwieldy to merge. Merge hell will be frequent and de-stabilizing.
If you go through a multi-month hardening phase (because you haven’t created the testing infrastructure to avoid it), your organization will assume that is what is “always” required. The cost of that hardening phase will weigh on project members in a way that causes everyone to grow increasingly conservative about making any future change at all – no matter how badly it’s needed.
Convinced yet?
The longest any organization will comfortably wait for you to ship something is 4 months – ship at or more often than that rate and you’ll be a hero. In the long run, ship rate wins out over scope every time – and even if that’s not universally true, the perception will be that you ship more product.
The easiest thing in the world is to "not ship" – we’ve never shipped a perfect product, as we’re always reminded when we decide to ship. We all have fear, uncertainty and doubt about whether the product will meet the needs of our customers, so we find it easier to keep building to meet the needs of the mythical future market rather than find out with the customers we can have today just how close we are. In the end, the best reason to ship is simple – because you said you would.

