Effective communication — why is it important as a software engineer?
Communication could be simply defined as delivering information. However, effective communication is when that information is actually received by the audience. It doesn’t matter how good your communication is, it is ineffective when the information isn’t received and understood by the audience. To give an example of this, the best-written computer program makes no sense to a physician. Here the information is well delivered but not received/understood at all. Now that we have understood what effective communication means, why should a software engineer care about it? Isn’t delivering code enough? The answer is NO!!
Before we understand why effective communication is important and the key areas to prioritize, let’s understand some of the basic problems of ineffective communication. The number one problem of ineffective communication is wasted time, both for the speaker and the listener. It could lead to misunderstandings and disagreements. This can include making mistakes or completing tasks incorrectly, causing arguments, or hurting your relationship with the team members. If you don’t want any of these, working on communication is very important.
There are many areas we can focus on to make our communication effective and can find tons of articles on the internet. But here are the few to consider prioritizing as a software engineer. While these principles apply regardless of the field of work, you might be able to relate easily as an engineer.
1) Know your audience
“How well we communicate is not determined by how well we say things but how well we are understood.”
Engineers like details and we love to talk about how the system works and what we know. We think by sharing all the information we know we might be able to enlighten the receiver to make a better decision. Right? Unfortunately, that's not true. It is very important to understand your audience and what they are interested in before deciding to share the information. In fact, there are many roles in companies created just to interact with the customers/business because software engineers are perceived as not the best at communication.
Let's use some examples to understand why communication should change based on the audience.
Communication with tech lead/fellow engineers
If you are having a technical discussion or presenting a proposal in a design meeting, going into granular details might be extremely important. The audience is interested in the details and going into the right level of detail might help other engineers provide feedback and align with you. It could help you catch issues early on, explore ideas and receive great feedback that could save you a lot of time in the future.
Communication with a product manager
Engineers are interested more to understand HOW something is built, product managers on the other hand are probably interested to learn more about WHAT and WHEN than HOW. Providing them details on how the system is designed and code is structured, though is interesting to you, isn't something they are most passionate about. They might be interested to learn if you have thought about the product experience including resiliency, availability, scalability, etc, however, spare them the details of how exactly you have built them.
Communication in a presentation
Based on the role, you might often be asked to give a presentation. The most important thing about a presentation is to know who your audience is. Is it to the leadership about the project proposal or is it for fellow engineers in other domains about how the technology works or is it to your customers to explain how the product works? The content and the level of detail shared in the presentation totally depend on who the audience is and what they are interested to learn. Failing to provide the right information might just lead to a total waste of time. Leadership might be interested in the project plan, risks, costs, and ROI; Engineers might be interested to learn about the technology and ease of adapting to their domain; The customers might be interested to learn on how the product will provide value to them. Sharing details that are not specific to the listener’s interest will lead to ineffective results.
2) Communication with the manager
Clear and effective communication with your manager is extremely important for your success at the company. Most managers do set up 1–1’s with their team members. If not, discuss with your manager if they would be interested in setting one up. This is a great opportunity to make a connection and ensure your goals are aligned with the organization's priorities and vision. These conversations are just not to provide an update on the initiatives but to discuss problems and roadblocks that hinder you or the team be more productive. Don't just mention the problems but offer solutions and alternatives. Don't just increase the manager's problems, but look for offering help to take on more responsibilities when necessary.
3) Communication with your team
“Effective teamwork begins and ends with communication.”
Team communication makes things easier for you and your team to achieve common goals. That is why it is important to constantly improve communication processes and channels. Be “present” and participate in your scrum meeting/ team meeting/design meeting. That doesn't just help with collaboration but also can result in better ideas/processes. Don’t multi-task when someone is presenting just like you would want it to be when you are. Give the presenter and the meetings your full attention.
4) Practice active listening
“You cannot truly listen to anyone and do anything else at the same time.”
While communicating your ideas and thoughts is extremely important, listening to others' ideas is even more. Active listening means proactively listening to what another person says instead of just hearing it. Software engineers are always eager and excited to share their knowledge and opinion. By focusing on what others are saying instead of your own opinion, you’ll be able to catch flaws in your own thinking. Be open to the idea that you could be wrong. Your ideas will change, evolve, and hopefully get better over time. Being an active listener doesn’t just increase the trust in you but also helps you grow and learn which could boost your growth trajectory.
Conclusion
When communication is effective, it leaves all parties involved satisfied and feeling accomplished. By delivering the right level and amount of information, you could connect with the listener, deliver effectively and avoid conflict. In situations where conflict does arise, effective communication is a key factor to ensure that the situation is resolved in a respectful manner. How one communicates can be a make-or-break factor in progressing at your job, maintaining a healthy relationship with the team, and healthy self-expression. So, let's work on it..!!
Do support our publication by following it
