Communication is something that we aren't famous for being good at as Software Engineers. However, it's one of the most important essences of our jobs to deliver the right solutions to the actual problems.
In this blog, I'll try to mention the most important points that can help you to better communicate with your colleagues in your team or even other teams and other domains in your organization whatever its size. This blog is inspired by the book "Pragmatic Programmer"
To save you time, these are the main points that I'm gonna talk about here
Figure out what you want to say, quite clearly
Know your audience and use the "WISDOM" Technique
Choose your Moment
Package your ideas
Be a listener
Get back to people
let's dig in.
Figure out what you want to say, quite clearly.
Before actually starting communicating your [ideas | suggestions | questions | requests | ..etc], try first to outline them, write them down, and read them out loud to yourself. Try to make sure that they describe precisely what you want to say and communicate.
This is very helpful in multiple situations like meetings, writing docs, phone calls with customers or other teams you work with, interviews,.. etc, I'm sure you got the point.
Know Your Audience
We all have been in these meetings that involve different levels of backgrounds and interests, even if all the audience were technical geeks like us, there are always different backgrounds and different levels. Understanding this and evaluating what is the main interest of your audience and what details and aspects they can relate to, will make your ideas be more clear for them.
In the book, the authors used an example where you want to suggest a web-based app that helps end-users to submit bug reports.
For the end-users: They will appreciate that they can submit the reports 24/7 without the need to call or wait on the phone.
For the Managers in the support department: They will be happy because they will need fewer staff and the reporting process will be automated.
For the Marketing people: This is an opportunity to boost sales.
For the Developers: This is a great opportunity to get some experience with web-based apps and maybe new technologies/stacks/databases/ideas....etc.
So depending on who you are talking to, you will know how to present the idea and what aspects they want to hear and can relate to and understand the effect of it.
The Authors framed some questions you can use to help you frame your ideas for different audiences
What do you want them to learn?
What is their Interest in what you have got to say?
How Sophisticated are they?
How much detail do you want?
Whom do you want to Own the information?
How can you Motivate them to listen to you?
Choose your Moment
Timing is one of the most important ingredients of any process, your idea can be both brilliant and stupid depending on the timing. it's not the best idea to report a request for a machine upgrade on the last day of the week @ 5 pm on a rainy day, although it will make a positive impact on your productivity and will make things go faster in the process, it's in a time that made it seem not a very good idea. choose your timing and avoid the bad ones.
Package your ideas
It's not just what you have got, but also how to package it
Good ideas need to e framed in the right format to shine and make everybody appreciate them. Packaging plays a great role in presenting the idea. people get their first impression from the introduction and the package of any product.
This is common between us as devs especially the ones who work in the backend and do not interface directly with the customer side. We tend more to care about the main logic and performance of what we make and don't give much attention to how it's presented and this sometimes reflects on the way we communicate. We tend to say the main idea expecting the other to get how brilliant this idea is without formatting it in a way that represents this brilliancy to the others
Be A Listener
There is one technique that you must use if you want people to listen to you: listen to them.
People like to be heard and that makes them more likely to take and accept your input.
Encouraging people to talk by asking questions and for summarization of what they think, turns the meeting into a dialog which will make your ideas and suggestions more effective to them. This is important in most situations.
Get back to People
You know the feeling when you ask someone for something and they don't get back to you, you feel that they are impolite or not respectful, but at the same time, we sometimes do this without noticing. It can be unintended as it can be the same to them, but we can all agree that this behavior has a very negative effect on us.
Try in all situations to get back to people even if you haven't got what they asked for yet, let them know the updates, and at least tell them that things will take more time and you will get back to them as soon you got what they asked for, or even make them know that you don't have the answers. In any situation, keep them updated, and don't keep them on the hook.