Once seen as a differentiating perk offered only by select companies, the option to work remotely has become increasingly common and is now often a deciding factor for whether a candidate accepts a job. Remote work topped the list in a recent poll on what employees want – second only to a generous paid time-off policy. With millions of Americans now sheltering in place to halt the spread of COVID-19, working from home could become the new standard work model, even long after the crisis has passed.
What does this mean for the highly collaborative world of software development?
[ Want more tips for efficient remote workgroups? Read Remote work: Lessons from a remote-first company. ]
Now more than ever, it’s vital for development team leaders to understand the ins and outs of how developers work and guide them to effectively work from home as part of a fully remote team.
Leading remote development teams: 4 tips
The following tips can help ensure that your teams stay productive, communicate successfully, and mind the lines between work and home.
1. Lock in a set schedule
Encourage your teams to determine (and stick to) a set schedule when working from home. This will keep them productive and maintain a healthy separation between their work and personal lives.
Best practices may include kicking off the morning by catching up on email, git log, Slack, etc. and sticking to triaging (not handling everything), so they can review and respond to smaller stuff instantly.
From there, developers should set their hours for the day. This might vary day to day, but it’s important to set limits in the morning. Productivity thrives with timeboxes. “One hour until lunch” or “Two hours until the day is over” works much better than “Let’s start working on this and see how long it takes.”
2. Zero in on communication
Remote software development requires effective communication, and it all begins with writing stuff down. Leaders should clearly outline best practices for communication among their dev teams and ensure everyone is abiding by these guidelines.
Well-written prose looks exactly like well-written, clean code: It looks like someone cares. Most importantly, it should be written so others can easily understand it, with no obvious typos and grammar mistakes.
Make sure your teams are mindful of the fact that people working in different time zones might take a full workday to respond to messages. Avoid multi-day back-and-forths by providing as much information as necessary for an individual to respond to a question or request without the need for follow-up questions.
There are fewer opportunities for spontaneous communication when team members work remotely. Employees are not visible if they don’t raise their voices. Encourage devs to actively communicate their progress, proactively ask for help, clearly document what they know, and otherwise share helpful information throughout the course of the workweek.
3. Reduce the back-and-forth of reviewing code changes
When you’re reviewing code, it’s essential to have a deep understanding of what that code does. If managers aren’t familiar with how it works, there may be a lot of back-and-forth asking the author questions, which takes time away from completing other important tasks.
[ Read also: DevOps: 5 tips on how to manage stronger remote teams ]
Avoid using words like “should,” which can be easily misunderstood. When you say, “This should be changed in XYZ” on a doc or code review, for example, does that mean that you think it was already changed, or that someone needs to change it? The English language can be ambiguous, so be extra clear to avoid needless communication roundtrips: “You will need to change this in XYZ.”
If a change is mostly correct and you trust the author, consider approving it pending certain specific modifications: “Looks good to me if you fix the test to do XYZ.” Then the author can make the requested changes on their own and merge it without waiting for another roundtrip.
4. Be deliberate about gaining context and building rapport
Writing code is tough because it requires understanding large and complex systems – and staying in sync with a team. If you’re accustomed to working in an office every day, you’ve benefited from gaining passive context and building rapport with the other team members through casual chats and personal interactions. When everyone’s working remotely, you need to be deliberate about these things.
Set up video chats with your team members to get face time. Connect on a personal level as well: How is your team member doing? What’s something fun they did recently?
Make sure that your team members have time to share their mad-genius ideas and ask “stupid” questions in meetings. If your only meetings are hyper-efficient affairs, with each agenda item thoroughly vetted beforehand, you’ll lose out on these. Sometimes the best ideas started out half-baked and crazy; sometimes “stupid” questions help you uncover big misunderstandings.
By implementing these tips, you can give your devs the tools they need to stay engaged with their team and build better software – even alongside kids, cats, or other coding companions.
[ Are you leading culture change? Get the free eBook, Organize for Innovation, by Red Hat CEO Jim Whitehurst. ]