Where does the problem lie? Why is it happening?
Hi everybody, I’m Riccardo. I’m an iOS Engineer at Bending Spoons since 2015. My main focuses are related to App Development, Lib Development, and Tech growth.
This is the third part of a series of articles related to problem-solving. You can find the other parts here:
In the previous post, we learned about the importance of properly framing the problem we have to solve. Today, I want to introduce a tool to dig deeper into the problem itself and understand its root cause as well as the elements it includes.
The tool is the Logic Tree. Starting from an issue, it lets us break a problem down into its elements to understand which needs to be solved more urgently. As with all the tools, there isn’t a single way to use it. My way of using it lets me decompose the problem in macro-areas answering to the classic “W” questions: when (does it occur), where (am I when the problem arises), who (is with me at that moment), what (am I doing). All this, to get to the why (it happens).
Iterating on these questions helps me divide the issues into mutually exclusive components that are easier to evaluate. Of course, you could follow a different question path if it works better for your problem.
Let’s try with an example. One of my main flaws is that sometimes I lose my temper. I really want to solve this problem, so I’ll try and use the Logic Tree to analyze it and to better understand the root cause.
I start by isolating the places where I spend most of my time. These are the gym, my home, and the office. Then, I ask myself with whom I spend my time: at the gym, I’m mostly working out alone; at home, I spend some time alone but I am mostly with my wife. Finally, at work, I mainly spend my time with my colleagues and my leads… But it happens that I stay on my own, coding. This is the tree I have built until now:

What do I do when I’m with these people? That’s the following question. Well, the gym’s branch has no leaf at this point. Also, thinking about that case, it never happened that I lost my temper there. So I can safely prune that branch.
Let’s go deeper into the other two main branches. Which activities do I do the most at home? Well, I clean and cook, I play videogames, read books and see movies and series. I often talk with my wife about our future and our ideas. And it seldom happens that we argue.
At work, instead, I tackle different tasks. When I’m alone I mainly design, implement and debug features for our apps and libraries. When I work directly with my colleagues, we mostly discuss new proposals or try to understand why there are some issues here and there. Finally, when it comes to interacting with my leads, we mainly plan the activities for future days/weeks.
At this point, the tree is kind of big and looks something like this:

Now it’s time to prune some nodes. Going through the nodes, I asked myself “how often do I lose my temper when I do this activity?”. I colored the balloons with different shades of red. The result is that the activities where I mostly lack calm are when I argue with my wife, when I debug a piece of code and when I discuss issues with my colleagues. Other risky activities are when I play and when I discuss proposals.
The new question that requires an answer is “why is it happening? What makes me angry when I’m doing these activities?”
I think that you get the method now: I went deep in each one of the nodes and developed the logical subtree that was departing from it. I actually found some useful insight on myself and some elements on which I can improve: for example, I understood that if I’m under pressure, maybe due to a deadline, and what I have done is questioned, I tend to reply instinctively and in anger. In those cases, I definitely have to step back and take a breath before answering.
And what about you? Which are the techniques you use to decompose and analyze your problems?
For the next three weeks, I’ll be on holiday, with few or no internet connection at all. I’ll be back writing as soon as I’m back!