As I make my transition from working in the office back to working remotely I've been thinking a lot about what makes remote teams successful and what challenges they face, especially in blended teams where some are still in the office. I took some time and wrote down my thoughts on how to overcome those challenges and thrive as a remote-friendly team, and I decided to share them here as a blog post.
The biggest challenge in working with a remote team is definitely communication, especially when the majority of the team is in the office. Remote workers tend to be overlooked in a variety of ways because people don't see them in the halls and break rooms on a daily basis. One of the best ways to overcome this is to be intentional and consistent with the methods of communication your team uses to conduct business. Rather than tapping someone on the shoulder, the team should get in the habit of discussing things in chat where it's easy to reach out to teammates whether they are in the office or not. Everyone should use the same communication tools regardless of their physical location, and those tools need to facilitate quick and painless interactions. With this consistency, serendipitous interaction can occur just as much - if not more - than in the office.
All of this online communication can introduce some new challenges, though. For one thing, many people find open chat to be distracting and time consuming. One solution that has worked well for my teams is separating those conversations into well-reasoned channels. Rather than talking in broad general-purpose fire-hose rooms, the team works to separate conversations into rooms organized by business concerns, specific tech disciplines, and non-work rooms. When the casual conversation is separated from the business conversation, the team can start to identify which channels are higher and lower priority and adjust notification settings accordingly.
Another challenge of online communication is balancing synchronous vs. asynchronous communication. My team at Lincoln Loop had a great philosophy around this that they talked about in this blog post. Their strategy is to actively seek out and eliminate synchronous interaction where it doesn't make sense, and also identify where it can actually be more productive.
Trust and Accountability
It's important to build a culture of open communication and awareness of each other. Everyone needs to make an effort to check understanding and ensure that team members are all on the same page. Expectations need to be clear, and when a team looks like it may not meet those expectations the communication needs to be proactive and productive.
Accountability needs to be intentional. The team should work together on estimates and be clear about sprint expectations. Evaluate results based on output and attitude, not hours. When setbacks occur, take some time afterwards to talk about how to prevent them in the future and how to better respond to them when they do happen. When setbacks occur repeatedly, the team should work together on an improvement plan.
Success and Motivation
Success for a remote engineer is really the same same as success for a engineer in the office. I want to feel connected to my team and know that I'm making an impact on the business. I want to progress in my craft and help others do the same. I want to share with the dev community and help shape the industry I'm in. I want to give back to the open source community that has given so much to me. I love Daniel Pink's RSA talk "Drive: The surprising truth about what motivates us" (nice illustrated video here). His assertion is that the 3 biggest motivators are Autonomy, Mastery, and Purpose, and this definitely holds true for me.
There are a variety of ways to measure that success. Feedback from peers, leadership, and project stakeholders will show how an engineer is engaging with the team and impacting the business. Clearly defined business goals with well-reasoned metrics help clarify the impact on the business that the team is having as a whole. To measure progress against personal development goals, leadership needs to be aware of the goals of individual engineers and help support them in that growth.
Finally, the last thing I'll mention is the importance of emotional wellbeing and how important it is to check in with each other often. The team needs to try to avoid politics and posturing and be authentic with each other. Jenn Turner's excellent closing keynote for CascadiaJS 2013 talks about this. When you can be open and honest with each other, you can resolve frustrations and discouragement before it becomes a big issue and you can build a team that genuinely cares about each other.
With the right communication and culture, remote work can be a very rewarding and productive experience. It takes some adjustment and discipline, but pays off with strong autonomy and flexibility and the opportunity to be even more focused and productive than you are in the office.
If you've got questions for me or you want to comment on your experience as a remote worker, you can find me on Twitter as @bkonkle, on Github as bkonkle, or on Facebook as brandon.konkle. I also frequent great Slack communities like Reactiflux and Denver Devs.
Thanks for reading!