“The biggest problem with communication is the illusion that it happened. »
— George Bernard Shaw, Nobel Prize-winning playwright
Over the past few weeks, as part of my own product research, I’ve interviewed over 60 tech leads. My goal was to learn more about the processes, channels, and techniques they developed to improve communication within their teams, and the learnings from these conversations were counterintuitive and surprising.
When I ask EMs how they manage their team, I usually get a very elaborate and descriptive answer about their delivery process; I hear about Jira implementations, documentation, prioritization, and many other topics related to structuring work. However, I hear much less about communications infrastructure.
Communication infrastructure is the intentional design and use of channels, spaces, and tools that serve a unique purpose and are part of a communication system that allows the team to have feedback loops effective.
Designing a good communications infrastructure involves designing the purpose and protocols needed to get the most out of the communications activity, and then implementing tools that facilitate that protocol.
For example, many teams use Slack, but many managers struggle to keep up with quick decisions made across multiple channels. The problem is not Slack but the protocols and rules surrounding it.
It’s common for teams to use direct messages in Slack instead of discussing issues in public channels. This behavior leads to a lack of context, missed learning opportunities, and a lack of visibility into decisions. In this case, the infrastructure is broken; you have a tool without a defined objective and without a protocol to keep it effective.
The protocols you put in place say a lot about what you value within the team.
If transparency is a value, then what are the specific protocols that support it on a daily basis?
There’s no better place to exercise your values as a team than in how you design communication. In this article, I share some specific abstractions and recommendations that can help design better protocols and achieve more clarity in every interaction between team members.
“Communication works for those who work there.”
— John Powell, film composer
The first step in designing your infrastructure is to look at the recurring conversations you have within the team. Here are some examples:
- Pull request reviews
- Status updates
- Rubber threads and debugging
- Deployment of new features
- Manage blockers
- Cross-team sync meetings
- Performance Feedback
- Career development
- Review the structure and dynamics of the team
- Planning in general (sprints, ShapeUp, etc.)
- Strategic product decisions
- Definition of scope/requirements
- Discussion on new tools
Now let’s take one of these conversations and review some of the challenges I’ve heard from engineering leaders. Let’s choose the retrospectives.
The most common challenges people share are:
- People are too quiet or disengaged during retrospective.
- People show up without anything to talk about.
- The session is too long. We spend two or more hours on a call preparing topics, grouping them, voting and only then having a discussion.
- Nothing happens after the retrospective and the actions are never completed.
I can understand these challenges; I have participated in or organized retrospectives over the last 15 years of my engineering career.
Here is a protocol that I have found helpful in avoiding common challenges. There are a lot of obvious things here, but you’d be surprised how easy it is to overlook them and underestimate their negative impact on the conversation.
It’s not about micromanaging the team but putting the protocol in place, so that the team can relax and communicate smoothly.
Example of retrospective protocol
Before the meeting
- Organize a recurring event on everyone’s calendar.
- If the team needs to reschedule, don’t skip the retro; instead, find a better time in a few days and adjust recurring events.
- Send reminders to the team about adding/grouping discussion topics at least three days in advance.
- Send additional reminders to team members who haven’t yet added a topic.
- Gather the topics and organize them into groups the day before the retro call.
- Record the call for those who were unable to attend and for additional note-taking.
- Start the call by indicating which actions from previous reviews were or were not performed and why.
- Make sure the retrospective is not just about the work done, but that there is also space to discuss team dynamics or feedback on the retrospective itself.
- Accept and assign action items.
- After the call, send a quick summary of all decisions made and the list of actions to be taken.
- Prioritize and add items to specific tools (Jira, Linear, etc., etc.)
- Check to see if items have been completed before the next retrospective, at least a week before the next one.
- Rinse and repeat.
The above protocol helps engineers think through topics in advance; it promotes asynchronous preparation so the call can be discussion-focused, creates accountability by reviewing previous tasks at the start of the session, and provides space to evaluate the effectiveness of the session.
Additionally, these protocols allow all team members to run the protocol themselves, so they are less reliant on you running these sessions. Once you have a protocol, you can look for tools to automate tedious tasks like scheduling, reminders, templates, recording, note-taking, follow-ups, and more.
The key point about protocols is that they can’t always rely on your memory and ability to stay perfectly organized. Things change quickly, shit happens. You need a resilient protocol that allows your team to step back, share learnings, and take steps to improve.
You can’t just adopt or buy tools and hope for the best. Going back to the Slack example, you can’t just open multiple channels and hope communication will flow efficiently. Even at the ceremony level, even though they have an inherent structure, you still need to design protocols for those who work specifically for your team.
“Early in my engineering career, I learned that all decisions were objective until the first line of code was written. After that, all decisions were emotional.
– Ben Horowitz, The Hard Thing About Hard Things
Having experienced both roles in the past, being head of engineering isn’t that different from being CTO of an early-stage startup. You need to hire, define your team’s values and culture, put protocols in place to maximize the impact of each team member, deal with stakeholders (investors, customers), etc.
As an EM, my main job is to build the systems that help people thrive, so I always start with the protocols that help team members step back, voice concerns, share ideas, solve problems and act on them.
At a minimum, I suggest having a good protocol for one-on-ones, retrospectives, asynchronous check-ins, and ad hoc meetings.
These protocols are normally supported by general rules that you agree with your team. The rules are not about trying to control the team; rather, it is about building shared common sense.
here are some examples
- If you spend more than five minutes on Slack explaining something, jump to a call immediately – it’ll be quicker.
- If a decision was made during an appeal, note it immediately and share it publicly.
- Always start with the users and their experience. Everything can be fixed from there.
This checklist was copied verbatim from the “Communication” section of my former company’s employee handbook. These guidelines define how we use Slack, Trello, and Notion. And remained virtually unchanged when we had to migrate to Jira and Confluence. Additionally, at one point the team developed a protocol to manage our pull request process because they noticed inefficiencies after migrating to a mono repository. I didn’t even write the initial proposal; the team drove it.
Having clear protocols also made it possible to fill roles when someone was unavailable. For example, when I couldn’t organize the retrospective, any member of my team could confidently take over.
Managers, at the most basic level, deal with information management: collection, synthesis and distribution. Thinking intentionally about your communications infrastructure is part of this role. Here’s what we covered:
- Identify your recurring conversations.
- Forget about design tools and protocols that support healthy behaviors and the values you would like to see in your team.
- Write it; you will make it evolve over time.
- Automate as much as possible – don’t rely on memory or people’s ability to be organized and disciplined, including yours.
- Establish general rules about what to do, when and where (consider this a README for your team).
- Discuss the protocol often to see if people find it useful and modify it accordingly.
“Communication is the real work of leadership.”
— Nitin Nohria, former dean of Harvard Business School
I would like to know your direct experiences: what specific protocols have you implemented in your team? How have they influenced the dynamics of communication? Were any particularly successful or not as effective as you hoped?