Programmers can write hundreds of source code lines every day, read and analyze thousands of them. Test apps run a lot of pieces of code, either ours or from other origins for example vendors libs, internal libs, helper scripts, etc. We emulate all the logic in our minds and think how code work. And, from time to time, after working several hours on a specific bug or feature, we test (or send it to another person to test it), and the test fails.
You are an expert in this feature at this moment, you remember each line of code, each method, and you can describe, each possible flow, database query, and table. But you can’t find the problem. You review it once, twice, again and again… but you can’t discover why it fails. You think about possible causes and look for them, but you cannot find them in your project.
Leaving your professional pride aside, you look at your partner and asks for some of their time. Then, you start explaining the problem to your mate from the beginning, giving them the specific working context. Suddenly, like a bolt of lightning, clarity comes to your mind! You can see the error, usually something very small, like “>” instead of “<“, or “=” instead of “==”, or pointing to the wrong IP address, etc.
Why could you not see it until you shared it with someone else?
Over the years, I have suffered this situation a lot of times. If I explain my problem to somebody, in the middle of my explanation, the solution is revealed to me. The point is: if we look at something long enough, our brains fail to “absorb” the code we see. We only see the “image” of source code or other stuff we generate in our mind. And this image is too complex and can be imperfect, with differences with the information in front of us.
How do we keep up to date with new technologies at Intraway? Know all about it on A Day in a Developer’s Life at Intraway
Finally, you are in one of these three situations:
- You have completed the task successfully but you have used 3 times the estimated time.
- You consider giving up your job, you feel very angry and frustrated, and you still can’t solve your problem.
- You accept that you are blocked and, prioritizing your project deadlines and talk to someone.
If your choice is No. 3, you will probably follow these next steps:
You lift your eyes from the monitor and look around to find a subject-to-speak-to. You walk to the subject-to-speak-to’s desk or ask them to come to yours.
You open your mouth and -this is important- you take a few seconds to prepare an ordered version of the information you are about to give (initial situation, related components, what you have tried, etc.).
The last step is to take a few seconds, or maybe only one. But your internal thinking process finally orders all the pieces and assembles the puzzle. The problem is clarified! Everything is right now!
Of course, the subject-to-speak-to could help you with new information, or with their knowledge and vision of the topic, too.
Communication and Interaction to externalize problems
My conclusion is the following: all of us have the ability to find the solution if we have the necessary skills. But sometimes we are confused, and we start to spin around a part of what we know that prevents us from seeing the whole.
The elaboration of what we know, by externalizing the problem, allows us to go back to the beginning and, go ahead orderly. Without missing relevant facts, we force ourselves to see the things we already know with new eyes. It reactivates our critical sense and our logical capacity. And then, it allows us to see what was already there so that, if instead of waiting, we talk to someone, we can sort our ideas out and then achieve the goal.
In Intraway space shared among people is the key to minimize the effect. Regular breaks at work are extremely healthy, mentally and physically. But also the informal environment where everyone interacts with each other, allows quick queries to be made simple and optimization of the time spent.
Further reading on teamwork. Know the role of the Documentation team at Intraway by reading The chain of teamwork in organizations