Cause-Effect Diagrams: A Pragmatic Way of Doing Root-Cause Analysis
- Purpose of this article
- A3 Thinking - The Lean Problem Solving Approach
- How to Use Cause-Effect Diagrams
- Example 1: Long Release Cycle
- Example 2: Defects Released to Production
- Example 3: Lack of Pair Programming
- Example 4: Lots of Problems
- Practical Issues: How to Create and Maintain the Diagrams
Purpose of this article
Cause-effect diagrams are a simple and pragmatic way of doing root cause analysis. I’ve been using these diagrams for years to help organizations understand and solve all kinds of problems – technical as well as organizational.
The purpose of this article is to show you how cause-effect diagrams work, so you can put them to use in your own context.
I’d like to thank Tom Poppendieck for encouraging me to write about this, and for keeping my reading list constantly stocked with interesting books and articles about Lean and Systems thinking.
Solve problems, not symptoms
The key to effective problem solving is to first make sure you understand the problem that you are trying to solve - why it needs to be solved, how you will know when you’ve solved it, and what the root cause is.
Often symptoms show up in one place while the actual cause of the problem is somewhere completely different. If you just “solve” the symptom without digging deeper it is highly likely that problem will just reappear later in a different shape.
Problem: Smoke in my bedroom.
Bad solution: Open the window and go back to sleep.
Good solution: Find the source of the smoke and solve it. Whoops, there’s a fire in the basement! Extinguish it, find out what caused the fire in the first place, install a fire alarm for earlier warning next time.
Problem: Hot forehead, tired.
Bad solution: Put ice on forehead to cool it down. Eat some sugar to wake up. Keep working.
Good solution: Take my temperature. Oh, I have fever! Go home and rest.
Problem: Memory leak in server.
Bad solution: Buy more memory.
Good solution: Find & fix the source of the memory leak. Implement tests to detect new memory leaks in the future.
Problem: Water in the boat.
Bad solution: Pump out the water & keep sailing.
Good solution: Find the source of the water. Ah, a hole! Fix it. Then pump out the water.
... and so on.
Most problems in organizations are systemic. The “system” (your organization) has a glitch that needs to be fixed. Until you find the source of the glitch, most attempts to fix the problem will be futile or even counterproductive.