Problem Solving 2
Problem solving is a skill that is often shrouded in mystery. Those who aren’t so good at solving problems look at others that are better, and say that they are simply gifted with an innate ability. But much like sports, it’s a skill that can be improved and not born with. And like driving, you only need so much to get around. If you are determined to become a better problem solver, I would like to share some wisdom I picked up along the way.
As a software developer, solving problems of variable dimensions is what I do at work. I enjoy the process and the solution, but it’s always more important to choose what problems to solve than how to solve it. Regardless of how good my skills are, if they are not directed in the best way, then they are wasted. My time would be wasted. My life would be wasted. Let’s not do that.
Finding what problems to solve is the most important, and it’s the hardest part for some. When I was asked by another iOS developer in Palo Alto, I had no answer to this question. Why bother? Solve problems as they enter your consciousness. It’s the process that matters, I thought.
You should solve problems that are interesting. Interest makes you care, and the quality of your solutions will be much higher. If you find a problem to solve that is interesting, then you will have fun while solving it. For example, you are at a bar on a weekend night and meet a girl. If you find that she likes you but is unwilling to come with you to Pizza Palace for a romantic conversation because her new high heels are digging into the back of her feet, you might want to offer her band-aids for both her feet so that she can walk more comfortably and pay more attention to your revelations about the miracle of pizza. I carry two band-aids in my wallet just for this purpose.
A problem is interesting if you can see a better world on the other side. Interest makes you care. If you don’t care about the problem at hand, then you won’t be able to see the better world, and offer potential solutions that are irrelevant or suboptimal. Even if you solve that problem, the solution will be bad and someone else will have to do that work over again.
Perhaps happiness is leaving a place better than how you found it; a place in time or in heart. Just like how we collect good memories and experiences throughout our lives, we try our best to make others around us happier. A problem is interesting if it helps others. If we see a way to make others happier easily, we would jump at the opportunity. I would like to quote Richard Feynman on this topic:
”” The worthwhile problems are the ones you can really solve or help solve, the ones you can really contribute something to. … I would advise you to take even simpler, or as you say, humbler, problems until you find some you can really solve easily, no matter how trivial. You will get the pleasure of success, and of helping your fellow man … “” //http://genius.cat-v.org/richard-feynman/writtings/letters/problems
Contribution, simple, pleasure of success. We should ultimately make someone happier through our problem-solving. Thank-you, Mr. Feynman.
As you solve these simple problems, you will see that no problem exists in isolation; each problem is a part of a bigger one. For example, when I was making my desktop bookshelf, I had to decide on a way to join the pieces of wood together. That was a part of a bigger problem of making a desktop bookshelt, and a part of making my desk neater. For another example, when I was making an analog paper light dimmer for my living room light, I faced a problem of the lower part of the cylinder falling out once every so often. That was a part of a problem of being able to dim the lights. And dimming the lights was a part of a bigger problem: the light was too bright after dark. Bright lights ruin everyone’s sleep, and the problems existed as a potential solution.
In both these sets of problems, we zoom out to understand its context and its purpose. However, once you zoom out far enough, the problems start to look less like problems. The problems are solutions in relation to their context, and start to look more like frustrations. The bookshelf and neater desk problem arose out of the frustration of looking at a pile of books and not being able to grab the one I’d like to read on my way out to Tim Horton’s while my roommate is waiting. The light dimmer/sleep problem arose out of the frustration of the lack of control over my sleeping schedule, thereby skipping breakfast or putting on sunscreen the next morning after snoozing.
A frustration is an emotion that problem solving seeks to address, and after the problem has been solved, less attention is devoted to the issue, and more on things we care about. It feels good to experience novel solutions to our problems, and just as much so to provide it for others. On either side of problem solving, there are emotions we need to understand. Problem solving as the core of a rational process lives in between two kinds of emotions. Empathy is a necessary component to high quality solutions.
I owe much of my insights to what people call Design Thinking. Rational thinkers are great at solving problems as soon as it’s defined, but defining those problems are really hard, too. Design Thinking zooms out of the layman’s understanding of design such as graphic design, industrial design, software design, etc. Design thinking is the integration of empathy into the problem solving model. Design is just one word of many to look at problems at a certain scale. Other words include:
Development Science Engineering Management Technician Philosopy
Problems at different altitudes exist with varying generality and scope. We are all trying to have a better life by solving problems, whatever that may be. And if the problems that we’re solving have not yet been solved by anyone else, that is the work of a pioneer at the frontier. What I am trying to describe is important because it is applicable in all aspects of the betterment of life.
What is a problem? What makes a problem a problem? When someone asks, “What’s the problem?” They are trying to help by understanding your situation. The question is often followed by “I can’t …” or something along the lines of “something’s not right because …” It’s implied that they want something to happen but they haven’t had it happen yet. It’s important to know what the problem is so that we can begin the problem solving process.
I want to emphasize my practical definition of what a problem is. A problem is the difference between the current state and the desired state. In other words, a problem is a problem if and only if there exists a difference between the current state and the desired state. In other words, a difference between the current state and the desired state is both necessary and sufficient for a problem to exist.
It’s not really a problem until the two states are there, obvious to the solver. Let me show you a few examples. You don’t have to read them all to get the point.
e.g. “I don’t like the way I look in the mirror.” This isn’t a problem because the desired state is not clear. Of course you want to look better, but what’s better? Do you want to look skinnier? Gain muscle? Clear skin? Lucious hair? Dirty mirror? What’s stated here is more of a frustration than a problem. A better way to define a problem might be: “I want to look more like those buff people on TV and movies, particularly more like Wolverine from X-Men.”
e.g. “Let’s start our own business.” This isn’t a problem either since the understanding of what “own business” varies too greatly. It’s not obvious as to whether “own business” refers to a lemonade stand, or an etsy account, or a mobile development shop, or a MegaCorp Inc. A better problem definition might be: “I wish I could solve problems that I care deeply about, not what some boss cares about telling me what problems to solve, and how to solve it”
e.g. “Ugh I have to go to the dentist.” This frustration could be a host to a multitude of problems. Is it that you don’t have money to go to the dentist? Is it the time? Have you had bad experiences with dentists in the past and simply despise the trip? A problem definition might be: “I wish my time and money would be better organized so that I’m prepared for unexpected events”
e.g. “Fix your attitude first” In this case, neither the current state or the desired state are clear. Was it that my “attitude” was condescending? Or is it that I wasn’t mindful of the situation? Do you want me to suddenly become a super-empathetic person immediately? Should I stop talking to you right this second until my attitude is “fixed”, which could be never? A better definition: “I want you to be more considerate of my feelings when you see me so that you know to avoid unnecessary conflicts”
e.g. “Don’t be a bad guest; make yourself at home” Sometimes things can be tricky. Phrases such as “make yourself at home” have lost their meaning. Adages such as “The early bird gets the worm” or “Good things come to those who wait”, which respectively refer to the virtues of being proactive and being patient, are pointing to a direction of where the desired state should be, not a state. A better way to say the above might be: “I wish you were comfortable so that I don’t have to worry about you staying over.”
A frustration is an emotion arising from a circumstance. No meaningful problems could exist without a frustration, but a frustration is not a problem. A frustration helps to begin the problem solving process by narrowing down the infinite possibilities of problems that can be solved into ones that are relevant.
Just as a problem definition comes after a frustration, proposing possible solutions must wait until the problem is defined. There can be many possible problems to a frustration, and there can be many potential solutions to a problem. But too often, people are eager to jump to solutions.
Some people believe that the solution that they came up with is the only and best solution to the problem because it was the first one they thought about. Just as foolishly, the same people with the same thought patterns believe that their problem definition that they came up with is the only and best problem definition to the frustration because it was the first one they thought about. And they believe that the frustration that they are addressing is the only and best frustration because it was the first one they had. It’s easy to get married to their first idea.
Defining a problem has its virtue in teamwork. It helps to get buy-in from others that will support it. Or better, it gets disapproved with heated discussion in which case you’ve saved yourself loads of work in the team, each trying to solve different problems. If you were to walk into any startup, and asked each employee about what problem they are trying to solve, each employee will give you different definitions, at half of the startups. It’s also a way to help manage scope. If a good-sounding solution pops up in a discussion, but is irrelevant to the problem at hand, then it is worthless because it does not get the project closer to its objective.
After understanding the purpose and context of a problem, the process can begin. It is loosely based around these four steps:
The Process: Problem definition Solutions proposition Solution implementation Solution evaluation
I call it “See Think Do Review”. I stole it from a driver’s manual. If it sounds familiar, it’s probably because you’ve heard of it in science or math or business school.
Mathematical method: Understanding / Analysis / Synthesis / Review Scientific method: Characterization / Hypothesis / Experiment / Confirm Business management cycle: Assessment / Planning / Execution / Review
No matter what kind of work is involved, problem solving is involved in one way or another. It’s not some magic or a gift that someone has, but rather having the discipline to stick to a rigorous process. Movies and shows portray it otherwise. If someone is given a problem, goes into a room and a few hard-thinking cutscenes later, BOOM! Solved! Saying, “I’ve found the solution!” that is bad scripting and does not represent how it’s actually done. Most hard problems are solved in groups and more importantly, there’s most often more than one solution. “The solution” is a fallacy. Solution proposition offers many branches to the problem.
I want to show you a few examples that consider multiple solutions to the same problem definition.
I mentioned earlier that I got “See Think Do Review” from a driver’s manual. When driving, problem solving happens at a micro level, where a few possibilities are laid out in a mini thought experiment and the most viable solution is chosen and acted upon. When a ball bounces along to the middle of the road, the problem is loosely defined as “Don’t run over children”, or to avoid an undesirable state of hitting someone with the car. The driver could either stop, slow down, swerve, speed up, honk, high beam, or any combination of those actions. Slowing down to a potential stop seems to be a good option among the rest, so the brake pedal is pressed. In the rear view mirror after passing the bouncing ball, the driver might see a child picking up the ball and review that slowing down and getting ready to stop was a good thing to do.
Events while driving is a problem solving process. So is addressing a car that just stopped running. The problem is that you’d like the car to start and run again. A variety of solutions immediately arise: Is it that the car is out of battery? Is it out of fuel? Does it have anything to do with the engine? The problem definition narrows as more is discovered from the broken car. You find that the battery is fine and the fuel is ok, so it must be something else. You might at that point have doubts on whether you can fix it yourself and decide between digging into the problem deeper or get a mechanic to take care of it. Then after looking at the bill from the shop, you may decide to get some diagnostic tools and do it yourself next time.
There comes a time in life not long after puberty that we realize that we are not very good at social skills. Even if you had a group of friends throughout school, meeting strangers serendipitously is a great way to find romantic and business prospects. We were all strangers once, even our parents at birth, and meeting new people can be difficult. It’s uncomfortable. So we decide to work on ourselves with the problem being “I wish I could make friends with great conversation so that when I’m feeling lonely I have people to talk to”, which narrows to “make people laugh with each conversation”. There’s a few potential solutions to generating humor, some of which are jokes, wit, genuine connection, teasing, etc. You try each of these options and find the ones best suited to your personality and social situation.
Solution proposition is somewhat of a mystery in how the possible solutions are generated. But once it’s thought of, there is a way to check if it is any good. If a solution does not contribute to the problem definition, it’s bad. Throw it out. If the proposed solution is a great idea but irrelevant, then it should be written down and considered at another time.
Sometimes it’s useful to write down a list of solutions or to keep mental note of it. For recurring problems of the same variety, experience helps. It allows you to rank the most likely causes of the problem above the rest, and try them first.
Brainstorming can help with this generation process, and can spawn a lot of new ideas. But the creativity session should be directed, where there are no bad or stupid ideas, only irrelevant ones. Keep going until the participants can’t immediately think of another viable solution.
Once you have a list of solutions, it can grow and grow until it becomes unmanageable or impossible to consider them all. If the problem is a kind where ‘good enough’ is acceptable, then the list should stop growing. Otherwise, if the optimal solution is necessary, then that list should steep for a while, being looked at once in a while. The best solution takes a long time to achieve. Creative people don’t stop at the first solution as acceptable — they keep expanding this list even when they know the new ideas might be inferior to old ones.
One small tip I have about this list is to keep it from looking like a list and more like a word cloud. It gives room for your eyes and mind to expand and prevents it from coming up with useless patterns.
You need to choose which solution to start working on first. In a sea of potential solutions, choose the ones that can be proven invalid quickly, first. That’s what it means to fail fast. For example, to find out the optimal temperature for cooking steak to maximize flavor, cook the steak on high heat first, and then low heat. You will gain information about the quick solution, offering more variety of solutions to choose from next time.
The implementation of the solution is sometimes the easiest part. If the system cannot be easily reverted back to the original state, like version control for programming, then try implementing the solution to a small subset of the system. That way, you give yourself chance to learn about which solutions work better than others. Or try in different but equivalent systems. Or try similar, cheaper solutions to the system. The point isn’t to fix the whole thing all at once. There is no certainty for the future until the solution is tried.
At this point, the solution that’s tried is either “good enough”, “perfect”, or “failure” . If a good enough solution is acceptable, then there’s another problem out there waiting to be solved, and you should go solve that. If it’s perfect, and it wasn’t obvious to you or anyone else, you should share it with others. If it’s a failure, then other solutions should be tried, until the end of the list. If the list cannot be expanded in any meaningful way, then you are stuck.
What to do when stuck? If you’ve tried everything that you initially thought? The only way to get out of stuckness is to get fresh ideas. Fresh ideas don’t serve themselves in times of need on a paper airplane out of ether. There is a process to getting unstuck.
Try asking. If the problem has been solved before by someone else, then it may be googlable. If it’s an old problem, it might be bookable. Few problems, when broken down enough, lack ideas for solutions that someone before in thousands of years in history, thought and wrote about.
Try stepping away from the problem and understand the frustration that you are trying to address. This will sometimes give you ideas on how to work around the problem, and that might be good enough.
If you are upset about the mess you’ve gotten yourself into, stop being upset. Having negative emotions will certainly affect the quality of your work and may cause more problems that would not have existed otherwise.
Try talking about it. Even to yourself, externalizing the thoughts into the air around you provides a sense of relief. If talking to another person, they may be able to offer insights on what to do, seeing your situation in a different light.
Try coffee or tea. Don’t buy it — make it yourself. The ritual of making a drink will help clear your mind. Once you come back to the problem, you will have a fresh perspective.
Try sleeping. Your mind will learn on the other problems you’ve solved that day, and the abstractions may be applicable to the current problem.
Try staring at the problem for two whole minutes without arduous thought. If it’s abstract, write it down on a piece of paper. If it’s physical, touch and feel it. Notice its peculiarities and laugh at it. You are the solver. You solve it, not the other way around.
But whatever you do, don’t give up on a whim. Whenever you have given up on solving a problem, you must declare to yourself that you “give up”. If you give up easily, then you are submitting yourself to the hardships of life and seeking happiness in discontent.
These ideas are not new. I only wish to bring it up as to save you time from reading this fantastic book, “Zen and the Art of Motorcycle Maintenance”. Here’s an excerpt about a screw that’s literally stuck:
"" Thoughts about the screw as combined rigidness and adhesiveness and about its special helical interlock might lead naturally to solutions of impaction and use of solvents. That is one kind of Quality track. Another track may be to go to the library and look through a catalog of mechanic’s tools, in which you might come across a screw extractor that would do the job. Or to call a friend who knows something about mechanical work. Or just to drill the screw out, or just burn it out with a torch. or you might just, as a result of your meditative attention to the screw, come up with some new way of extracting it that has never been thought of before and that beats all the rest and is patentable and makes you a millionaire five years from now. There’s no predicting what’s on that Quality track. The solutions all are simple...after you have arrived at them. But they’re simple only when you know already what they are. ""
Problem solving is a rigorous process sandwiched between empathy and the good life. After problem solving, you will have gotten closer to what you believe makes you happier. Whether that is money, more time with family and friends, or novel experiences outside your current reality. I have faced problems about problem solving, and wanted to share some of my solutions with you. Hopefully, when you find perfect solutions to problems that other people are facing, you will share those, too.
// Thank you for taking time to read such a long article. I appreciate feedback and I hope to continue to improve my writing.