Being able to communicate clearly is a great virtue, especially for a good engineer. You can master your technical skills to perfection, but if no one knows about them, what is the point? You can create a great product, but it will not be used if people do not understand why they need it or how to use it. You will never achieve a goal if you misunderstand the objectives.
Like any other skill, communication can be trained, refined, and mastered. There are many useful practices, techniques, and frameworks that can help you on a daily basis.
Here are my observations and recommendations, based on 20 years of experience in various engineering roles, on how to become a more effective communicator in engineering work.
You can’t overcommunicate — only undercommunicate#
A good engineer values their time and concentration because they are essential for problem-solving. It is very hard to get into a flow state, and very easy to get distracted. As a result, you naturally tend not to overwhelm other people with excessive information. Your comfort zone is silence. You wait to be asked, and only then do you speak.
This attitude is the root cause of many problems, such as:
- Your teammates do not have a clear picture of what you are doing, how you plan to do it, or what your intentions are. This leads to uncoordinated work.
- Your manager does not understand the current progress of your work. A lack of transparency can lead to inaccurate estimations and poor planning.
- You fail to keep stakeholders updated on objectives and priorities. As a result, if priorities change, you may find out too late.
- Important decisions remain undocumented and exist only in your head. This creates knowledge silos and makes collaboration difficult.
- Small misunderstandings accumulate over time and eventually turn into major technical or organizational problems.
- Other teams cannot effectively coordinate their work with yours because they lack context and visibility.
- Feedback arrives too late because people are unaware of your direction or assumptions early enough.
- When problems appear, everyone spends additional time reconstructing context instead of solving the issue itself.
- Your contributions become less visible, which can negatively affect trust, influence, and career growth.
- New team members need significantly more time to onboard because knowledge is not shared proactively.
- Risks and blockers stay hidden until they become urgent and expensive to resolve.
Engineering managers understand this, which is why they create many communication rituals such as daily standups, sprint planning sessions, backlog refinement meetings, demo days, one-on-ones, and retrospectives.
However, many of these meetings would become less necessary if engineers took the initiative to communicate proactively. Do not wait for the daily standup to raise blockers. Do not wait for backlog refinement sessions to update the backlog. Keep your manager informed without relying solely on one-on-ones.
Chat Etiquette#
Email is a great way to communicate on a daily basis, but many people prefer chats because of the expected low response latency and the less formal style of communication, which reduces mental load. It is much easier to write whatever is on your mind in a chat than to compose a properly written email.
However, the convenience of chats often leads to common problems that make this form of communication less effective.
No “Hello”#
Sometimes people treat chats as a synchronous form of communication, similar to an in-person conversation. They start with a single “hello” and wait for a response before continuing.
Do not do this. State your question or request immediately after the greeting. This helps the other person understand the context and respond with fewer back-and-forth messages.
No Meta Questions#
Do not ask meta questions in chats.
Examples:
- “Has anybody used X?”
- “Does anyone know Y?”
- “Who has tried Z?”
These questions are vague and do not explain what you are trying to achieve. Ask concrete questions instead, provide context, and describe the problem you are solving.
Do Not Ask to Ask#
Do not start conversations with messages like: “Hey, can I ask you a question about …?” You are already asking a question.
State your actual question immediately instead of adding unnecessary conversational overhead.
No Message Ladders#
Avoid sending thoughts as a long sequence of small messages while you are still formulating your idea.
For example:
- “Hey”
- “I checked the logs”
- “There is something strange”
- “Not sure yet”
- “Maybe related to Redis”
- “Actually no”
- “Wait”
- “I think I found it”
This creates unnecessary notifications, increases cognitive load, and forces other people to reconstruct your thought process in real time.
Instead, take a moment to organize your thoughts and send a single structured message with:
- the context,
- the problem,
- your current understanding,
- and the question or action item.
Well-structured messages are easier to read, easier to search later, and much easier to respond to effectively.
Use Threads/Topics#
Do not start multiple parallel conversations in the same channel.
Use threads to keep discussions grouped by topic. This reduces noise, preserves context, and makes conversations easier to follow later.
Without threads:
- important information gets buried,
- unrelated discussions become mixed together,
- searching historical decisions becomes difficult.
Threads turn chats into structured knowledge instead of chaotic streams of messages.
Respect Asynchronous Communication#
Do not assume immediate responses.
Chats are asynchronous by default. People may be:
- coding,
- in meetings,
- debugging incidents,
- or simply focusing deeply.
Avoid:
- “?”
- “ping”
- “any updates?” only a few minutes after your original message.
If something is urgent, explicitly state the urgency and explain why.
Provide Context Early#
Do not force people to extract context through multiple follow-up questions.
Bad:
“The deployment is broken.”
Better:
“The staging deployment started failing after the authentication service upgrade. The error appears during database migration.”
Good context includes:
- what happened,
- where,
- impact,
- what changed,
- what you already investigated.
Context dramatically reduces communication latency.
Ask One Clear Question#
Avoid mixing multiple unrelated questions in one message.
Bad:
“Can you review the PR, explain the Kafka issue, and check if staging is working?”
People tend to answer only part of compound questions.
Split unrelated requests into separate messages or clearly structure them.
Use Public Channels by Default#
Avoid unnecessary private messages.
When discussions happen publicly:
- knowledge becomes searchable,
- more people can help,
- others learn from the discussion,
- duplicated questions decrease.
Use direct messages only for:
- sensitive topics,
- personal feedback,
- confidential information,
- or discussions requiring privacy.
Close the Loop#
If your issue is resolved, write the solution.
Do not disappear after asking a question.
A short follow-up like:
“Solved. The issue was caused by an expired token.”
helps:
- future readers,
- teammates encountering similar issues,
- and organizational knowledge sharing.
Do Not Use Chats as Permanent Storage#
Important decisions should not live only inside chat history.
Chats are transient and difficult to navigate later.
Document:
- architectural decisions,
- requirements,
- incident conclusions,
- action items,
- and agreements in proper documentation systems.
Avoid Emotional Escalation#
Text communication lacks tone and body language.
Short or direct messages can easily sound aggressive or dismissive even when they are not intended that way.
Prefer:
- precise language,
- neutral wording,
- explicit assumptions,
- and constructive framing.
Especially during incidents or disagreements.
Edit Before Sending#
Fast communication should not become careless communication.
Before sending a message, quickly verify:
- Is the request clear?
- Does it contain enough context?
- Can somebody act on it immediately?
- Is the wording unnecessarily ambiguous?
A 30-second review often saves 10 minutes of back-and-forth discussion