Managing Remote Developer Teams
Interview with Katie Womersley, VP of Engineering at Buffer
#1 Challenge
Balancing synchronous and asynchronous work.
Synchronous work
Advantages
Great for building connections
Increases creativity with ideas
People are more energetic
Better understanding of the day-to-day work of the company
Synchronous work
Disadvantages
People may feel left out of decisions
More difficult to do focused work
Meetings
Asynchronous work
Advantages
Less pressure to be quick
More thought going into the processes
Asynchronous work
Disadvantages
Decisions, responses and solutions may slow down too much
Lonely, isolating
“We're constantly trying to figure out how to mix the two in a healthy way—what should be synchronous and what can be asynchronous—and that’s probably the most difficult thing.”
#2 Challenge
Knowledge silos
“When only one person knows a part of the code, them being unavailable is a problem.”
“So, document your pull requests, write good commit messages, and leave status on JIRA cards. These practices make it less likely to develop these knowledge silos.”
Key elements in making a remote team work
Trust
Clear communication
Work-life balance
Trust
“It goes both ways: if you’re trusting your team, you’re also free to ask for help when you’re stuck or blocked, and you trust that they’re not going to judge you.”
Clear communication
“Clear communication skills are very important; otherwise, it’s very difficult for a team to stay in sync and to share context.”
Work-life balance
“The problem I have is, how do I know my team ever stops working? People tend to overcompensate whenever they're remote, since they know there’s a lot of freedom, so they try hard to prove that they are not slacking off.”
“Managers need to be sure to keep the culture healthy and not encourage over-work and burnout.”
The DOs of managing a remote developer team
DO make sure you invest on 1:1s with your team.
“DO make sure you’re really listening to your team and checking in on how they are doing, because you can’t just walk around the office and see the dynamic; you need people to tell you. This is the most important.”
The DON'Ts of managing a remote developer team
“DON’T be that manager who constantly asks, hey, what’s happening with this feature? This is the most important don’t. Use your tools, figure out a system where you are getting status updates asynchronously.”
The dark side of managing a remote developer team
“Remote developer teams often have mental health issues that people don't talk about.
Anxiety and depression correlate with feeling lonely or being isolated, and the rate of anxiety and depression is higher with remote workers, so the most practical advice is to be very open in talking about mental health with people.”
“Remember, a manager is not a therapist; it's not your job to solve the issue, but it’s your job to be aware of it and to make sure your teammate gets proper help.
Make sure they go see a doctor, go to a co-working space, get out and do some exercise, or get an actual therapist before it ends up becoming a real health problem.”
How to keep decisions fast and the team productive over different time zones
Use comments and questions
“We try to leave a lot of comments on everything we work on asynchronously. We try to make sure we have really clear specs with a design, a brief and maybe a mock-up, so when developers are working on it, they will be very clear with their status. They put in there any questions, so they get unblocked as fast as possible.”
Be proactive
“We encourage our team to be proactive and to make most decisions themselves. For instance, if you get stuck on something, don't wait around for help; just go do something else, figure out what else is valuable, or even better, make the decision yourself!”
Decide if necessary
“Something we really encourage is for people to make a decision and inform the team. Nine times out of ten, the developer makes a great decision, and everyone’s happy. Once out of ten another solution may be better, but it still saves a lot more time compared to being stuck.”
If you can reverse it, do it!
“We very much encourage our engineers to adopt this mindset, that if you can reverse the decision, just make the decision.”
“If you can’t reverse the decision, then it’s better to wait for others.”
Do you have any specific requirements for time zones when hiring?
Time zone should be considered for collaborative roles
“We do consider time zones when it comes to a highly collaborative role, like a product manager. We try to avoid this and make it so all the time zones can work. We have people all around the world, but it is something to consider.”
Flexibility is a must
“We usually explain how people are distributed on some very difficult time zones, so they all need to be flexible. Buffer allows a lot of flexibility, but in exchange, we ask for some accommodations.”
“If everybody insists they’re only going to work from 9:00AM to 5:00PM, while all of them are spread out over the globe, you can’t ever have a meeting.”
How to onboard a developer with no previous experience with remote teams
“We'll talk to them about where they are going to work from, how they will set up their workspace, how they are going to set up their schedule, how they are going to stay healthy and productive at the same time, and how they will have enough work time and also not too much work time. We make sure they consider every aspect.”
Discuss everything up-front
1
“Every developer gets a 30-, 60-, and 90-day onboarding plan, which has really clear goals.”
Create clear goals
2
“They will get a role buddy who’s another developer who will help them out with getting their tasks done, showing them how everything works.”
Assign a role buddy
3
“They’ll get a culture buddy, whose job is to talk to this person once a week, advise on their challenges, and how to work better remotely, how to communicate with their team, how to stay healthy and how to stay productive.”
Assign a culture buddy
4
How to reward progress and celebrate small wins
“We have an exuberant culture, so we really like to celebrate things. We use a lot of gifts and a lot of emojis, and we try to be very encouraging of each other.”
HeyTaco! for rewarding each other...
“A new tool we really enjoy using is the HeyTaco! application in Slack. People can give their teammates a little taco for a win, progress, or anything they feel like. Tacos can be redeemed for actual rewards.”
Threads as an achievement board
“We have a special tool called Threads. It’s somewhere between an e-mail and an announcement board, and we have a special category that is solely for praise and recognition. It’s not a simple taco; this is more special.”
Dedicated channel for gratitude
“We have a Slack channel dedicated to showing gratitude, and we often write there when we’re really grateful for somebody or something.”
That's it!
Did you like it? Help us spread the love!
Nice to meet you...
Coding Sans is a software development agency, building serverless mobile and web applications.
We’re based in Hungary working for companies all around the world.
Are you looking for developers to build your product?