This site is mostly about ideas that I can’t put in practice by my own. However, in my professional life, things are completely different. One way or another I get lots of things done and I prefer to keep it this way. I am going to share in this blog post a couple of methods for solving problems I use rather often. Who knows, maybe one day I will be able to use these approaches to solve the creation and implementation phases of one of the innovation ideas.
So how do you solve problems?
First of all, the most important thing is the right mind set:
Every problem has at least one solution!
This is an important mental first step, it drives you to accept the problem and find at least one solution for it. No other method for solving problems matter if you skip this step. For sure, refusing, avoiding or postponing the problem will not help you solve it. With the right mindset, the problem needs to be well understood. Reading it a couple of times especially for difficult problems for sure it will help.
I will define 3 types of problems:
- Problems that you have encountered before.
- Problems that you have never encountered before, but you are familiar with the concepts utilized in them.
- Problems you never encountered before and are not familiar with the concepts from them.
Problems that you have encountered before
These are the easiest problems to solve. You already know the solution. After a quick assessment of the solution you already know, to see if it matches the current problem then you need to evaluate if the solution can be improved. If you have enough time at your disposal I would recommend you to improve it any way. Even better you can automate the solution or fix the root cause of the problem.
Over time, more and more problems will fall into this category. With years of experience, you’ll face less challenges in solving problems. With all that, the only constant thing is the change, so don’t expect for the context to always remain the same, technology not to evolve and new challenges not to appear.
Problems that you have never ecountered before, but you are familiar with the concepts utilized in them
These type of problems require a bigger thinking effort. On the good side, solving them is more rewarding too.
For rather simple problems ‘Trial and Error” is a good approach to solve the problem through repeated sometimes incremental attempts.
Of course, there is a high chance other already solved the problem and in
general “there is no reason to reinvent the wheel” each and every
time. Therefore, making a Google search on the problem my definitely help. I have a personal joke regarding this:
“My Google is better than others”
For complex problems, dividing the problem into smaller simpler ones might be a good idea as long as you don’t lose the high-level picture. The Romans used to say “Divide et Impera” and they were right about it.
Reverse engineering might be useful too as a method for solving problems.
In my professional experience, technical problems have at least 2 solutions. A solution based on technology or a process to address it. Ideally, the process-based solution is only used in the worst-case scenario. It can be your backup plan too.
Problems you never encountered before and are not familiar with the concepts from them
For solving this type of problems you need to do some homework first. The concept of “My Google is better than others” still applies but in a different way. First, you have to educate yourself on the concepts of the problem. A few Google searches and a few articles will help, you don’t necessarily need to become an expert to solve the problem.
Do not fall into the trap of thinking that reading the Wikipedia page you already know everything about the subject. Wikipedia knowledge is only scratching the surface. You can use it to revive your understanding but for sure it cannot replace years of study. It does not replace a university degree and battlefield experience gained in real-life project experience neither. I encountered many people that ‘heard’ about the concepts and have a ‘Wikipedia’ knowledge on them and it’s very hard to work with them. They rarely truly understand the concepts or how/when to apply them. Even more, they sometimes take arguments very personal too. After you educate yourself, then you can apply the methods described for the above-mentioned type of problems.
Another way to address them is through analogies for creative problem-solving. You can easily make analogies with some other field that you are more familiar with. Then you simplify the concepts and if your assumptions are correct, it might lead you to a good solution. You might be surprised to find that the problem was already solved in the other field and perhaps you could try the same approach to solve it. Either way, if you make an analogy with a parallel field or not, applying an abstraction layer on top of the problem might help you simplify the concepts and reutilize methods you already know in solving them.
No matter the type of problems you are trying to solve and no matter what methods for solving problems you are using, you have to set your expectation right too. For very difficult problems it may take you days to meditate on the problem and thy to view it from all possible angles until you find the best approach. The good side of it, these are the most rewarding problems to solve too.