The Pragmatic Programmer: Communication

Mohamed AshourMohamed Ashour
5 min read

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

  1. Figure out what you want to say, quite clearly

  2. Know your audience and use the "WISDOM" Technique

  3. Choose your Moment

  4. Package your ideas

  5. Be a listener

  6. Get back to people

let's dig in.

Figure out what you want to say, quite clearly.

Photo by Bram Naus on Unsplash

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.

Photo by Mimi Thian on Unsplash

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

Photo by Jeanne Rouillard on Unsplash

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

Photo by Kaleidico on Unsplash

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.

Photo by Mimi Thian on Unsplash

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

Photo by Charles Deluvio on Unsplash

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.

0
Subscribe to my newsletter

Read articles from Mohamed Ashour directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Mohamed Ashour
Mohamed Ashour

Spending most of my time writing code, designing architecture, and creating pipelines to generate data. And the rest of it learning new things to write about.