Software Delivery in Small Batches

Adam presents "The Four Types of Problems" by Art Smalley. The types are troubleshooting, gap from standard, target condition, and open-ended.

Learn More
★ 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.

Welcome to the Small Batches 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. Let’s begin today’s episode.

There's a great quote in Jeffrey Liker's book The Toyota Way that gets to the heart of lean thinking. It goes something like this: lean's goal is to quickly surface problems so that you can solve them. I actually did an episode on The Toyota Way. Go to smallbatches.fm/62 for a link to that episode.

Anyway, I love that quote because it gets to core of lean thinking. It's all about problem solving. Many people think "oh, I'll just use kanban and that will fix the issues". Nope. Use kanban and the problems will reveal themselves. Then it's up to you to solve them.

Identifying and solving problems is a central skill to any lean enterprise--be it manufacturing or software delivery. You can level up your problem solving skills by learning to identify different types of problems, then applying the appropriate practices.

The Toyota Way led me to The Four Types of Problems by Art Smalley. The Four Types Problems describes, well naturally, four types of problems, their defining features, and a practices for tackling them.
I found this book great time because it helped me identify the challenge in my own daily work: too much reactive work and not enough proactive work. In other words, too much time dealing with troubleshooting and preventing regressions instead of achieving higher levels of performance and unlocking new capabilities.

The four types of problems are troubleshooting, gap-from-standard, target condition, and open-ended. Troubleshooting and gap-from-standard are reactive responses. Target-condition and open-ended are proactive responses.

Troubleshooting is reactive processes of fixing problems with rapid response and quick corrective actions. Troubleshooting problems arise naturally. You don't need to create them. They come to you through work stoppages or bug reports.

Think of the firefigther. They put out the fire. They don't complete root cause analysis on why the the fire started. They're focused on symptoms rather than addressing systemic issues. In other words: restore service. This type of work does not prevent problems from reoccurring. That's a job for the second type of problem.

The second type of problem is "gap from standard". Gap-from-standard problems move away from symptoms and closer to solving problems in relation to exiting standards or expectations. It may be helpful to also think of these problems as "gap from expected outcome".

Addressing "Gap from standard" problems has a repeatable process that includes describing the problem, breaking down the problem, conducting root cause analysis, then deploying and iterating on countermeasures. Perhaps I'll do a future episode dedicated to this process.

This process may take days, weeks, or months; whatever it takes to prevent the problem from reoccurring. Compare this troubleshooting where the goal is to resolve the current problem as quickly as possible, hopefully in minutes or hours.

Troubleshooting and gap-from-standard problems provide stability to the system. In other words, they keep things meeting at the established baseline. Once the system consistently meets the baseline, then higher levels of performance are possible.

This is the job for target condition problems. Target condition problem solving means creating a "problem" that did not previously exist. I.E. there is a need to move beyond the current state regardless of how effective it may be today. This is what's meant by the Japanese word "kaizen" or "continuous improvement" as we know it in English.

Meeting target conditions requires creative thinking and human innovation. It's a fundamental challenge to the status-quo. Since these are creative problems there is no standard approach. However the recommend practice is to correctly understand the current condition, set a goal, then iterate using feedback loops like plan-do-check-act. If you're successful, then follow up and standardize the new way of working across teams.

The feedback loop between gap-from-standard and target-condition problems leads to higher results over time. Target-conditions sets higher standards. Gap-from-standards prevents regressions from the new higher standards.

The last type of problem is open-ended. Open-ended problems expand the definition of problem solving to include activities associated with innovation, radical change, and ambitious attempts to realize a larger vision. Think of "R&D" or the "skunk works".

Organizations need a mix of all four. Being too consumed with one is a signal that something should change.

Lastly, here's an example of the four types of problems applied directly to software.

1. Troubleshooting: the program crashes with an out of memory error, so allocate more memory
2. Gap-from-standard: Why does the program repeatedly run out of memory? A memory leak is discovered, and patched.
3. Target-condition: no crashes from memory leaks, build a monitoring system that proactively detects memory leaks, and alerts service owners for troubleshooting.
4. Open-ended: how can we make memory leaks impossible in the first place?
You've just completed another episode of Small Batches. I have more info if you'd to learn more about the four types of problems.

The first is my Toyota Kata Pocket Guide. If you're interested in target-conditions then you definitely want to pick this up. The pocket guide covers the kata--or routines--that Toyota uses achieve target conditions and teach others how to do it too.

The second is the Small Batches slack app. I've loaded the app with tips for handling all four types of problems. The app is currently FREE in beta, so get it and share some software delivery education with your team.

Well that's all for this one. Find links to the Toyota Kata Pocket guide, the small batches slack app, my previous episode on The Toyota Way, and The Four Types of Problems at SmallBatches.fm/62.
If you enjoyed this episode then please share it with your friends and colleagues. Alright, I hope to have you back again for the next episode. Until then, happy shipping.