As a developer you are dealing very often with problems that are difficult solve. Fortunately there are some tricks to solve a difficult problem.
Don’t give up!
The number #1 for not solving a problem is simply giving up. This may sound a little bit boring because we all know it. But on the other hand it is really difficult not to give up. It is in fact very frustrating, if were are not able to solve a problem.
So you could say “It’s not possible!” – a sentence developers say very often. Or, even worse, you could say “Well, I think it is possible to solve the problem, but I’m not good enough” Almost always both of the sentences are wrong. So don’t try to take the problem personally. Instead, see it as an opportunity to become better, see it as a chance. Because if you stick to it, you will eventually solve the problem and that is one of the most satisfying feelings in the world.
Speak with other people about the problem
It can be a huge help to speak with other people about the problem. Often other people have completely different solving ideas. And even if they won’t have the actual solution, they can get you into the right direction.
So imagine you are trying to find the reason for a very wired crash of an iOS app that you are not able to reproduce. You are immediately going into all the details and trying to sort the problem out. Is there some array overflow? Am I trying to accessing an outlet that is not initialized yet? But if you are speaking then to a person that doesn’t even have much experience in iOS development, he could say “Well, that sounds like a multi-threading problem!” Of course it is not always a multithreading problem, but in this case this could be solution.
Think outside the box
“Think outside the box” – everyone knows that quote. But what does it actually mean? When we are trying to solve a difficult problem, we often get a tunnel vision. That means that we are trying to solve the problem in a certain way that doesn’t has the potential to solve the problem.
Imagine you have developed an algorithm. You see that the algorithm works, but the overall performance of the application is very bad. Very often you are trying then to over-optimize the algorithm itself. But it could be that not the algorithm is the problem, but the context the algorithm is running on – the rest of the application. If you are looking at that context, you could identify a much quicker way to increase the performance and to solve the problem this way.
Take a break
This may sound a little bit counter intuitive, but sometimes the best way to solve a problem is by taking a break. For example, if you are working the whole day on a problem and you are getting tired, it doesn’t make any sense to continue. Instead, you should go home and do something you like and you should try not to think about the problem.
I’ve experienced it very often that on the next morning I can finally solve the problem in a very short period of time.
Go for a run and take a shower
This sounds a little bit crazy, but I’ve heard very often that people are cracking a difficult problem while taking a shower or running. I don’t know what’s the reason for that is, but since I’ve experienced that already very often, I don’t care what the reason is. So if you are working and there is no way to solve the problem, go for a run and take a shower.
Image: @ Sutichak Yachiangkham / shutterstock.com