I hate when a fine Friday morning turns into an unscheduled damage control drill. It was around January or February last year; it was cold outside but turned hot inside. I know it was a Friday because it ruined my weekend. I was in a meeting when the discussion between usually calm people raised the temperature of the room by 10 degrees. It was emotional and driven by more than the words in the conversation.
What do you mean “there is no debugger”?
As an engineer, I am used to studying code behaviors by tracing execution steps with a debugger and by watching the content of variables. I can force values into those variables at run-time, and see what happens. Behavior drives data, data drives observations, and observations drive deductions and conclusions on behaviors.
Unfortunately, it does not work that way for other aspects of software engineering. When people are involved, or when you don’t have perfect data to make decisions, anything is possible and most things are opaque and unpredictable. The human dimension of software development doesn’t have any more tools than other disciplines. People are driven by factors you have to accept you’ll never know… or want to know. Moreover, you seldom have all the data you wish you had to make decisions. When conflict or uncertainty surfaces, the emotional side of people emerges with it and manifests in chaotic ways.
A tool at your disposal
There is one tool you can use, though. An immaterial tool that moves fast and you have to grab quickly. Pay attention to it: If you blink, you miss it. You perceive it as a faint stream of consciousness. As events unravel, it flows between your thoughts. It comes and goes in an instant, like a roadrunner on steroids; if you stop to analyze it, it’s gone. It darts through your conscious perception leaving a ghost image of its presence. When you notice it, you have 3 seconds to decide what to do. Are you going to chase it and grab it? Or are you going to erase any trace of it with logic, doubt, and fear?
That tool is your instinct. Instincts are something you do not fully control; they give you a push, then they disappear and leave you to decide what to do. I found that most of the time my instincts are naïve and unrefined, but often point me in the right direction. Trusting them leads toward good decisions. They can help you with technical decisions, interactions with people, choosing tactics and strategies, career moves, hiring, etc.
Don’t confuse instinct with fear
Fear can easily be mistaken for instinct, but it is important to understand the difference. Fear, usually, lies and prevents you from doing something that will cause a change. People naturally resist change because change brings risk. But, in modern times, taking risks is rarely matter of life or death, and often is on the path to success.
Fear is a fleeting thought that insinuates doubts between you and an action you are considering. An instinct is a push toward action. A fear says, “Don’t do it!” but an instinct says, “Do it!”. An instinct says, “Be silent!” but a fear says, “Don’t talk!”. The difference is subtle but is important.
We evolved with fears as a safety mechanism to prevent fatal mistakes. In everyday life, especially in business and office settings, fear is your enemy. Trust your instincts, question your fears, and try to recognize the difference between the two. It is not an easy task. I have been working on it for years, and I am not sure I’ll ever master it.