DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Jonathan Hall
Jonathan Hall

Posted on • Originally published at jhall.io on

Slow stable releases or fast unstable releases?

β€œI don’t care if we spend three months between releases, if we can get it stable.”

I was recently told this by a CEO frustrated by the bugs in production, after a recent switch from GitFlow, with weeks-long manual QA, to trunk-based development.

When he said that to me, this popular meme popped to mind:

Software creation is a messy process. It’s a process of discovery, and discovery is never safe or easy. If there’s one thing we’ve learned over the years, it’s that the choice between β€œslow and stable” or β€œfast and unstable” is a false choice.

My reply to him was: β€œThe real choice is between waiting three months for a huge pile of sh*t, or getting small, manageable pieces of sh*t more frequently.”

He laughed a bit. But then I asked him to consider the team’s track record before the switch to trunk-based development. It was delivering buggy software then, too. The slower pace hadn’t solved that problem.

And this brings to light a key problem with meme above. Two problems, really. The more important problem is that it ignores the clean-up that happens after delivering a pile of poo. It also forgets (perhaps intentionally, perhaps naively) that there are two β€œagiles” out there: The one it’s making fun of, which is really just waterfall in disguise. It’s delivering increments, but without adapting. And then there’s β€œreal agile”, which is all about adapting to new information (including information about bugs).

Here’s my fixed version of the meme:

If smaller pieces of sh*t appeals to you, my free email course on Lean CD might be of interest!


If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.

Top comments (0)

DEV runs on 100% open source code known as Forem.

Β 
Contribute to the codebase or host your own.
Β 
Check these out! πŸ‘‡