The Four-Step Formula to Solve Any Problem

0_0z3mInz4fIYsNlWk.jpg

Fuck. Fibonacci Sequence? I hadn’t heard of that since high school. I didn’t remember what that meant. I didn’t have an analytical degree in college and now I was being tested on it in the interview. I felt stupid.

I botched the interview, using a buggy, inefficient solution. It wasn’t until years later that I learned that fibonacci sequence is standard topic you learn in any data structures & algorithms course. I felt stupid.

But in the case of that interview, if I had just taken a class on data structures, I would have known there are multiple solutions: recursion, memoization or python generators. Failing the interview didn’t mean I wasn’t smart. It meant, I just didn’t take the class yet.

When we see entrepreneurs, engineers solve problems quickly, we assume genius. Richard Feynman has an amazing story of how he beat a man with an abacus using mental math. The reality is, he happened to know a cubic foot contains 1728 inches. The reality is, he happened to know a cubic foot contains 1728 inches because he’s seen so many math problems. 

Solve more problems and you start building a critical mass of problems & solutions. Genius is pattern recognition.

If genius problem-solving is pattern recognition, what does a pattern look like? While, business problems, engineering problems, personal problems may seem different, the problem-solving process is the same in all disparate fields. Yes, you can train “genius” or “intelligence.” 

In 1945, famous mathematician George Polyar published his four step formula toward problem-solving. Here’s the formula:

1. Understanding the Problem

“The formulation of the problem is often more essential than its solution, which may be merely a matter of mathematical or experimental skill.”
― Albert Einstein

Failing to understand the problem, is like constructing a puzzle without even looking at the final picture. This is the most important step, which is why I spent more time on this section. Understanding the problem, can be broken down into multiple components:

Data

What information or data do we know to be true about this problem? In math, this would include the definition of the relevant variables. In product, this is actually talking to the users to figure out what they’re struggling with. In business, this is understanding what factors are driving a loss in profit.

Conditions

What condition must I follow within this problem? In computer science, this might mean that your solution must be in linear time. In business, this might mean your solution must be under budget. In design, this might mean your design is limited to 3 different colors.

Assumptions

What assumptions am I making about this problem and can I validate the accuracy of these assumptions?

Every problem, sentence, question, has an inherent assumption behind it. For example, a common business problem is falling profit margin. If we were to solve this problem of a falling profit margin, we are making the assumption that the company cares about profit margin. This assumption could be wrong, in that the company cares about growth, not profitability.

Unknown

What am I trying to solve for? What is unknown?

In algebra, this is the variable we’re aiming to solve for: 10 = 3x + 4. In programming, this is the program we’re aiming to write. In business, this is the strategy or project we’re trying to come up with.

  • Is this problem worth working on? What’s the benefit of solving this problem?

  • How does the formulation of the problem affect our approach? How does the formulation affect our result?

2. Devising a Solution

Devising a solution is more of an art than a science. At the core, devising a solution comes from our ability to break down the problem into smaller components and using our existing knowledge to find an optimal solution. With experience and proper understanding of the problem, we can recognize components of other solutions that can apply to this problem.

Here are some questions you can use to find the solution:

To find solution(s):

  • Can I break this problem into smaller sub-problems?

  • Is there a simpler version of this problem that I can solve?

  • Are there any related problems that we have optimal solutions for?

  • Are there any solutions I can eliminate?

  • Can I invert the problem? What would that look like?

  • Is there a bottleneck?

  • Can I draw this solution out?

  • Is there a pattern? What is the pattern?

To optimize the solution:

  • What is the most important component(s) this solution should address?

  • Is there a simpler version of this solution?

  • What are the edge cases of this solution?

  • Where can this solution go wrong? What are the risks?

  • What would happen at the extremes of this solution?

3. Executing the Solution

Once you have the solution mapped out, then it comes down to execution. We frequently realize mistakes in our solutions after execution, which means we go back to the devising stage. The most important component is to continuously validate whether this is the right step or not.

4. Reviewing your results

Once the solution is executed, our immediate response is to validate our results. The core principle here, is to figure out:

  1. Whether this solution works properly.

  2. Whether this is the best solution.

  3. Other problems this solution can apply to.

Questions you can use to dig into these components:

  • Is this the right solution? How can I validate our solution?

  • What scenarios would invalidate this solution?

  • Does this solution generalize well to other problems? If so, which problems?

  • Are there simpler solutions that can give us the same result?

  • How will this solution be used?

Not knowing the solution doesn’t mean you’re dumb. It means you didn’t have the requisite tools to solve the problem. For experienced problem-solvers, you’ll probably see that you already follow this process. For inexperienced problem-solvers, this post should outline a framework to tackle most problems, whether you’re in finance, engineering, data science or business.

But regardless of your field, remember that genius is pattern recognition. Remember, It’s not the number of hours you spend solving problems, but the number of problems you solve.