editione1.0.1
Updated August 7, 2023Understanding the audience youโre communicating with is an important principle to keep in mind for effective communication. Knowing who youโre speaking with and their level of understanding about a topic will often dictate how the conversation will play out. Are you communicating with your boss, another programmer, a nontechnical coworker in another department, or an external client?
Depending on how technical your audience is, you may need to change how you explain certain topics. You might be able to discuss the details about API schemas, HTTP status codes, and how CORS requests should be handled between your backend and frontend applications with your fellow programmers, but a customer success representative or a marketing manager may have no idea what those topics mean. Sometimes it can be difficult to explain technical topics to nontechnical people, but at some point, youโll find yourself coming up with analogies to explain a complex technical concept to someone who isnโt as technical as you are.
We deal with a lot of abstraction in our day-to-day jobs and deal with things like entities, instances, classes, interfaces, modules, and so many other concepts that are hard to articulate and explain to other peopleโsometimes even other programmers. Even though these concepts may make sense in your own head, finding the right words to verbalize your thoughts is sometimes difficult.
The most important thing to keep in mind in these conversations is to respect your audience, especially if they arenโt able to follow along when talking about technical concepts. The last thing you want to do is to be condescending because they donโt understand a complex technical topic that seems like second nature to you.
Try your best to avoid using slang, acronyms, or technical jargon. Instead, try to use metaphors or draw comparisons to common concepts that almost any audience would understand. Trying to connect a technical concept to common everyday objects or ideas that your audience may be able to relate to can even be fun and challenging.
In some situations, it may be beneficial to teach your coworkers simple programming concepts if you know youโll be working closely on a project in the future. Teaching them concepts such as an API or the difference between frontend and backend systems can go a long way in helping them understand requirements or limitations for a project. Additionally, they may end up teaching you about marketing, operations, customer success, or other topics related to the team they work on. The more knowledge you have about different organizations within your business, the better decisions youโll be able to make when designing systems and user interfaces and solving problems for your customers.
While you may be interacting with people from different areas of expertise, you may also be interacting with people of varying seniority and experience, so itโs important to keep your audience in mind so you communicate at the appropriate level for your audience.
Another way to gauge the audienceโs communication needs is to ask them directly. Sometimes directors, vice presidents, or executives may not care about the details of how you implemented your solution, but sometimes they actually are interested in how it works under the hood. The best way to determine how detailed to get is to straight up ask them how detailed you should get when explaining something. Most likely all they care about is that the problem was solved or the bug was fixed, but sometimes they might want to know the nitty-gritty details about it.
Additionally, they may be more interested in knowing when something will be done or if something is even possible to do and less interested in how itโs done. The role of upper management is to set the vision, put together a timeline, and prioritize resources to bring the vision to life. Oftentimes, they may not care what design patterns or frameworks youโre using, but they do care about how long a project will take so that they can fit it in with the other priorities on the roadmap.
The bottom line is that programmers with good communication skills are the ones with the ability to communicate complex ideas in clear and concise ways to both technical and nontechnical audiences. In doing so, they can build rapport with their team members, including individual contributors, managers, directors, VPs, and executives. When your team members know they can trust you to convey important information to various audiences, you will be seen as a valuable asset to the company, which could lead to more responsibility and a higher salary.
Once youโve determined who your audience is and how you should approach the conversation, the next thing to be aware of is the channel youโre using to communicate. Whether the conversation takes place in person or through a written form of communication such as chat or email will determine how you approach the conversation.
The first channel weโll dive into is written communication. As a programmer, youโll be reading and commenting on a lot of code reviews throughout your career, and how you communicate your thoughts and ideas in writing can determine how well those ideas are received by your coworkers.