I have a Beagle. His name is Charlie. This story of Charlie, and his bark, is going to help us think about our approach to problems and solutions. More specifically, this story about Charlie will help us see how easy it is to recommend the wrong (less optimal) solution because we often focus on the wrong (not root) problem. You might say it’s the result of barking up the wrong tree.
Setting the Stage
I have been told Charlie is the best barker of any dog my kennel has ever heard. By best, they meant a unique loud shrilly howl that sparks a chain reaction throughout the kennel. Oh, and constant when other dogs are near. It penetrates and carries. I live next to many neighboring dogs, who like to talk with each other. The deeper voices of the other dogs I can sort of tune out. Charlie’s…not so much.
Charlie barking, even outside, can be a problem when I’m on the phone. His shrill easily penetrates the window, perhaps even the wall, and I know that his bark carries across the phone and is a distraction to those listening on the other end.
Solutions Align With the Problem
Our solutions, arguably, always align with the problem we define. Thus, it’s crucial that we define the problem, and make sure it’s the right problem to solve.
In my experience with software product development, it’s common to define problems based on surface-level data or observation, and then push for solutions based on those problem statements. That would be fine except for the fact that those are often not the real problem to solve, thus the solution isn’t effective at achieving what we really need.
First Principles Approach to Problem Solving
First principles thinking is about breaking a problem/opportunity down into its most basic parts – getting to the root elements of a situation – and then rethinking the problem from the ground up. Re-imagining, if you will.
The process I follow is this:
- Identify the problem
- Identify the first principles
- Make sure it’s the right problem
- Define a desired outcome
- Consider viable solutions
Identify the Problem
Every problem-solving endeavor begins with an initial problem definition. In my Charlie example, the problem is Charlie barking when I’m on the phone. I don’t want Charlie barking while I’m on the phone, so the first thought that comes to mind is to stop his barking, or create a condition that reduces the chances that he will bark in the first place. Case closed? Not so fast. Let’s explore.
I never assume that the presented problem is the root, or best, problem to solve. Often it is not. This means that many proposed solutions are not the best solutions either.
Let’s start by breaking down the elements of the barking situation. There is my location while on the phone, triggers that cause Charlie to bark, the barking, and Charlie’s location while barking.
I prefer to take calls from a fixed location, but I can move. The triggers to Charlie’s barking are consistent (e.g. other dogs, animals), but are variables because they may or many not present. The impact of the barking varies depending upon whether he is inside or outside, and the duration. Charlie’s location will either be inside or outside, and his location outside in relation to the house is in the back of the house, but could vary within those parameters. The risk of barking is always present. These are the conditions I am working with.
Identify the Right Problem
When exploring solution alternatives, it’s easy to become married to our ideas, and actually look for ways to defend them. I recommend you look for ways to disprove them as the best solution. In this process, you will either validate them or find better options. Let’s take this approach with our initial problem definition.
If Charlie is barking outside my window while I’m on the phone, the first instinct may be to get him to come inside. Obviously, he is barking at something that is outside, so bringing him in solves the problem. Maybe.
How would this play out? I text my wife or daughter to please get Charlie. They may or may not get the message and it could be a few minutes. They call for him, he doesn’t listen. They bribe him with a treat and he comes running in.
This solution approach may solve my immediate need, though it took some effort. What happens if Charlie now continues to bark from inside the house, which is a real risk? My new problem would be even worse than my original problem. What if I’m home alone?
As for prevention, there really isn’t much I can do. Putting him outside is better than risking barking from inside, but I cannot remove the risk completely. Resting my solution on stopping the barking once it starts allows the barking to first make a negative impact, which is less than ideal.
What’s the Real Need?
Is stopping his barking really what I need, or is what I need more about not hearing the bark? Truth is, I do not care if Charlie barks. I care that I can hear it and that it might carry across the phone call.
Charlie barking is not my problem. While I am on the phone, where he and I are in relation to each other when he barks is the root problem to solve.
The process of validating or disproving the original problem and solution helps us uncover the real need, or desired outcome. Where we may have initially thought that we need to stop Charlie’s barking, we learned that the real outcome is that I want to be able to talk on the phone inside my house, while Charlie is barking, without the barking being heard over the phone call. This is ultimately what I want/need.
Consider Viable Solutions
If I want Charlie to stop barking, my solutions might include bringing him inside, or distracting him with a treat. If I simply want to not hear the barking, or at least minimize it such it’s no longer an issue for my phone call, I could go to another room in the house to take my call. In that instance, my solution has nothing to do with stopping his barking.
How I frame the problem directly impacts how I solve the problem. As this example demonstrates, the solution is quite different depending upon the identified root problem to solve (stopping vs. not hearing).
The solutions for stopping the barking likely require getting others involved to help, or interrupting my call to address it myself. Bringing the dog inside also does not guarantee the barking stops. If the barking continues, the problem is worse, so there is risk. The solution for not hearing the barking only involves me, and it’s a simple act of moving to another room. No risk either. Often the best solutions are the simplest.
Think about the problems you need to solve right now. What is your barking dog equivalent? Break it down into its most basic facts – disassemble its parts. Think about what needs to be different without thinking about a solution at first. Think more deeply about whether that is the right outcome to pursue. Then consider the solution alternatives and actions to take.
What problem are you trying to solve by going to Agile? In this blog, I walk the reader through a couple of metaphorical examples to help them understand what problem they are trying to solve by going to Agile, and more importantly, why. Is Agile “fit for purpose?”
Sometimes it’s not about solving a known problem, but more about what problem are we trying to prevent? In this blog, I share a real-life example of a project that aims to solve a non-existent problem, yet it could be about risk avoidance. How could you use first principles to identify these types of solutions?