If you want to come around as an assertive person, you have to be able to communicate well to get your ideas across to other people. And almost everyone sucks at it, which I learnt very early in my career. When I joined the very first company I ever worked for, I had a 1 on 1 meeting with a much more senior software developer who tried to explain my first project. I understood almost nothing, and I felt like an idiot. Two weeks later, I finally fully grasped what he wanted from me. And it was dead simple.
The same story repeated throughout my software development career many times. At some point, I worked for a company which did “sprint demos”. The idea was that after each sprint, people gave a short presentation of whatever they achieved in that sprint. At first, I was not very familiar with the company’s product, and so I understood maybe 1 in 10 demos. Once I became super familiar with the product, I still understood 1 in 10.
Highly developed communication skills help everyone in the team to synchronize and minimise any confusion-related overheads. Great, but these are not the only benefits. When you are a good communicator, you find it much easier to get people on board with your ideas. It also helps you to make sure people understand and appreciate your achievements.
If you think you struggle to communicate your ideas or achievements, I have good news for you. It is a skill you can learn. So when you puzzle over which programming language you should teach yourself next, why not learn how to communicate instead? Let me give you some pointers which can help you out in the meantime. The tips below were written with oral communication in mind, but I believe they also apply to written communication—just substitute “speaking” with “writing”.
Things to have in mind when communicating with others
Assume your audience knows (almost) nothing
This is my secret weapon, really. Think before speaking. Always think who your audience is and make assumptions about their level of knowledge accordingly. For example, when you talk to your grandma, she might not know what “internet” is. When you talk to your friends who are not programmers, they might not be familiar with terms such as “production”, “framework” or “DevOps”. When you talk to your colleagues at work, think twice before using any work-internal jargoon or acronyms. If you have any doubts, always explain. Over-communication is always better than under-communication.
Be emphatic. Imagine it’s your first day at a new job, you attend a team meeting and all you hear are nonsensical sentences like “Typhoon has better AP than CRN”. How do you feel? Annoyed, angry, confused, stupid? Or maybe you feel like the meeting is a waste of time? So don’t do this to other people—don’t be the person who composes whole sentences entirely of acronyms. If you suspect that at least one person in the audience has no clue what a word you’ve just used means, explain such word.
Create slides, visualisations, examples, demos or whatever it takes
Communicating ideas just through words is very hard, especially in complicated domains such as programming. Don’t use words alone—remember that you have other weapons at your disposal as well. Someone once said that a good diagram is worth ten thousand words. So is a good deck of slides, a good visualisation or a well-crafted code example. I use these tools as often as I can. Even when I do a short 2-minute daily update for my team, I would usually craft an example to illustrate what I achieved the day before.
Don’t be scared of visualisations. For example, when you have to communicate numbers to product people, visualisations are your best option. You don’t have to be a graphic designer to create good visualisations—most often all you need is a bar chart. But there are some rules, even in simple visualisations, so I highly suggest learning the basics. This MIT lecture is the best introductory material on visualisations I have seen on the internet.
Think about the structure
Before you communicate your ideas, sit down and think about the structure. Learn useful techniques, such as The Rule of 3 and the inverted pyramid structure. Communicate by telling stories. Almost every story has an introduction, a middle and a conclusion, so structure your communication as you would structure a story. Always explain the problem you are trying to solve first, before geeking out about the solution.
Prepare ahead of time
Think about all of the above ahead of time. Think who your audience is, and what assumptions you can make about their level of understanding. Think which parts of your talk/presentation/speech/update require explanations. Prepare slides, visualisations, examples, diagrams or a demo. Make sure your demo app runs and shows what you want it to show before the meeting. Write a short note with bullet points of what you want to say, and keep it handy when you talk to people.
Think about how much time you have for whatever you are trying to communicate. If you think you might run out of time, you will definitely run out of time. In such cases, omit details when you speak, and focus on the high-level stuff. You can always talk about the details last if you still have time, or send a follow-up message to your audience with further explanations. Alternatively, book more time or suggest a separate meeting to discuss your ideas. Whatever you do, be respectful to your colleagues. Don’t say you have a quick 5-minute update, and then talk for 30 minutes.
Preparation takes time. Sometimes it could take less than a minute. For example, before each daily standup, I do spend roughly one minute trying to think what my update will be about. I write it down on a piece of paper and think how best to organise it. But, it could take me a few hours to prepare for a monthly department meeting.
Communication, communication, communication
To wrap up, if you work with other people, good communication skills are almost as important as your coding skills. So do spend time on learning how to communicate. It will make you more efficient at your job. It will also help you to sell your ideas to other people and get them to appreciate your achievements.