Monthly Archives: May 2019

LearnWith: Practical Problem Solving

Practical problem solving (Illustration by myself)

In this first LearnWith in the series, I outline my general approach to practical problem solving. In it I detail how I go from knowing nothing to knowing what needs to be done. You might notice I didn’t say “go from knowing nothing to knowing everything”. Knowing everything, although rewarding, almost always isn’t the goal. The goal is to solve the problem.

If you’re trying to know everything about a vast knowledge base before making an attempt at solving a problem, you may be falling into what is called analysis paralysis. We’re getting ahead of ourselves though. Analysis paralysis is usually an issue for someone who has somewhat of an idea of what they’re dealing with.

Define the Problem

If you find yourself worrying and doing nothing or not knowing where to start, you probably haven’t defined the problem or defined the problem well enough. Defining the problem is the first step to solving it. It’s important to define what success looks like right at the beginning. It’s how we know we have finished and we can celebrate a job well done.

The BBC Horizon documentary “How Long is a Piece of String?” can be used as an example why we need to define success. For a seemingly simple task such as measuring a piece of string, we might end up doing measurements in imperial when it might have been needed in metric. Alternatively the measurement might not have been accurate enough, it was measured to the nearest centimetre instead of millimetre. Perhaps nanometres or smaller is the level of accuracy needed. We then need to keep in mind that at a higher levels of accuracy, the room temperature has a big effect on the result of the measurement. What temperature should it be measured at? 0 degrees? Celsius, Fahrenheit or Kelvin?

As you can see, there are MANY possible results to be gotten from measuring a string. When finding a solution, it’s important to be practical. Measuring the length of the string to the nearest cm is much less effort than measuring to the nearest nanometre. The first needs a tape measure and the other needs a laboratory with expensive machinery. Should we do both? If you need the more accurate measurement, the first example is wrong; if the coarse measurement is good enough, the second example would have wasted a lot of money. Both ways measure the length of the string, both provide a correct answer, but is either answer useful?

To define The What of success in a practical way, you need to understand The Why. Understanding why you’re trying to solve a problem gives you the context needed to understand which solutions bring you closer to the result you want. In the string example, let’s say we’ve found out that we’re trying to provide a friend of a friend with a new shoelace. This means we won’t need the expensive laboratory equipment; the tape measure method should suffice. Understanding how the string’s length was part of a bigger goal, we got enough context to rule out the expensive method.

So far so good. However, the problems we deal with are never as one dimensional as measuring a piece of string. What about more complex problems?

Breaking it down

Achieving a complex goal can mean the implementation will need a non-trivial solution, one that requires multiple complex moving parts working together in a harmonious way. If you’re struggling to understand the problem or keeping the whole problem in your head all at once, it’s a often a sign you need to break the problem into smaller discrete problems. Even if the problem you’re working on is not that complex it’s usually a good idea to break your problem into smaller pieces. Breaking your problem up allows you to focus implementation on one aspect at a time with the knowledge that all other aspects of the problem will be done later or, if you’re working in a team, by a different team member.

Once you’ve broken each problem into smaller chunks, you can start solving each smaller problem, keeping in mind the context of the larger problem. This should see you ultimately solve the bigger problem altogether.


Things don’t always go as planned. You often won’t be able to do things the way you’d intended. This will force you into finding a creative solution that might modify how that solution fits into the larger context. If and when you get new information, revise how it affects the overall goal.

Let’s assume a goal of baking a lemon cake. The ingredients are 1 cup flour, 1tsp baking powder, 1 egg, 10ml lemon juice, … etc. You’ve started putting the ingredients together but you realise you’ve bought baking soda instead of baking powder. The shops are closed so you can no longer buy the baking powder, how will you get the cake to rise correctly?! Fortunately, you’ve remembered something from baking school, you remember baking soda and lemon juice can be substituted for baking powder. Crisis averted, but will extra lemon juice make the cake too sour?

In the example, we came up with a creative solution that solved one problem by being able to get the cake to rise but potentially causes another by changing the flavour. You now need to decide if this affect the overall outcome and what further steps need to be taken if any. Maybe add less lemon juice so the flavour stays the same or maybe you prefer a slightly tangier cake.

Try and solve the ‘difficult’ parts first. If your solution hinges on a something that you aren’t sure is possible, get an answer to that first. Do this by breaking down that part into the smallest piece possible, make a prototype or a proof of concept, and get the answer you need. This way you’ll know early on if what you’re planning is viable. Take your learnings and build from there.

Although it’s good practice, you don’t need to understand the full solution upfront. If you’ve broken the problem down in a discrete and self-contained way, you shouldn’t need to understand the solution to all parts of the problem before starting. Often times working on different areas can inform how to approach related but separate parts of the problem. Other times taking a step back by doing something else can give you insight you didn’t have before.

Next in the LearnWith series, I will take specific problems I am dealing with and apply what I have outlined here. By the end of that of that hopefully we will have learned something together and you will have seen how I got to that point.