In our last post on the good the bad, and the ugly of working remotely, we spoke about the perils of loneliness and isolation and the potential frustrations development teams might anticipate and avoid when working remotely. Today, we share remote Agile development best practices based on our experience adapting to a dispersed remote work model.
1. Go beyond email & voice calls
Organizations that rely on email, voice calls, and server file sharing alone may do themselves a disservice. Seeing each other, albeit virtually with video conferencing, creates a more profound connection. Moreover, communication platforms, like Microsoft Teams, enable video calls plus screen/file sharing and chat.
We use Teams to communicate and collaborate securely and compliantly from disparate locations. After a review of available platforms, we selected Teams based on familiarity with Office apps and its functionality and security features. As developers, we appreciate the opportunity to customize Teams to meet our evolving needs and wants.
2. Enable a choose-your-own device policy
Intelliware implemented a choose-your-own device (CYOD) policy for employees five years ago. Having moved our developers from desktops to laptop machines made working from home seamless. Working remotely over the last few weeks would not have been impossible, but indeed more difficult, if we were still using desktops.
Presciently, we also invested heavily on high-performance, multi-factor authentication VPN technology. The only connectivity issue we had were with some laptops that hadn’t run the VPN in the past. These issues proved relatively minor and we resolved them quickly with online support. We found a state-of-the-art VPN enables easy access to internal systems and scales brilliantly, in our case, enabling a 10-fold increase in load.
3. Conduct daily check in meetings
To counteract isolation and improve team member engagement, some of our teams have started organizing daily online check-in meetings during the latter half of the workday. The check-in is supplemental to the team’s more formal stand-up meetings, which generally occur in the morning and do not facilitate open conversations
During check-ins, we encourage team members to raise concerns and discuss their challenges. We make sure they feel no limitations on the types of issues they can bring up: project, technical, or personal should all be fair game. The check-in is a great replacement for those off-the-cuff, informal discussions where difficult issues get resolved that often happen in the project room.
4. Use digital tools for story tasking
Tasking occurs at the start of development when the team splits a story into finer-grained tasks. Tasking promotes self-organization by providing individuals with small, discrete chunks of work that they can sign up for and complete. The team then works in pull mode. Work is not assigned. Instead the team decides when and in what order tasks get done.
Tasking usually takes place in the project room, with the task lists documented on a whiteboard for everyone to view and update together. Over the past few weeks, our teams moved their tasking meetings online with few hiccups. However, without a whiteboard, finding a way to record and maintain task lists has proved challenging. Different Intelliware teams have adopted a variety of tasking approaches:
- The sub-tasks feature in Jira. A word of warning, we have observed, for large stories with long tasks lists, that keeping sub-tasks up to date in Jira can take quite a bit of time and effort to the point of turning into a burden.
- Posting a table on a tool that supports sharing with multiple team members in a secure way can work as a substitute. Examples of communication tools include Google Sheets, Confluence, and a Microsoft Teams Excel workbook. Often, the choice of tool is driven by client preference or whatever they are accustomed to.
Regardless of how you choose to approach tasking, try to set up notifications to the team as task lists get completed. Like updating a task list on a whiteboard, it’s easier for teams to keep their efforts synchronized when they know who is working on what task.
5. Embrace pair programming
Our teams find pair programming (pairing) even more critical when working remotely. Pairing helps keep team members synchronized with each other and engaged, and it can fill the gap created by the loss of formal and informal discussions that occur in the project room.
Our teams find pairing especially helpful for onboarding new members. Normally, the practical osmosis of working in project rooms plays a significant role in helping new members get up to speed. Today, we find pairing online helps new members with the knowledge transfer they need to get productive quickly.
Pairing sessions can happen through screen sharing and by allowing participants to switch between the driver and navigator roles by changing keyboard and mouse control. But just as it is in a project room, online pairing can be tiring. Time management tools, such as the Pomodoro technique (using Tomato Timer) can help by indicating when to switch roles so you can keep pairing sessions engaging.
6. Manage work-life balance
Separating work from home life can prove difficult when you live and work in the same space. Some of our teams have intentionally scheduled their daily check-ins late in the afternoon to help demarcate the end of the workday. The meeting acts as a signal for team members to wrap up and move on to personal activities, such as making dinner.
Scheduling practices, such as the Pomodoro technique noted above, can help define periods of work and breaks. Other resources, like Stack Overflow’s post, provide helpful advice on how technical pros can better cope with working from home. Our favourite tip is to shut your computer down and put it away at the end of the day!
7. Learn to love the mute button
Don’t forget to use your mute button. When attending an online meeting with multiple participants, use the mute feature when not talking. Even with noise reduction in the works, background noise from your local setting can bleed into your microphone, reducing sound quality and creating distractions for others. This muting tip is doubly true for those of us with school-aged children and/or excitable pets at home.
Similarly, turning your video camera off after kicking off your meeting can sometimes be beneficial. We don’t recommend this in one-on-one and small group situations because being able to see and interact with your fellow participants is so valuable. However, in online meetings involving large groups, turning your camera off can greatly reduce visual distractions, like someone seeing you fidgeting or yawning.
Chances are, if you share screens to view and collaborate on a file, you’re all already focused on that file anyway. And, of course, turning off your video preserves bandwidth for the other members of the household to enjoy, undisrupted.
8. Capture your notes
Most online meeting tools provide chat functionality for side conversations during a meeting. In large group settings, we find chat handy for posting comments, links, and updates from team members without interrupting the main meeting flow.
However, we have found the built-in meeting notes function in Microsoft Teams too clunky for multiple people to edit at a time during a meeting. Instead, we prefer a single, shared Microsoft Word document that we co-author together.
Online brainstorming and whiteboarding functions still have some ways to go. We have explored multiple tools online but have not come across any that can effectively replace a whiteboard in a project room.
Summary of remote agile best practices
1. Go beyond email & voice calls and embrace a communication platform
2. Enable a choose-your-own device policy and use robust remote security
3. Conduct new daily check-in meetings independent of stand-up meetings
4. Use digital tools for story tasking
5. Embrace pair programming, especially when onboarding
6. Manage work-life balance, including signaling the start and end of days
7. Learn to love the mute button and to turn off video after saying hello, if appropriate
8. Capture your notes with co-authoring
We hope and trust these practices will help your team adapt to these challenging times, just as the advice of so many other companies has helped us. Please feel free to add your own suggestions in the comments. In time, we hope to view the events of 2020 as an inflection point where our collective attitude towards remote work shifted from something exceptional to a new, and better, norm.