Software Delivery in Small Batches

Adam shares an end-of-year reflection on pursuing the lean ideal. This is the last episode of 2022. Small Batches will return in 2023.
★ Support this podcast on Patreon ★

Creators & Guests

Host
Adam Hawkins
Software Delivery Coach

What is Software Delivery in Small Batches?

Adam Hawkins presents the theory and practices behind software delivery excellence. Topics include DevOps, lean, software architecture, continuous delivery, and interviews with industry leaders.

Hello and welcome to Small Batches. I’m your host Adam Hawkins. In each episode, I share a small batch of software delivery education aiming to help you find flow, feedback, and learning in your daily work. Topics include DevOps, lean, continuous delivery, and conversations with industry leaders. Now, let’s begin today’s episode.
The end of the year is a natural time for reflection. Part of my reflection is revisiting the masters. This is a way return to the fundamentals and orientate myself on the path forward.
One of these masters is Taiichi Ohno. I read his book “Workplace Management” this year. The book ends with reflections from others on what they’ve learned from Ohno. One such passage contains a beautiful haiku.
Do not seek to follow in the footsteps of the old masters, seek instead what these masters sought.
What was Ohno seeking? He was seeking the ideal production process: something that was on-demand, one-piece at a time, and without waste. Ohno worked for decades to realize this vision at Toyota. Eventually his system became known as the Toyota Production System. However, we know it simply with one word: lean.
Many books have been written about lean and the ideal process over the years. My favorite explanation of the lean ideal comes from Steven Spear’s book The High-Velocity Edge. The ideal is:
1. Defect-free—never compromising customer satisfaction
2. On demand—only in response to real need.
3. One piece at a time—providing those who needed something exactly what they could put to use, not overburdening them with the obligation to hold things in anticipation of future need.
4. Immediate—providing those who needed something what they needed without imposing any waiting time on them, but, if this was impossible, small batches of finished goods might be kept on hand to provide the illusion of immediacy.
5. Without waste—never spending time, effort, creativity, and other efforts in ways that wouldn’t be valued by someone else.
6. Safe—so one gets hurt physically or emotionally or is professional threatened.
7. Secure—so that material, services, or information go only to those intended and not others.
This ideal process is not achievable. Instead, it’s a North Star to navigate toward.
Thanks to Ohno, Spear, and many others, we know how to navigate towards the ideal. We may not reach the ideal, but we’ll work like hell in pursuing it.
We leverage test driven development and continuous deployment to aim for defect-free and immediate flow to production.
We build compliance and security checks into pipelines to ensure secure flow of material and information.
We follow pull-based work to act only in response to real need.
We break work into small batches for single piece flow to production.
We infrastructure-as-code to reliability create and destroy our production and test environments.
We build jidoka checks into all processes to stop and swam problems.
We create generative learning cultures where dissident is encouraged and new ideas for vetted at the gemba, instead of with snide remarks and condescension.
We strive to collect telemetry from aspects of our process such that they may be improved.
We see prefer global value stream outcomes over local optima.
We share knowledge of the ideal and practices with others, and also develop their capabilities.
We have the empirical evidence and practical experience to know these things work.
I believe in this ideal and strive towards it in my own way. My proudest and most fulfilling professional moments are when it felt like I grasped ahold of it.
One example is overcoming the challenges of a defect-ridden system by adopting TDD and slowing improving quality. Eventually the team reached a point where the test suites met the conditions for continuous deployment. This was my first time working a team practicing continuous deployment. One constraint had been cleared, one increment closer to the ideal. One success revealed how much farther there was to go. The pursuit is endless.
Some may take a fatalistic view: why bother when the ideal cannot be achieved?
I do not hold that view. I believe the opposite.
I believe this because, to paraphrase one of the masters: we have the answer. We have a target to aim for. I know the direction to go: more on-demand, fewer defects, less waste—and the list goes on. I believe the current condition can always be improved by pursuing the ideal. I know the ideal and how to navigate towards it, so I set out down this path.
I think this is a strong antidote to the fatalist view. It is more than a one-time fix on a challenging day. I believe you can use the pursuit of the ideal to overcome the cynicism and status-quo bias regardless of where you find yourself, your team, or organization.
The ideal is something you can carry with you indefinitely and pursue it like a happy warrior. The gap between current condition and ideal condition will vary from moment to moment, project to project, and team to team. Each moment is an opportunity to strive for the ideal. We must focus on how we purse the ideal, rather than if it has been met.
In this way, the ideal is an asymptote. Our moments of excellence come from striving towards that asymptote. Greatness exists in those moments where we feel we’ve just touched it only to find that we’ve learned something new and there is still farther to go.
I believe we should not meekly nudge forward. I believe we should reach out and aim to grab it!
Alright, that’s all for this episode. Small Batches will return in 2023. I hope to have all you back again in the new year. So until then, happy shipping!