Agile in the Remote Era
How well do agile principles and practices hold up in a remote-only workplace?
An unusual year
Without question, 2020 (and thus far in 2021!) has been an unusual time with many challenges. However, it's been interesting to watch how organizations adapt to new ways of operating, from professional sports teams to schools to workplaces. I've been working from home since March 2020 when California went on lockdown due to COVID-19. For many individuals, work-from-home will become a permanent option even after the pandemic is over.
I've wondered what this large-scale shift from an in-person, synchronous workplace to a remote, asynchronous workplace will do for established development processes that we've come to rely on. Below, I'll look at ways in which agile processes of Scrum and Extreme Programming (XP) may or may not be relevant in a remote workplace. After that, I'll look at how agile principles are either easier or harder to follow with a remotely-working team.
Scrum
Scrum is challenged by remote work in two ways. First, not all of Scrum’s roles translate very well remotely. The ScrumMaster role largely oversees the Scrum process itself, but I feel their influence is greatly reduced in a remote setting. For one, ScrumMasters may be largely unaware of the true working environment of the team, because each team member has their own unique work environment dictated by noise at a coffee shop or co-working space, or interruptions from pets, children, or a package delivery at home. Additionally, ScrumMasters can do far less to facilitate a productive team environment, since so much of that environment is dictated by what's happening at home.
Second, not all of Scrum’s practices adapt well to remote work. The daily stand-up is perhaps the best-known practice of Scrum, but asynchronicity and remoteness take their toll. For one, it may not be feasible to have the entire team available at the same time, especially if some employees live far across the globe from others. For another, it's unlikely that an entire remote team will all naturally stand up behind their laptops while they share their update and impediments. This can lead to remote meetings running long, lacking energy and engagement. Granted, having cameras on during the meeting or enforcing brevity in other ways can breathe some life into the meeting.
This being said, I feel that other scrum practices like the retrospective, backlog grooming, etc could still wear well in a remote setting, or even be enhanced. For example, team members who may feel shy or intimidated to speak out about a process problem may be willing to bring it up in a remote setting where everyone types in their anonymous feedback into a retrospective, instead of having to voice a concern in-person with the entire team looking on.
XP
XP puts great stock into the concept of a colocated team with lots of face-to-face interaction. It also values the importance of having an on-site customer. These two central tenets of XP are severely limited in a remote workplace. Remotely, it's hard to have the feel of the whole team working side-by-side. Asynchronicity also makes pair programming much more difficult -- in a remote setting, finding a pairing partner and switching regularly strike me not only as infeasible but also detrimental to a flexible workday.
Now that we've looked at processes and practices, let's step back a little and see how easy or hard some of the principles behind the Agile Manifesto are to abide by when a team is fully-remote. These principles generally hold up fairly well under change, and a few of them might actually be easier to follow with a remote team.
What’s harder
"Business people and developers must work together daily throughout the project."
"The most efficient and effective method of conveying information to and within a development team is face-to-face conversation."
These two principles are harder to follow when you are not physically co-located and on different time zones, though not impossible. Although it's not quite the same as an in-person conversation, a video call with no background noise on a good internet connection offers a pretty solid communication medium.
What’s easier
"The best architectures, requirements, and designs emerge from self-organizing teams."
I find that tools like Slack and Microsoft Teams can really help in this regard. They democratize the workplace and make it much easier for employees to individually and collectively have a voice. If employees are unhappy with a corporate policy, for example, they can air their grievances through these channels. This is better for the company because employees are expressing their opinions in an open fashion, instead of getting together and griping behind management’s back. Moreover, it really benefits individual employees who can see that others have the same concerns as they do. An employee who might never feel comfortable bringing up an issue in-person may feel comfortable doing so in a virtual setting.
"Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely."
I can speak from experience that remote work lends itself very well to work-life balance if you (and your team) know how to disconnect. At 5:30 PM, the kiddos outside your door, or your dog barking, or the aroma of dinner cooking, are stronger pulls than a coworker pinging you about a non-critical issue. Family, friends, and hobbies often win the tug-of-war at the end of the day when they're only steps away from where work gets done.
"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done."
Perhaps the selling point of remote work is being able to work from wherever you want, with a workday that fits into your lifestyle. Justifiably, some may be skeptical of the productivity of remote work, wondering “but how will I know if my employees are actually doing their work or if they are just slacking off”? In a high-skilled, creative field like software engineering, if that is your primary concern, then perhaps you have hired the wrong people (not the “motivated individuals” mentioned). Remote work is tremendously beneficial for the “giv[ing] them the environment they need”. “Giving people the environment they need” sounds to me like allowing for a flexible schedule, letting people work from wherever they would most like to call home, and by allowing organic breaks throughout the day to walk the dog or attend a child’s ball game or stay in shape. Some individuals will prefer work in an office setting next to other coworkers, but since there's no one-size-fits-all working environment, offering a remote option may be just the “environment” a teammate needs to be most productive. This being said, remote work can come up short on “giving them the support they need”, as there's no substitute for an unplanned face-to-face conversation with a coworker or boss or the “real takeaway” of a meeting in the hallway that follows the actual one.
In conclusion
It seems to me that, through the wholesale shift of work habits in the last year, agile principles generally fared well, Scrum roles and practices are somewhat hampered, and some central XP practices have become much harder to follow. I'll be interested to see what new development processes or paradigms come out of this sudden shift to remote work, and whether they will be as beneficial and revolutionary as agile principles, processes, and practices have been for the last 20+ years.