Today we’re sitting down with Taylor Legg, who leads our Systems Dev team at HRT. As the manager of a distributed international team, she considers good communication especially important. Read on to hear about her team’s best practices, day-to-day workflows, and favorite communication tools.
Can you tell us a little more about your team? Where is everyone reporting from?
Systems Dev is an internal software engineering team within the Systems group at HRT. That means that we write a lot of code (mostly Python and Go), but we also think a lot about lower-level things like physical hardware, operating systems, and networking. We support the teams that manage all of our servers and network equipment, so our day-to-day work involves a lot of time in a Linux terminal and time spent shadowing other teams’ on-call rotations so that we can build better tools and automation to help make their lives easier. Externally, the role aligns pretty well with classic site reliability and production engineering positions.
There are twelve of us on the team currently, with a few more signed on to start over the next few months. We have people at HRT’s offices in NYC, Chicago, Boulder, London, and Dublin, as well as some that are fully-remote in Seattle, Dallas, and Poland. That’s twelve people across eight locations, so you can see why excellent communication is essential!
Can you talk about how important communication is to your team? How does good communication help your team to tackle your day-to-day workload?
Good communication is the bedrock of my team. We are widely distributed, which means that we don’t have the advantage of being able to talk through problems all together in one room. Without well-established mechanisms for strong communication, this team simply could not exist in its current form. Good communication transforms the potential chaos of our day-to-day workload into a well-choreographed dance where project ideas are formed, refined, reviewed, and implemented. While the actual work is individualized, each stage of the software development lifecycle requires coordination and collaboration across the whole team, which we treat as an opportunity for idea sharing, mentorship, and discovery.
What tools or programs do you utilize most frequently to help alleviate communication blocks on your team? How do these improve your day-to-day processes?
During the day, we live in Slack, and have clearly-separated spaces for internal discussions and external support. It probably sounds silly, but we adopted a ritual where we “sign on” and “sign off” for the day with little wave emojis in our internal team channel. This happened organically at the start of the pandemic, and has since become established as a nice way to greet each other and stay in touch from our different corners of the world. It also provides a nice bit of social pressure to maintain a healthy work-life balance! Working remotely from one another, I sometimes don’t realize how late in the day it is until I see people start to “leave the office” with a sign-off message in Slack, which motivates me to wrap up my work too.
We also use many tools that help promote asynchronous communication, like Confluence where we propose ideas and build out designs for projects, Jira where we break projects apart into individual tasks, and Phabricator where we perform collaborative code review on the implementation of those tasks. We also use Zoom frequently, both for quick impromptu discussions when Slack is dragging, and weekly standing meetings with the whole team. With many busy people spread across many time zones, it’s impossible to have everyone available for every key moment, but with help from tools that promote different types of communication with opportunities for fun and informality, we can overcome the geographical limitation and create ways for everyone to stay connected and learn from one another.
How do HRT’s company-wide communication practices optimize our output, both from a technical and cultural lens?
HRT is all about efficiency. If there’s a process that can be made better, we will make it better. This applies to our company-wide communication in that we try to make it as easy as possible for people to get the information they need at all times. That ranges from having easily-discoverable resources on a well-organized internal wiki, to sharing code bases across teams so that all engineers can understand how things work, to simply having well-publicized norms for how to use the different communication tools (when to open a ticket, when to send an email, when and where to ask a question in chat, etc.). This leaves nothing up to interpretation, meaning that people can roadmap their projects and simply work without blockers or time wasted figuring out who to talk to about a particular problem. This also extends to a culture of clearly documenting processes. We have runbooks for handling incidents, guidebooks for things like first-time contributions to code repositories, and checklists for complex and non-automatable tasks like connecting to a new market.
More broadly, I would say that HRT optimizes its output by clearly communicating that nothing is ever set in stone. You will never hear anyone say “this is the way things have always been,” because there simply isn’t an example of that to be found at HRT! We are constantly introspecting, iterating, and improving, and are empowered at all levels to always think critically about how to “make it better.”
What’s one key communication habit you’ve developed and encouraged among your team? Give us a quick example of what this looks like in action.
Write everything down! It sounds simple and you may find yourself thinking that you already do this, but I really do mean everything here. Have an impromptu video call to clear up a long-winded chat conversation? Take two minutes to summarize the result of that call in chat where the conversation started. Schedule a meeting to decide on the direction of some new feature? Designate a note taker to record and publish the summary of the meeting on an internal blog. Find yourself discussing big-picture design in a direct message with a senior engineer? Move that conversation to a place where the whole team can see it. My team is distributed across nearly as many time zones, offices, and homes as we have people, and we have learned that this habit is key to making distributed communication work. By committing to the extra effort of transparently documenting all team-relevant conversations, we are committing to a level playing field where everyone understands what’s going on and has the opportunity to ask questions and voice opinions.
Why is this an important habit to cultivate, and what effect has it had on the team culture and/or the way your team works and collaborates?
Writing everything down promotes discoverability of information and fosters inclusiveness. A junior engineer might not participate in a low-level discussion directly, but they can follow along and absorb new information if they can see that chat. Someone in a different time zone who wasn’t available to join a video call might ask a thought-provoking question after reading the notes that changes the direction of a whole project. You might learn that someone on the team already has experience with a new tool that you were discussing at lunch with your boss. The point is that software development is a highly collaborative process, but much of it today is done in small groups or even in isolation leading to less cohesive teams and products. Being habitually verbose means that you create the opportunity for everyone to be involved. Culturally, this practice has enabled my team to thrive in the world of hybrid work. People are excited to share ideas and updates with each other, and actively seek out new perspectives. Doing this well has also given us access to new talent pools, and has unlocked the hybrid flexibility that enables each individual to be their most productive self.
What advice do you have for other engineering managers who are looking to create healthy communication habits among their teams?
Make sure everyone understands the benefits of healthy communication habits. Explain to people why you’re asking them to do this extra work, and make it clear that the effort is something that you and the team are committed to investing time into. Keep coaching. Acknowledge good communication when it happens, and don’t be afraid to step in and nudge when it doesn’t. Put these norms themselves into writing somewhere so that nothing is ambiguous about how your team operates. Solicit feedback, especially from new hires. Simple questions about how in-the-loop people feel can reveal a lot about what can be improved with your team’s communication. Lead by example. It might feel like you’re repeating yourself in different places, but know that it’s actually really hard to over-communicate! Finally, remind everyone to always assume good intentions when working with someone. At HRT, we’re really lucky to have so many opportunities for social outings and lots of inter-office travel, and we try to lay as much of a foundation as we can with our team to build trust and help everyone see that we’re all working together to teach computers to do cool things that have never been done before.