Managing a Remote Engineering Team
Coronavirus has forced the majority of software engineering teams across the world into remote work overnight, and signs point towards a future where working remotely is the “new normal.”
“74% of CFOs say they expect to move previously on-site employees remote post-COVID-19.” - ZDNet
As a CTO at a startup, this means I am learning to manage a team in this now-remote environment, and if you’re reading this, you’re probably facing a similar challenge. The good news is that many teams in our industry have been remote for a long time, so there’s a wealth of best practices available.
In this post, I’ll share some of my personal experience leading a remote engineering team as well as some of the learning I’ve gathered from others who have been doing it longer.
1. Have a dedicated workspace
Make sure you and all your employees have a good place to actually do work. When I started working remote, I was sitting on the couch or at the dining room table. Every day my back was aching and my legs were sore, plus I didn’t have my second monitor or microphone. I realized that having a good physical space set up for work was going to be a huge priority. Make sure you and your team have good spaces set up for doing work.
Additionally, having a dedicated workspace helps minimize distractions. When I’m at my dedicated workspace, I pretend I’ve just checked into the office - the kitchen, living room, and bedroom don’t exist in that moment.
2. Set boundaries
This brings me to my second point, which is that you have to set boundaries.
It’s easy to think that working at home means “working all the time”, but that’s not sustainable. There are times where you may have to work harder than others, but you shouldn’t have to be 100% available every second you’re at home.
Establish regular working hours (not everyones’ have to be the same), and ensure everyone on your team marks them on their calendar and by setting away messages at the right times.
3. Settle on a good toolset
I’ve found that video chat, remote pairing, text chat, project management tools, and shared docs are all essential for getting work done remotely. Your toolchain may vary depending on the size of your team and the nature of your work, but make sure everyone feels like they have the tools they need to get things done.
Similarly, ask your boss if she feels that she’s got good insight into your team’s status and progress on projects. Just because you have all your KPIs captured in a tool somewhere does not mean that your boss knows about it, so you may have to overcommunicate.
4. Communicate…more than you think
Information spreads organically in an office. When you bump into someone from the sales team at lunch, you can do a quick informal check on their priorities. I find these conversations invaluable for understanding the state of the company and how the product is perceived by others.
Unfortunately, it’s a lot harder to have these casual chats with your team or other teams when you’re working remotely. You’ll have to set up new informal communication channels (I don’t think having a “random” Slack channel alone is enough). For example, we have an open company video chat around lunch time, and I’m starting to have weekly coffee chats with various team members outside of engineering to make sure I’m staying connected.
5. Find other ways to engage the community
If hiring is part of your job, you don’t want to let your funnel dry up when you go remote. Find new ways to engage a community of remote workers who might be your next hires. Start an engineering email newsletter; encourage your team to answer questions on Stack Overflow; post blog posts on Linkedin.
It’s definitely harder to make personal connections when you’re not seeing people face-to-face, but long-term this is one of the best ways to ensure you have a strong pipeline of candidates to hire from.
6. Ensure employees have secure setups
Security becomes a whole new challenge in a remote working environment. Many of the standard security tips still apply, but you may also want to look into getting a VPN for your remote workers, ensuring people use secure WiFi credentials, and use two-factor authentication across the board.
7. Develop a process for urgent bugs/requests
If the standard procedure for reporting urgent bugs or requests is to walk over to the engineering department and shout out, “We’ve got a problem,” then you’re going to need to spend some time on this.
There’s no way to eliminate urgent issues entirely, but it’s not realistic for everyone on your team to simply send you a text message whenever there’s a problem. We handle this pretty simply with a Google Form or something similar that users can use to report urgent issues which are then piped into Slack where our engineering team is notified. If you have more complex needs, there are plenty of bug trackers out there that you can use.
8. Remember that teambuilding still matters
Finally, don’t forget that the people on your team are still human beings with a need to connect to other human beings on a personal as well as a professional level. I’m a bit of an introvert, so it’s sometimes hard for me to remember this, but I’ve been pretty successful coming up with systems for staying in touch with people.
Remember to check on the mental wellbeing of your employees and when they need to unplug for a while, let them do it. Balance is the key to remaining effective in the long-term.