Software Delivery in Small Batches

Adam presents a summary of Donald Reinertsen's 2009 book.

Show Notes

This episode continues the theme of the past two episodes. Tl;DR: understand the price of work, optimize for flow through queues, use WIP constraints, reduce batch sizes, and prefer decentralization.

Free Resources
Links

What is Software Delivery in Small Batches?

Adam Hawkins presents the theory and practices behind building a high velocity software organization. Topics include DevOps, lean, software architecture, continuous delivery, and interviews with industry leaders.

Hello and welcome to Small Batches the podcast. I’m your host Adam Hawkins. In each episode I share a small batch of software delivery education. Topics include DevOps, lean, continuous delivery, and conversations with industry leaders.

Today I’m sharing a book summary with you of “Principles of Product Development Flow”. This book was outstanding. It’s hard for me to believe it’s from 2009 because it feels ahead of its time. I highly recommend this book.

Looking back, I can see the connection between lean manufacturing as discussed in The High-Velocity Edge or in The Toyota Way and straight line through to modern day lean software development.

I appreciated how often Reinertsen points out how applying lean manufacturing to production development is well intentioned but doesn’t work. This is why it’s important to grok the difference between stable repetitive processes and the less predictable and more risky process at the heart of product development.

This is a dense book that I actually had to read through twice to get the gist. I’ve done my best to compress the high level points into this episode. There’s a lot of nuance in the book that simply cannot fit into this episode. Hopefully it’s enough to pique your interest.

Alright, let’s begin.

Donald Reinersten’s 2009 book defines over 150 principles of Product Development Flow. The book begins with an attack on the status quo.

The status quo does not correctly apply economic arguments, ignores queues, forces a manufacturing mindset onto product development, and overly uses centralized command-and-control structure. All that inhibits flow and negatively impacts businesses. The book’s principles offer an alternative.

It begins and ends with economics. Businesses speak the language of finance, not the language of proxy metrics. If all proxy metrics, such as cycle time, are quantified economically, then complex decisions become possible. This is just like how prices coordinate local and global economies. Prices communicate information that enables distributed decision making without losing alignment.

Reinersten’s economic system prices work in cost-of-delay. Cost of delay communicates economic value and urgency. It’s a measure of time on valuable outcomes. Cost-of-delay quantifies the economic impact of work sitting in queues.

All product development teams have backlogs. That’s a queue. It’s a line of waiting work. Queuing theory instructs how to optimize queue, thus reducing the economic impact on work waiting in the queue.

Queue performance is negatively correlated with variability in processing times. The status-quo assumes the variation is bad, and, thus, should be eliminated. This is a manufacturing centered approach to stable–in the statistical process control sense–process.

Product development has one element that manufacturing processes do not: risk. Risk comes asymmetric risk-reward payoffs. It’s possible that a 5000 dollar project generates 100,000 dollars in profit. It’s also possible that it generates zero dollars in profit. Adding risk creates variation. But not all variation is bad. In this context, variation is a tool for creating economic value.

The work must ultimately pass through a queue to deliver on the asymmetric risk-reward payoff. We want higher flow through the queue. Queuing theory is the guide.

Start by reducing the batch size. In other words, break work up into many small increments. Reducing the batch size accelerates feedback and reduces risk thus making it easier to hit the sweet spot in the asymmetric pay-off function.

There’s another lever to pull for improving flow through queues. Just a short bit of queueing theory: the shorter the queue, the faster the flow. So it’s best to keep queues short. This is a difficult shift for many managers and companies because they believe a full workload is a good thing. It’s not. WIP constraints are the countermeasure.

WIP constraints are powerful because they are cheap, incremental, and reversible. They enable continuous improvement in matching demand and capacity. Most importantly, they prevent queues from reaching dangerously expensive levels of congestion.

The queues do not exist in isolation. They are networked with other queues. Product development does not flow linearly. It’s a network.

WIP constraints create a cadence between queues. This behaves like a natural synchronization mechanism across queues. Cadence also mitigates against accumulating variability in sequential processes.

However, work still needs sequencing. Economics defines how to sequence work, in other words: how to order the queues.

When the costs of delay are similar, do the shortest job first.

When job durations are similar, do the high cost-of-delay job first.

When job durations and delays costs are not homogeneous, use the weighted shortest job first method.

These decisions heuristics deliver the most economic value and on-top of that promote fast flow through the queues. This is only possible because prices are measured in cost-of-delay.

All this exists in a feedback loop. Faster feedback is better. Fast feedback leads to less variation. That leads to lower WIP. That leads to faster flow time. That leads to faster learning. That powers the continuous improvement cycle.

These feedback loops work better in distributed organizations. There’s no binary choice between decentralization and centralization. Instead, organizations should adapt to the task at hand, expanding and contracting control and decision making when needed. This allows individuals and teams to make the best economic decisions.

Thank you for listening to another episode of Small Batches.

If you want to learn about The Principles of Product Development Flow then I recommend listening to the previous two episodes.

Episode 59 introduces the five time thieves. This episode expands on factors that impede flow and why work-in-progress constraints are so important.

Episode 58 covers queuing theory with more detail on variable impacting queue performance and what to do about it.

Finally you go to SmallBatches.fm/60 for links to everything and to subscribe to this podcast.

Hope to have you back again for the next episode. Until then, happy shipping.