Systems Thinking: Five-Why

In the Systems Thinking series of posts (also including Systems Archetype: Shifting the Burden and Systems Archetype: Shifting the Burden to the Intervenor), I try to show the basics of how complex business systems interact. With the systems archetypes, it is possible to find standard solutions to common problems, but there is still a piece missing.

In a specific case, how do you find the root cause to your problem? Have you ever worked in a project, or workplace, where it feels as if you are spending all your time fighting little fires? Usually, all those little fires stem from a few root causes. Unless you want to spend your time fire-fighting, you had better find the root cause of your problems, and deal with that.

There are many methods of finding root causes. One of my favorites, because it is so simple, is Toyota's Five-Why method. The idea is that when you are faced with a problem, you ask why that problem occurred. When you find the thing that caused your problem, you ask why that thing is the way it is. Do this five times, and you will have found a root cause. Fix that problem, and the other problems will never occur again.

There is of course a snag (there always is), when you trace a problem, any problem, back to its source, you will very often find that the root cause is a management policy (or lack of it). This means that solving the problem will involve some effort on the part of the management, sometimes a lot of effort. This is a good opportunity for you to find out whether your managers are leaders, willing to instigate change in the organization by first changing themselves, or if they are just management drones, interested only in maintaining the status quo.

Here is a classic example, originally from a Toyota training manual (though I pinched it from The Toyota Way):

Level of Problem Action

There is a puddle of oil
on the shop floor.
Clean up the oil.
Why? Because the machine is leaking oil. Fix the machine.
Why? Because the gasket has deteriorated. Replace the gasket.
Why? Because we bought gaskets of inferior material. Change the gasket specifications.
Why? Because we got a good deal (price) on those gaskets. Change purchasing policies.
Why? Because the purchasing agent gets evaluated on short term savings. Change the evaluation policy for purchasing agents.

Seems easy, doesn't it? Now let's try it on a software development problem:

Level of Problem Action

The code base smells. Refactor the code.
Why? Most developers did not know how to write good code, and the project managers pushed them to hurry up. Teach the developers Test-Driven Development, and the project managers about agile development methodology.
Why? The developers and project managers where hired from subcontractors, and nobody checked their level of competence. Change hiring practices, and develop a core in-house staff for software development.
Why? Management viewed developers and managers as interchangeable and easily replaceable resources. Teach management about knowledge workers.
Why? Management uses the Scientific Management paradigm. Teach management a better paradigm for software development (agile, lean, TOC).
Why? Management has never heard of, or studied, anything else. Set aside study time for managers. See to it that they practice what they learn.

Piece of cake, wasn't it?

Here's a suggestion: do your own Five-Why analysis of a problem you are facing, or have faced in the past. Publish it on you blog, or in a comment to this post. If you blog about it, tell me. I'll link to your post.


Popular posts from this blog

Waterfall - The Dark Age of Software Development Has Returned!

Waterfall vs. Agile: Battle of the Dunces or A Race to the Bottom?

Interlude: The Cost of Agile