COVID accelerated a trend to remote work and by all indications, large sectors of the workforce will remain either remote or in some sort of hybrid environment. This is certainly true for software development teams. Today there are over 28,000 jobs posted on Indeed for remote developers.
In this guide, we will explore both the opportunities and the challenges of managing remote developers, as well as offer guidance for best practices and tools that support remote development.
First, distributed development teams are not for everyone, but for certain companies in certain circumstances, they make sense. Here are some of the advantages.
When you are hiring, you are no longer limited to hiring those developers who live close to your office or those you can convince to relocate. This immediately and dramatically increases the size of the potential applicant pool. At Coder, we went remote-first in mid-2020, and now 90% of our applicant pool is from outside Austin where we are headquartered.
If the local market is small or the competition is intense, you may be able to hire more talented developers than if you could only recruit locally. Early in the pandemic, as companies were scrambling to adjust to work-from-home mandates, Mark Zuckerberg was touting access to a wider engineering talent pool as an unintended consequence of the shift to remote work.
A larger pool of applicants also usually means opportunity for more diverse teams. That was certainly the case when Coder went remote with our hiring. Tech’s problems with diversity and inclusion are long-standing and well documented, and unfortunately are slow to change. Utilizing remote development teams can be one (but not the only) tool in a company’s efforts to address the issues.
Having a remote workforce offers opportunities for saving money. In the wake of COVID, many companies (including Coder) have given up expensive rented office space. One pre-COVID estimate suggests that companies save on average $10,000 per full-time remote employee on real estate costs. There are even potential salary savings to be had by matching competitive salaries for where the employee resides rather than where the company is headquartered. However, companies like Facebook and Twitter have encountered significant pushback and negative press after announcing plans to reduce the salaries of current employees who choose to relocate away from the San Francisco area to take advantage of new remote work policies.
The long-term impacts on productivity are still to be determined, but with over a year’s worth of data now available, the initial research suggests that productivity increases for remote workers.
If your developers are dispersed widely enough, the company workday essentially becomes twenty-four hours. While this is nothing new for large international companies, it presents new opportunities for smaller companies to iterate faster on releases.
There are, of course, challenges to employing remote teams of any type, from compiling with a bewildering array of labor and tax laws, to setting policies that are aware of and sensitive to various cultural traditions and holidays, to day-to-day management of dispersed teams, and technological challenges, especially security.
Developers are better suited than most to adapt easily to remote work since much of their daily workflow involves accessing remote servers and repositories.
Traditionally, developers have run their integrated development environments (IDEs) on their local machines. In the last few years, there has been a growing interest in moving development workspaces and IDEs to the cloud, but a recent survey showed that over 90 percent of professional developers had not use cloud IDEs with any regularity. We’ve written before about some of the roadblocks that have prevented more developers from moving to the cloud.
We are big proponents of cloud-based development here at Coder and believe that cloud-powered development environments are the best solution for any development team whether co-located, hybrid remote, or fully remote.
With developer workspaces hosted in the cloud, teams can connect from wherever they are physically located. Cloud IDEs and remote desktop solutions (VNC) allow developers to work as securely as they would from the office.
Because the compute-intensive work like compile and assembly is being done in the cloud, developers can basically use any device (even an iPad) to access their workspaces. This can significantly reduce costs for companies since developer workstations tend to be pricey. It also makes “bring your own device” (BYOD) an option, which, depending upon the location of the developer, may be the only option because of regulations governing shipping technologies to certain countries.
Although not the case with every cloud-based IDE, with Coder the source code never needs to leave the security of the company’s cloud infrastructure. It remains in the Git repositories and on the Kubernetes cluster where the developer workspaces reside, not on developers’ laptops.
So you’ve got your remote development team in place. You’ve implemented appropriate technological solutions. Here are some best practices that reinforce the benefits of remote models while mitigating the challenges.
You should track productivity among the team as meticulously as you would track code in a product. The point is not to ferret out the less productive. Rather, the need is to explore and identify efficiencies, just as you would in your code. For most of us, remote work is still a relatively new phenomenon. Companies and individuals are still learning. Spot potential issues early, and be willing to adapt and experiment.
Building and maintaining rapport among remote team members is undeniably difficult. It is also much easier to fall “out of the loop” when you can no longer overhear conversations taking place in the office.
To ensure that remote workers are not left behind, share all relevant meeting notes and communicate all decisions clearly and quickly.
Schedule regular dialogues between team members to build rapport, reinforce accountability, and make sure everyone has the same info. Be as clear and forthcoming with praise, as well as criticisms.
Research led by a team from the University of South Hampton in the U.K. found that one of the most common frustrations with remote work has been the lack of interaction between colleagues: Many people expressed a strong need for connection and social support. Few miss the regular travel to work. Many miss the workplace as a source of social interaction—those opportunities to contribute new ideas, learn from others and feel connected to the organisation. Digital communication has not been an adequate substitute for these interactions that enrich working life. No organisational effort to help employees compensate for this social deficit is likely to be wasted.
At Coder, we’ve found great success with a Slack integration that allows team members to give each other digital tacos as a way of saying thank you 🌮🌮🌮. Recipients can redeem their tacos for real items such as cookie delivery, a bottle of wine, company swag, or a massage, but truthfully those rewards are less important than the rapport developed between team members as well as the greater visibility that giving tacos provides into what people are working on across the company.
As mentioned earlier, going remote can increase the diversity of the team, but you need to embrace that diversity. Research has shown that teams solve problems faster when they’re more cognitively diverse. Encourage feedback from team members.
Even differences that may at first present challenges present opportunities. Having team members located in vastly different time zones is an opportunity to improve or support a product 24/7, without anyone working outside of their preferred schedule. Pull requests submitted at the end of a developer’s workday can be reviewed and waiting for them to resume work when they come back online.
Managing remote teams of developers presents challenges as well as opportunities. Many of the challenges can be overcome through good management practices.
Other challenges are better met with the use of appropriate technologies. Embracing cloud-powered development environments will go a long way toward empowering remote developers to work securely.