Essay by Spencer Greenberg, Clearer Thinking founder
A lot of people don’t realize that there are general purpose problem solving techniques that cut across domains. They can help you deal with thorny challenges in work, your personal life, startups, or even if you’re trying to prove a new theorem in math.
Below are the 26 general purpose problem solving techniques that I like best, along with a one-word name I picked for each, and hypothetical examples to illustrate what sort of strategy I’m referring to.
Consider opening up this list whenever you’re stuck solving a challenging problem. It’s likely that one or more of these techniques can help!
1. Clarifying
Try to define the problem you are facing as precisely as you can, maybe by writing down a detailed description of exactly what the problem is and what constraints exist for a solution, or by describing it in detail to another person. This may lead to you realizing the problem is not quite what you had thought, or that it has a more obvious solution than you thought.
Life Example
“I thought that I needed to find a new job, but when I thought really carefully about what I don’t like about my current job, I realized that I could likely fix those things by talking to my boss or even, potentially, just by thinking about them differently.”
Startup Example
“we thought we had a problem with users not wanting to sign up for the product, but when we carefully investigated what the problem really was, we discovered it was actually more of a problem of users wanting the product but then growing frustrated because of bad interface design.”
2. Subdividing
Break the problem down into smaller problems in such a way that if you solve each of the small problems, you will have solved the entire problem. Once a problem is subdivided it can also sometimes be parallelized (e.g., by involving different people to work on the different components).
Startup Example
“My goal is to get company Z to become a partner with my company, and that seems hard, so let me break that goal into the steps of (a) listing the ways that company Z would benefit from becoming a partner with us, (b) finding an employee at company Z who would be responsive to hearing about these benefits, and (c) tracking down someone who can introduce me to that employee.”
Math Example
“I want to prove that a certain property applies to all functions of a specific type, so I start by (a) showing that every function of that type can be written as a sum of a more specific type of function, then I show that (b) the property applies to each function of the more specific type, and finally I show that (c) if the property applies to each function in a set of functions then it applies to arbitrary sums of those functions as well.”
3. Simplifying
Think of the simplest variation of the problem that you expect you can solve that shares important features in common with your problem, and see if solving this simpler problem gives you ideas for how to solve the more difficult version.
Startup Example
“I don’t know how to hire a CTO, but I do know how to hire a software engineer because I’ve done it many times, and good CTOs will often themselves be good software engineers, so how can I tweak my software engineer hiring to make it appropriate for hiring a CTO?”
Math Example
“I don’t know how to calculate this integral as it is, but if I remove one of the free parameters, I actually do know how to calculate it, and maybe doing that calculation will give me insight into the solution of the more complex integral.”
4. Crowd-sourcing
Use suggestions from multiple people to gain insight into how to solve the problem, for instance by posting on Facebook or Twitter requesting people’s help, or by posting to a Q&A site like Quora, or by sending emails to 10 people you know explaining the problem and requesting assistance.
Business Example
“Do you have experience outsourcing manufacturing to China? If so, I’d appreciate hearing your thoughts about how to approach choosing a vendor.”
Health Example
“I have trouble getting myself to stick to doing exercise daily. If you also used to have trouble getting yourself to exercise but don’t anymore, I’d love to know what worked to make it easier for you.”
5. Splintering
If the problem you are trying to solve has special cases that a solution to the general problem would also apply to, consider just one or two of these special cases as examples and solve the problem just for those cases first. Then see if a solution to one of those special cases helps you solve the problem in general.
Startup Example
“I want to figure out how to improve employee retention in general, let me examine how I could have improved retention in the case of the last three people that quit.”
Startup Example
“I want to figure out how to convince a large number of people to become customers, let me first figure out how to convince just Bill and John to become customers since they seem like the sort of customer I want to attract, and see what general lessons I learn from doing that.”
6. Reading
Read the books or textbooks that seem most related to the topic, and see whether they provide a solution to the problem, or teach you enough related information that you can now solve it yourself.
Economics Example
“Economists probably have already figured out reasonable ways to estimate demand elasticity, let’s see what an econometrics textbook says rather than trying to invent a technique from scratch.”
Mental Health Example
“I’ve been feeling depressed for a long time, maybe I should read some well-liked books about depression.”
7. Searching
Think of a similar problem that you think practitioners, bloggers or academics might have already solved and search online (e.g., via google, Q&A sites, or google scholar academic paper search) to see if anyone has done a write-up about how they solved it.
Advertising Example
“I’m having trouble figuring out the right advertising keywords to bid on for my specific product, I bet someone has a blog post describing how to approach choosing keywords for other related products.”
Machine Learning Example
“I can’t get this neural network to train properly in my specific case, I wonder if someone has written a tutorial about how to apply neural networks to related problems.”
8. Unconstraining
List all the constraints of the problem, then temporarily ignore one or more of the constraints that make the problem especially hard, and try to solve it without those constraints. If you can, then see if you can modify that unconstrained solution until it becomes a solution for the fully constrained problem.
Startup Example
“I need to hire someone who can do work at the intersection of machine learning and cryptography, let me drop the constraint of having cryptography experience and recruit machine learning people, then pick from among them a person that seems both generally capable and well positioned to learn the necessary cryptography.”
Computer Science Example
“I need to implement a certain algorithm, and it needs to be efficient, but that seems very difficult, so let me first figure out how to implement an inefficient version of the algorithm (i.e., drop the efficiency constraint), then at the end I will try to figure out how to optimize that algorithm for efficiency.”
9. Distracting
Fill your mind with everything you know about the problem, including facts, constraints, challenges, considerations, etc. and then stop thinking about the problem, and go and do a relaxing activity that requires little focus, such as walking, swimming, cooking, napping or taking a bath to see if new ideas or potential solutions pop into your mind unexpectedly as your subconscious continues to work on the problem without your attention.
Example
“For three days, I’ve been trying to solve this problem at work, but the solution only came to me when I was strolling in the woods and not even thinking about it.”
Example from mathematician Henri Poincaré
“The incidents of the travel made me forget my mathematical work. Having reached Coutances, we entered an omnibus to go someplace or other. At the moment when I put my foot on the step, the idea came to me, without anything in my former thoughts seeming to have paved the way for it, that the transformations I had used to define the Fuchsian functions were identical with those of non-Euclidean geometry.”
10. Reexamining
Write down all the assumptions you’ve been making about the problem or about what a solution should I look like (yes – make an actual list). Then start challenging them one by one to see if they are actually needed or whether some may be unnecessary or mistaken.
Psychology Example
“We were assuming in our lab experiments that when people get angry they have some underlying reason behind it, but there may be some anger that is better modeled as a chemical fluctuation that is only loosely related to what happens in the lab, such as when people are quick to anger because they are hungry.”
Math Example
“I need to construct a function that has this strange property, and so far I’ve assumed that the function must be smooth, but if it doesn’t actually need to be then perhaps I can construct just such a function out of simple linear pieces that are glued together.”
11. Reframing
Try to see the problem differently. For instance, by flipping the default, analyzing the inverse of the problem instead, thinking about how you would achieve the opposite of what you want, or shifting to an opposing perspective.
Startup Example
If we were building this company over again completely from scratch, what would we do differently in the design of our product, and can we pivot the product in that direction right now?”
Life Example
“Should move to New York to take a job that pays $20,000 more per year? Well, if I already lived in New York, the decision to stay there rather than taking a $20,000 pay cut to move here would be an easy one. So maybe I’m overly focused on the current default of not being in New York and the short term unpleasantness of relocating.”
Marketing Example
“If I were one of our typical potential customers, what would I do to try to find a product like ours?”
12. Brainstorming
Set a timer for at least 5 minutes, and generate as many plausible solutions or ideas that you can without worrying about quality at all. Evaluate the ideas only at the end after the timer goes off.
Startup Example
“I’m going to set a timer for 5 minutes and come up with at least three new ways I could go about looking for a co-founder.”
Life Example
“I’m going to set a timer for 20 minutes and come up with at least five possible explanations for why I’ve been feeling so anxious lately.”
13. Experting
Find an expert (or someone highly knowledgeable) in the topic area and ask their opinion about the best way to solve the problem.
Startup Example
“Why do you think most attempts at creating digital medical records failed, and what would someone have to do differently to have a reasonable chance at success?”
Computer Science Example
“What sort of optimization algorithm would be most efficient for minimizing the objective functions of this type?”
14. Eggheading
Ask the smartest person you know how they would solve the problem. Be sure to send an email in advance, describing the details so that this person has time to deeply consider the problem before you discuss it.
Startup Example
“Given the information I sent you about our competitors and the interviews we’ve done with potential customers, in which direction would you pivot our product if you were me (and why)?”
Research Example
“Given the information I sent you about our goals and the fact that our previous research attempts have gotten nowhere, how would you approach researching this topic to find the answer we need?”
15. Guessing
Start with a guess for what the solution could be, now check if it actually works and if not, start tweaking that guess to see if you can morph it into something that could work.
Startup Example
“I don’t know what price to use for the product we’re selling, so let me start with an initial guess and then begin trying to sell the thing, and tweak the price down if it seems to be a sticking point for customers, and tweak the price up if the customers don’t seem to pay much attention to the price.”
Math Example
“My off the cuff intuition says that this differential equation might have a solution of the form x^a * e^(b x)for some a or b, let me plug it into the equation to see if indeed it satisfies the equation for any choice of a and b, and if not, let me see if I can tweak it to make something similar work.”
Life Example
“I don’t know what the most effective diet for me would be, so I’ll just use my intuition to ban from my diet some foods that seem both unhealthy and addictive, and see if that helps.”
16. Comparing
Think of similar domains you already understand or similar problems you have already solved in the past, and see whether your knowledge of those domains or solutions to those similar problems may work as a complete or partial solution here.
Life Example
“I don’t know how to find someone to fix things in my apartment, but I have found a good house cleaner before by asking a few friends who they use, so maybe I can simply use the same approach for finding a person to fix things.”
Math Example
“This equation I’m trying to simplify reminds me of work I’m familiar with related to Kullback-Leibler divergence, I wonder if results from information theory could be applied in this case.”
17. Outsourcing
Consider whether you can hire someone to solve this problem, instead of figuring out how to solve it yourself.
Startup Example
“I don’t really understand how to get media attention for my company, so let me hire a public relations firm and let them handle the process.”
Life Example
“I have no fashion sense, but I’d like to look better. Maybe I should hire someone fashionable who works in apparel to go shopping with me and help me choose what I should wear.”
18. Experimenting
Rapidly develop possible solutions and test them out (in sequence, or in parallel) by applying cheap and fast experiments. Discard those that don’t work, or iterate on them to improve them based on what you learn from the experiments.
Startup Example
“We don’t know if people will like a product like the one we have in mind, but we can put together a functioning prototype quickly, show five people that seem like they could be potential users, and iterate or create an entirely new design based on how they respond.”
Life Example
“I don’t know if cutting out sugar will help improve my energy levels, but I can try it for two weeks and see if I notice any differences.”
19. Generalizing
Consider the more general case of the specific problem you are trying to solve, and then work on solving the general version instead. Paradoxically, it is sometimes easier to make progress on the general case rather than a specific one because it increases your focus on the structure of the problem rather than unimportant details.
Startup Example
“I want to figure out how to get this particular key employee more motivated to do good work, let me construct a model of what makes employees motivated to do good work in general, then I’ll apply it to this case.”
Math Example
“I want to solve this specific differential equation, but it’s clearly a special case of a more general class of differential equations, let me study the general class and see what I can learn about them first and then apply what I learn to the specific case.”
20. Approximating
Consider whether a partial or approximate solution would be acceptable and, if so, aim for that instead of a full or exact solution.
Business Example
“Our goal is to figure out which truck to send out for which delivery, which theoretically depends on many factors such as current location, traffic conditions, truck capacity, fuel efficiency, how many hours the driver has been on duty, the number of people manning each truck, the hourly rate we pay each driver, etc. etc. Maybe if we focus on just the three variables that we think are most important, we can find a good enough solution.”
Math Example
“Finding a solution to this equation seems difficult, but if I approximate one of the terms linearly it becomes much easier, and maybe for the range of values we’re interested in, that’s close enough to an exact solution!”
21. Annihilating
Try to prove that the problem you are attempting to solve is actually impossible. If you succeed, you may save yourself a lot of time working on something impossible. Furthermore, in attempting to prove that the problem is impossible, you may gain insight into what makes it actually possible to solve, or if it turns out to truly be impossible, figure out how you could tweak the problem to make it solvable.
Economics Example
“I’m struggling to find a design for a theoretical voting system that has properties X, Y, and Z, let me see if I can instead prove that no such voting system with these three properties could possibly exist.”
Math Example
“My goal has been to prove that this property always applies to this class of functions, let me see if I can generate a counterexample to prove that this goal is actually impossible.”
Physics Example
“I was trying to design a physical system with certain properties, but I now realize that if such a system could be realized, then it would allow for perpetual motion, and therefore it is impossible to build the sort of system I had in mind.”
22. Modeling
Try to build an explicit model of the situation, including what elements there are and how they related to each other. For instance, try drawing a diagram or flow chart that encapsulates your understanding of all the important information that relates to the problem.
Life Example
“I’ve noticed that there are certain situations that cause me to freak out that would not bother other people. So what are the common elements when this happens, and how do they seem to relate to each other and to the way I end up feeling? Let me see if I can draw a diagram of this on paper.”
Startup Example
“What are all the different groups (e.g., providers, payers, patients) involved in the healthcare system, and if we diagram how they interact with each other, will that give us ideas for how we can sell our healthcare product?”
23. Brute forcing
One-by-one, consider every possible solution to the problem until you’ve found a good one or exhausted them all.
Startup example
“We’re not sure the order that these four parts of the user registration process should go in, so let’s make a list of all 24 possible orderings, and examine them one by one to see which makes the most sense.”
Computer Science Example
“It’s not clear how to pick which of these machine learning methods to use on this problem, but since we have lots of data, we can just try each of the algorithms and see which makes the most accurate predictions on data we’ve held to the side for testing.”
24. Refocusing
Forget about trying to solve the problem, and instead consider why you are trying to solve it. Then consider if there is a different problem you can work on that is aimed at producing the same sort of value in a different way.
Startup Example 1
“Maybe instead of trying increasingly hard to figure out how to get this type of consumer to buy, we need to switch our focus to the problem of how to sell to businesses, since what we actually care about is selling it, not selling it to one particular group.”
Startup Example 2
“I’ve been banging my head against the wall trying to implement this extremely complex feature, but there are lots of features that users would find just as valuable that are much easier to implement, maybe I should focus on those instead.”
25. Sidestepping
Consider whether you really want to spend more time trying to solve this problem and whether you can avoid the problem by instead working on totally different problems that you also care about.
Startup Example
“We’ve tried selling our solution to replace Excel for 12 months without much success, maybe we should go back to the drawing board and consider designing a totally new product. Our assumptions about customer needs seem to simply have been wrong.”
Math Example
“I’ve spent six months on this math problem with little progress, but there are two other math problems I’m equally excited about, so maybe I should spend some time investigating whether one of those may be more tractable.”
26. Aggregating
Consider whether multiple problems you’re now experiencing might, in fact, be caused by the same source of difficulty, rather than being independent problems.
Life Example
“I seem to be having conflict with a few different friends right now – could it be that I’m doing something without realizing it that is increasing my chance of conflict with all of them?”
Business Example
“Three employees have quit in the last month. Perhaps the primary problem isn’t really about convincing this one important employee to stay, which is how I was framing it, but rather, about identifying why people keep leaving more generally.”