Just like you, I am quite good at some things, and not so good at others, and that’s OK. It's more than OK because it’s what drives us to learn something new every single day, right?
For some time now, I’ve constantly heard people I’ve worked with say that I am super good at the art of troubleshooting… and well, I have to confess that I’ve started to believe it.
But to be really honest, I think that I am not only good troubleshooting at my job, but I also believe I’m good at it in every aspect of my life. And mostly, this comes from my obsession with finding patterns everywhere around me (and yes, I’m a bit cocky about it).
I’ve always loved puzzles, riddles, solving hard problems... and I still love it. I’m addicted to anything that challenges my mind and my daily life.
I’m that kind of guy who will always prefer to be in a situation where I have to understand all the glitches in my surroundings rather than just relaxing on a balcony watching the sunset.
I Think I'm Turning Japanese
Here’s an example of just how much patterns and troubleshooting are part of who I am.
Some time ago I had to go to Japan on a business trip. I’ve always been fascinated with Japanese culture, so I was excited. Then reality hit. To me, It’s pretty cool to be in a totally different culture, where almost no one speaks English or any other language that you can speak. But some things are just too much, like having to buy a train ticket. And if you’re thinking “yeah, right, buying a train ticket. it’s not that hard,” I can assure you it is, if the machine you have to use is like this:
When I got to the train station I was happy. I went to a machine, and there was an English option, which I selected. The first two steps were in English. All good, right? No. For some unknown reason, the third step was in Japanese. I tried other machines and it was all the same. I tried to be calm and start again. The third step asked me, or at least looked like it asked me, to choose from a button with 1 person or 2. I chose the first one, hoping that the English would return. Instead, the fourth step was even worse. It was literally 30 buttons in a range from 70 to 7000. Just like this. No unit, no nothing, just numbers.
So, what does a guy do, when confronted with apparently random numbers on a screen, to get a ticket? In my case, I decided to look at the problem analytically. Basically, I troubleshot my problem.
First of all, I took a step back and observed. It’s always important to look at the big picture. Many times, as you know, a solution for your problem is right in front of you, but you need to be able to find it.
In my case, it was a literal step back, which really helped me to understand the pattern. All regular passengers would first check the map before purchasing the ticket and only then would approach the machine. So, to the map I went.
It was now pretty obvious that the red mark was my current location, and now also obvious that the numbers related to the distance from my current location. My next step was to ask around and get a map with the station names in English. I could then understand where I was going and which random number was attributed to my station.
So, now that I had most of the information I needed to get my ticket, I proceeded to the machine with confidence. Everything went smoothly this time and, yes, those random numbers were the ticket prices.
In the end, I caught the train and appreciated the fact that I was able to get through all these differences and be successful at one of those little things that you normally do without thinking, but that make you feel like you’re home, at the same time. And also that I had the competence and mindset to tackle another one of those small daily challenges. It was like I was turning Japanese.
What Kind of Sorcery is That?
Every time I share one of these stories (yes, I have many more), my colleagues nag me to share the tricks that make troubleshooting look so easy.
The thing is: there are no tricks. Or maybe they exist; maybe they are nothing more than some rules that I try to follow pragmatically while troubleshooting, and I don’t think of them as tricks. Every issue is different, which is why it’s so hard to share knowledge on this topic.
However, a thing that I can definitely share and somehow express here is this. When I have almost reached that point of madness where I think the universe is mocking me, I just stop and follow these 6 rules. I use them as the breadcrumbs needed to find the way back to sanity.
They are not written in a particular order, and you may use some or all, depending on the case.
Rule 1: Understand the Field You Are Working In
Always remember that information is power. Understand the business and the technology. Gather information about it, through documentation or by talking with more experienced colleagues, and only then address your issues.
Rule 2: Back to the Primitive
More important than solving an issue is understanding its origin. That's why you shouldn’t look for a solution before you are sure of the origin of the problem. Always take time to investigate the reasons of why a problem is occurring and never ever settle with “'inexplicably, the problem solved itself,” or “we can’t reproduce the issue,” even if it happens.
Rule 3: Check to See If PEBKAC
This is a no-brainer. If you wrote the code, always assume that the problem was caused by you. Check whether Problem Exists Between Keyboard And Chair. If you can prove it doesn't, good. You can escalate. If you cannot prove it, as usually happens, it’s also good because you can fix it pretty easily.
Rule 4: Do as in Guess Who? Or the Art of Going from High Level to Detail
Do you remember the game “Guess Who”? How many times did you start with, “Does the person have a crooked nose?” Probably zero, right? We all started with the regular “Is it a man or woman?” because you instinctively know that this question will eliminate many characters. This is troubleshooting done right.
Rule 5: Understand the Big Picture
Take a step back, and stop making assumptions. When the case is really difficult (like those almost impossible Agatha Christie stories), for sanity’s sake and to track everything, I just write everything on a spreadsheet or just on a piece of paper. If you want to do it in style, do it in a whiteboard, like Dr. House. He was actually a hell of a troubleshooter.
Rule 6: Explain the Problem to a Rubber Duck
How many times did you find a solution while explaining the problem step by step to another person? So, talk to someone and explain the issue in detail. If no one is available, just explain it to a rubber duck or an imaginary friend.
Troubleshoot Your Work Like You Troubleshoot Your Life
At the end of the day, my recommendation is: try to deal with your technical issues the way you deal with your problems in your life. My experience in Japan would certainly have been much worse if I hadn’t used these rules.
If you are really interested in becoming a better troubleshooter or you simply don’t have any other choice, I truly recommend that you avoid shortcuts or laziness.
Troubleshooting is an art that should be practiced patiently, pragmatically, and systematically with an attention to detail.
But, if you are not like me and you find troubleshooting somewhat boring or an obligation, my final advice is: take a +1000 piece jigsaw puzzle and assemble it by following my guidelines and see for yourself the difference that it makes.