I make a mistake fairly frequently where I attempt to solve problems without fully understanding them first. The process almost always goes something like this:
- There is a problem that needs to be solved.
- I mistakenly assume that I know enough to solve it.
- I spend a lot of time trying to solve it.
- I eventually realize that I do not understand the problem well and that my solution does not actually solve it.
- I start over and make sure I understand the problem before trying to come up with a solution.
- With a better understanding of the problem, I’m either able to come up with a good solution or realize that I’m not able to.
I can think of many, many examples where I’ve fallen into this trap.
Lean Designs, a web design tool that I spent more than a year building, fit this perfectly. I thought I understood what features designers wanted in a web design tool and then confidently proceeded to build it without talking to any actual designers first (doh!). Only after a lot of time and money did I realize that I had made a lot of faulty assumptions and that the tool I had built did not solve any problems that designers actually had.
I’ve found that while managing people it’s easy to make this mistake too. For example, I once supervised two Airmen who fought constantly. I had heard from a co-worker that one of the Airmen, a young woman, thought her co-worker, a guy, lacked the technical skill to be in the position he was in. Without talking to either about the underlying issue, I assumed that this story was true and tried pairing them together so that they could learn from one another. When that didn’t work, I sat down with each person individually and learned from the woman that at some point in the past the guy had said something that made her think he was a racist (she was black and he was white) and that had caused her to be hostile towards him, which in turn caused him to be hostile towards her. When I asked the guy about this, he assured me he wasn’t (and I believed him) and he later apologized to her and from that moment on they got along much better. My first solution, pairing them together did not solve anything because it was attempting to solve the wrong problem.
For another example, just yesterday a coworker asked me for some help with a library that I had worked heavily on in the past. I quickly glanced at his code and confidently offered a few suggestions on how to improve it. He made the changes and was ready to deploy them when something caught my eye and I realized that the library might not be necessary in the first place. We wound up coming up with a much simpler solution that didn’t use the library at all.
If you find yourself making the same mistake, I try to remind myself that there’s no rush and that I’ll usually save time by making sure that I thoroughly understand the problem well before trying to come up with a solution. If you’re helping someone else, they’ll likely appreciate it too :)