Aspiration and Advisory

View Original

Team Communication For Software Engineers

Software developers are usually very technical people. They are outstanding in designing the application architecture, writing code, testing it, and so on. However, these excellent skills may be complemented with poor communication skills and an inability to deal with social issues. This article describes some problems in team communication and possible ways to solve them.

No Information Sharing

It is the most common issue you may find in any team. Any team member may not inform other team members about something. It may happen intentionally or unintentionally.

Unintentional lack of information sharing is easy to predict and easy to avoid. It often happens in big teams or when each team member has lots of responsibilities. The solution is a good process organization in almost all cases. Separate calendar for missed events, daily meetings (standups) for status updates — these improvements help a lot in such situations.

Intentional information hiding usually indicates a severe problem. If a person does not want to share some critical information with others, then there has to be a significant reason to do that. A team needs to understand the motivation of this person and do whatever it takes to prevent it from happening in the future.

Team Separation

Every person is unique, and leadership skills may vary as well. Some team members may use it to spread their influence across the team to be in a better position comparing to the others. Such an approach quickly separates the team into smaller groups which may have different goals, and even lead to conflicts between each other.

The same issue may happen if the motivation of different team members is very different. As a consequence, it may be uncomfortable to share experience and work together.

The solution can be in finding common goals to unite these groups back to one team. It is also may make sense to find the initiator and discuss the situation with him/her. In some exceptional, neglected cases splitting a team into several smaller groups can be the only solution.

Interpersonal Conflicts

It is quite an unpleasant situation when two people can not work together because of the conflict between them. Usually, it happens when nobody took care of some of the issues described above, and it grew to the interpersonal conflict.

In most cases, there is no easy solution here. If people have a conflict, then it has to be solved one way or the other and attempt to hide it may lead even to worse consequences. The best situation is when all persons involved in conflict understand the situation and agree to try to solve it (or at least not interfere). Then there is a chance to return to the pre-conflict state and continue from there.

The worse situation may occur when conflict sides do not want to agree. Then such a team may need the help of a professional psychologist to understand the origin of the problem. Knowing this origin, a team has to discuss the situation and find an adequate solution. If there is no such solution, then the last resort is to remove conflicting team members or split the team.

As we can see, the best practice for all described issues is to foresee them and solve them as soon as possible. It is is not an easy task, and the solving process is not a pleasure either. However, somebody has to do it to maintain communication inside the team. Only then this team can build good software, and customers will have what they need.