Focus is a great thing. Without it, it’d be hard to get anything done.

We all know this and many of us try to stay focused for as long as possible in order to accomplish more.

However, what many of us don’t realize is that staying focused for a long time can also have negative consequences. It can train our brain to ignore things not directly related to the task at hand, which can hinder our self- and social awareness.

This used to affect me a lot. As a programmer, I spend most of my time at work solving problems. Once I’m done with work, my brain would often remains stuck in this mode of thinking. As a result, I’d usually remain oblivious to what’s going on around me until my family members started pointing it out.

In the past year, I’ve done some work to improve my awareness, mostly by practicing mindfulness meditation (which, by the way, also helped me with a bunch of other things).

But going back to problems with overfocusing - the negative impact goes beyond one’s personal life. It may sound counterintuitive, but focusing for long periods of time can actually reduce your effectiveness at work. What ends up happenning is that you miss the important clues in your social environment.

More often than not, programming projects are developed by teams. In the team setting, being socially aware is essential. In other words, programming jobs require much more than just programming. They require tuning into your clients’ thoughts, needs, intentions and expectations. They require clear and frequent communication with all stakeholders and other developers. They require building strong, trustworthy relationships.

I don’t think these things get talked about enough. The goal of this post, and to some degree this entire blog is to change that by sharing my own thoughts and experiences, hoping that I will encourage you to do the same.

When projects fail, people often say that one of the biggest problems was bad communication, but often the conversation ends there. I’m not sure why this happens - maybe because many people view these things as something outside of their expertise, or responsibility. And as a result, nothing changes and the same mistakes get repeated over and over.

The interpersonal aspects in general play a large role in software development. Of course, technical skills are very important as well, but high levels of effectiveness require more than being a good programmer - they require self-awareness, self-control and empathy, and developing these competencies requires a change in focus and perspective.