Category Archives: LearnWith

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.

Learn Withs

Twitter is a weird place. I see so many people sharing things and appearing to be amazing. By the way, I choose the word “appearing” not to detract from their achievements but because appearances are not always what they seem. I have dealt with that topic and my feelings around them before.

My feelings now, are around wanting to share and wanting to help but of not being sure if what I have is share worthy. I’m probably selling myself short but I feel like I don’t have much specialised knowledge to share. After 13 years in the industry doing everything I don’t see how this can be case but it feels like whatever I can say has been said before and probably much more succinctly.

Having said that, I believe you should focus on your strengths when trying to do the best you can. The one thing I have been told and has been implied at me on many occasion, is that I excel at is picking things up quickly.

This is, I think, is what I can share. I can share with you the journey of how I learn these things and the findings and conclusions I come to along the way. I can share with you my my process and my reasoning while trying to solve a problem. Apparently one learns better when one is trying to explain something to others, so this process will help me too. Over the next few years while I bring my project to life, I will be tackling many things I have no idea about and I will be writing about them here. We’ll be learning together. I invite you to come Learn With me.