Not everyone is an extrovert, and for sure not every programmer is, but companies are created by teams, and it is the team that takes the greatest responsibility for running the company effectively. If team members do not collaborate, there is very little chance your business will succeed.
The work of a programmer is not as predictable as many people may suppose. The fact that programmers work with machines does not mean that there is no place for relationships and collaboration. Yet working with other people is much more difficult than working with machines, especially if you have to work with people quite closely on everyday basis.
There are plenty of dysfunctional teams with huge problems with sharing knowledge. And there are also plenty of programmers who have a great difficulty in sharing their code with others, which eventually may lead to a real disaster. It happens that programmers do not even want to show their code to someone else not to mention letting someone ”touch” it. But speaking bluntly it is not a behaviour acceptable in the environment where professionals work. In a successful software company it is the team who owns the code, not the individuals. Every team member is able to make appropriate changes to the code. Professional developers let others work on their code. They do not build walls around their code. They do not prevent others from learning from their code. Professional developers work with each other and learn from each other.
And they often learn by pair programming, which is not only one of the most efficient ways to solve the problem in case of emergency, but also one of the best ways to review your code. By pairing developers share their knowledge and exchange positions. They collaborate in writing the code. They are not afraid of seeing each other’s mistakes and feeling each other’s fear. They talk about the problems. They communicate.
There are surely times while working alone is the right thing to do, especially when you have to think deeply about the problem or when the task is trivial enough to do it on your own. But always keep in mind that even if you work better alone, the whole team does not have to.
It is good to be passionate about what we do, but it is also good to keep an eye on the goals of people who are around us. Cooperation and collaboration with colleagues, managers, sales people, business analysts, clients etc., is necessary to create a successful business and effective work environment. We should always think how the company we work for may benefit from what we do. Our job is to keep the business alive. And we should do it by working with other people, by working with each other, not by burying ourselves in the “tomb of technology.” Professionals do not do that.