Developing software is nowadays basically a teamwork. Those days where a single person spending nights awake and drinking caffeine was able to produce impressive pieces of software are gone. Professional software development is done in team where no one fights alone.
That leads undoubtedly to the point where people interaction becomes intrinsic part of the developer’s job. It’s not enough to understand a technical problem, nor to figure out a proper solution. Being able to communicate with your colleagues, stand for your ideas and openly discuss others’ opinions are key to succeed as software professional.
Obviously communication skills heavily depends on personality as well as on culture and education background. For some people communicating is as natural as breathing. For other it really takes an effort. Not few, sadly, not even give a try.
But communication can also be exercised and improved. We need to be confident about our own capabilities and seek for interaction and collaboration with colleagues in our daily work. Being receptive to others’ needs and asking for help when necessary without fear of appearing novice will make us more honest. And when it comes to communication, integrity pays off.
Egos are natural enemies of communication. Let’s put them aside if we want to engage instead of impose. People with inflated egos are unable to convince. They may be able to impose themselves to others in a pure hierarchical way, but that’s not real communication. There is no place for feedback in such a military mode. An the saddest aspect is that they may be technically right, but are just unable to generate enough confidence on other.
Communication is essential in the software business. The higher you get through the career ladder the most evident it becomes. Team leaders and software architects are mostly coordinators. But all developers at any level of responsibility will be better off if communication in team works best. To achieve that all members have to cooperate. It’s never too late to start.