skip to main | skip to sidebar

Jan 24, 2008

It's always a people problem

There's a saying (credited to Jerry Weinberg) that I've heard drifting around for a while now in various talks, blog posts, and books. Here are some common forms:

  • No matter what they tell you the problem is, it's always a people problem.
  • No matter how it looks at first, it's always a people problem.
  • No matter what the problem is, it's always a people problem.

I believe it was Kent Beck who related the 5 whys (from the Toyota Production System) to this. Basically the premise is that if you ask why roughly 5 times and try to move in the direction of a people problem then you should be able to root out a human cause to the problem. I'd like to take it a step further and say: "Don't stop with 'why'. Don't stop at 5. Keep asking questions till you can fix the problem."

An Example: The deployment failed

  • Why?
    • Users are unable to log in.
  • Why?
    • The application is pointing at the wrong database.
  • Why?
    • The config file had the wrong connection string.
  • Why?
    • The developer changed it for testing and didn't change it back.
  • Why?
    • We don't have a clean process for changing configurations from dev to test to prod.
  • Why?
    • No one has taken the time to create a process.

OK, that's a people problem, but let's go on.

  • Why hasn't anyone created an effective process?
    • We don't have the time.
  • Why?
    • There's to much to do, too many projects, too many fires(like this one), it's just not a priority.
  • Why?, no wait scratch that... who sets the priorities?
    • Management
  • Is anyone talking to management about this?

Yes, no, maybe? Whatever the answer it's still another people problem. Let's continue.

  • Has anything like this happened before?
    • Configuration file problems between dev, test, and prod? Yeah sure. Why?
  • Well wouldn't you have more time if you fixed this process instead of having to debug failed releases all the time?
    • Yeah, but...

We could keep going but you get the point. I think one of the most important skills that anyone can develop is the art of asking effective questions. In addition to helping you root out the causes and fixes for problems, it will also help prevent mistakes that are rooted in preconceptions, misunderstandings, and assumptions.