From problem to solution - optimise your process
A blogpost by our CTO, Michiel Sioen.
Problem solving is an integral part of a lot of professions. Yet everyone struggles with it one time or another. There are a lot of known truths, guidelines and assumed knowledge out there but I find it’s very easy to skip the relevant steps when you need them. In this post I’d like to formalise some of these steps as a guideline and explain why they are important during your process.I’ve worked on this blog post in various forms and with different approaches but it never quite came to completion. After seeing myself and others run into the same hurdles multiple times over the past years, the importance of writing some of these ideas down only seemed to grow, if only as a touch point for myself. I hope others find value in it as well.
Define the problem
Defining what you’re trying to solve sounds like the obvious first step to problem solving. However, this often seems to be the most disregarded step. Everyone makes assumptions. Spoon-fed solutions are rarely challenged. The visible problem might not be the thing needing fixing.
Any and all assumptions should either be removed or validated. Be very sure you have the full context to a problem. Take a step back if you get a prepared solution. Be critical of the full picture, not only the final details.
It might be more time-intensive to get all this information instead of just starting towards a solution, but solving the wrong thing will always end up costing you more.
So in my experience, the first step to a solution is establishing what you’re solving.
Voice it out
Voicing out problems and the possible solutions you’re working on is often the best tool in your belt. Your brain does funny things when sounding out something, rather than just thinking about it. You’re forced to slow down and organize your mind in order to properly explain what’s up. This helps give extra insights and quite often will give you the needed answers while asking a question.
This effect is also known as Rubber duck debugging but a rubber duck, while cool, isn’t required. Often the preparation of explaining a problem is already enough to get new ideas.
Aside from voicing something out to yourself, it’s always very helpful to get feedback and input from peers. As you already have a structured way of telling the story, by telling it to yourself, it’s easy to repeat this story to other people and get their input as well.
Take a break
Sometimes the most effective way to find a solution may be to stop looking for it. While you actively work on a problem it’s easy to be stuck in a loop or be blindsided in one way or another.
Take a break. Work on something else. Go walk in the park. Grab a coffee.
What you’re trying to achieve is called fixation forgetting. While you’re not actively working on the problem anymore, your brain doesn’t stop. By letting your brain puzzle on its own while getting additional external impulses, new links and ideas will come to you, seemingly out of nowhere. Be sure to note down these ideas. Otherwise you might end up the next day with the knowledge that you had a solution without the details.
Smaller problems are easier to solve. Break down complex problems into its smaller parts and solve the individual issues. By working on smaller questions, it’s easier to envision possible ways forward.
If possible, remove everything non-essential from the equation and look at the problem again with a fresh mind. By working this way it’s often possible to remove a lot of clutter.
Combining these two - removing non-essentials and working in smaller parts - helps understanding the bigger picture, foreseeing side effects and ensuring a steady progress towards a final solution.
Do your future self a favour: document solutions, issues and details along the way. Building up some notes or posts to refer back to later is extremely useful. At the time of working you have all the parts and considerations in your head, later on it’s very likely that some parts of the story are forgotten.
For bonus points, share the problem and the solution with your team, peers or the internet so everyone can benefit of your learnings along the way.