In a professional environment, a message can be sent through multiple paths. From corridor talk to a memorandum. Here is how I decide which one to use, depending on the message.
Casual individual conversation in person
A casual encounter in the corridor is a good moment for non-urgent reminders. Also useful to people you don’t often meet what they are working on.
Nothing too important or too specific, those are better in writing or planned meetings.
Get up and go talk to the person in their desk
Any clarification that a close colleague could help you without much effort. You will probably interrupt the person’s work, so use it with caution. I do think in-person interruptions are an issue in open offices, where the architecture of the place encourages it. Still, I think a lot of communication problems can be instantly solved by getting up and going talk to someone in person.
If someone is being interrupted too much by people who took the time to stand up and go to this person’s desk, probably there is a deeper communication problem in place. This person (or this person’s leader) should be writing better or more frequent emails, better documentation, running more informative meetings. Don’t blame open offices for everything. In my experience, interruptions are more often a consequence of communication failure than of office architecture.
Scheduled individual meeting in person
* I have no experience with remote teams, but I guess these meetings guidelines would transfer well to videoconferences
Recurrent, short one-on-one meetings with your team members (especially if you are a leader) are great to understand your colleagues better and how to work with them.
Create alignment between two teams through an individual meeting. If it is crucial for your team to know what other teams are doing, call a meeting with one person on the other team, and do a very objective information-sharing session. After the meeting, each one shares the summarized, relevant info with their respective teams.
There is a lot of team+team meetings that are so long and so useless. You put 10 people in a room, 5 from each team, and the discussion about a variable name (that was already decided and it is in the production code) takes 40 minutes. Just like a lot of meetings could be an email, a lot of 6, 8, 10-people meetings could be a 2-people meeting.
Scheduled team meeting in person
I only see two scenarios where team meetings are necessary: problem-solving and information-sharing.
A meeting for informed discussion and decision making about hard problems. It could be architectural or language decisions, contingency plans, or any problem that is better solved with a diversity of opinions. A document should be prepared before the meeting, and it should be mandatory to read it beforehand.
I read that in Amazon, the initial minutes of the meeting are used to everyone read the document in silence (an article about it here). I never practiced it, but it seems an excellent idea. I want to try it someday.
A team meeting could also be called to share valuable information that might be sensitive, nuanced, or potentially confusing. These should be very straightforward meetings, starting with the one-to-many information sharing, followed by an objective, time-boxed Q&A session.
The two are very different types of meetings. A problem-solving meeting should stimulate a discussion, with enough liberty to allow for a creative flow of ideas among the participants and diverse input, with every participant being encouraged to contribute, in particular, the quieter and more junior members of the team.
An information-sharing meeting should actively discourage any debate or opinion sharing. Only clarification questions are allowed, and no decisions should be made at this meeting. If someone in the room raises a valid point that demands a decision, don’t try to decide on the spot, it always takes longer than you initially assume. Individual conversations should be held later for longer clarifications if still needed.
Off-work casual group conversation
A bar or a coffee shop are great places to… not talk about work. Although I think it’s ok (if maybe unnecessary or even stressful) to talk about work conditions, work relationships, careers, or speculate about company strategy, but no discussion or decision about specific tasks and projects.
Direct message on Slack*
* Or any internal communication tool
I only use DMs for small talk with colleagues that also happen to be your friends. Any info relevant to work should be made on an appropriate channel. There should be a channel where any work-related info that you want to share with a specific person will also be understandable and potentially helpful to everyone else that is on the channel.
Channel on Slack
Use it for any work-related information that can be shared asymmetrically. Slack should rarely be used with the expectation of symmetric communication. If it is imperative, get up and go talk to the person (see topic above). If you are remote, this can be substituted by tagging the person (I still think you should avoid DMs, even when remote).
Tag people with caution. If there is something urgent and important, you can tag the person or, if it is significant for everyone in the channel, use the @here tag. If it is not significant for everyone, tag only the relevant people. Don’t use @here because you are too lazy to individually tag 9 out of the 10 people on the channel.
Make sure you are on the right channel. Use threads (replying only to a single message, not the entire channel) for long conversations.
Phone
I am having a hard time imagining a use for phone calls for software developers.
Communication with people outside of the company.
It is much less used for internal communication if your company has Slack or similar. I use it for communication that needs to be officialized in writing and should be available for search in the future, e.g., communication with HR about vacations or problems with health insurance.
But if the email is the primary tool of communication in your company, some guidelines help.
Email to one person
I try to avoid emails with just one person copied for the same reason I avoid direct messages on Slack: you are hiding information from other people that could benefit from it.
The problem is that it’s much harder to decide who to copy in an email. On Slack, you can send a message on a channel, and it won’t interrupt anyone not tagged, while still being available for them to check it later. With email, you decide for the person if it is something they should read. It creates more noise.
Email a few people
It is where most of your communication will happen. So it is crucial not to make it too conversational, as you would on Slack or in person. Email as the primary tool of communication should be much better thought to organize the information without creating too much noise.
Whole-company memos
Memos as company-wide emails are what, in general, CEOs use to spread information quickly.
There are two scenarios when you get a memo.
One is when people with power in your company did something bad and want to convince you that it didn’t happen or it wasn’t their fault. They are sent when people already know the truth — parts of it, at least — from all other channels above and need to be illuded otherwise. These memos are full of lies.
Another is when people with power in your company know something important and want to share it. They are sent when people already know what’s happening from all other channels above and just need an official confirmation to make some well-informed decisions. These memos are only confirmation of what you already knew.
My rule of thumb, what you read on a whole-company memo, is either old news or a lie.