A long time ago (1963), in a technological world far, far away, JCR Licklider, the Director of the Advanced Research Projects Administration, had an idea for a a network that would allow teams at geographically dispersed research centers to engage in "cooperative programming" through networked "time share" computers. That idea was realized in the Defense Advanced Research Projects Administration Network, aka DARPANet, which came to be known and loved by us all as the internet.
Fast forward to today, and geographically distributed DevOps teams are common. At Sauce we have team members in Eastern Europe, Berlin, Austin, San Francisco, and Vancouver. Our ability to engage in "cooperative programming" is greatly facilitated by the original technology of the DARPANet, but also by technologies that have been purpose-built to support open source and other cooperative efforts, like Slack, GitHub, Jenkins, and wikis.
The technological innovation of the internet has led to a 24/7/365 work cycle; when a team signs off for the day in San Francisco, another is coming online in Australia. While technology has made this possible, finding the right development methodology to coordinate the efforts of these teams is the primary challenge to achieving continuous production and continuous integration. Consider, for example, working with a product management team based in San Francisco, and a development team in Bangalore. While it's possible for these groups to communicate in near-real time via IRC and email, the Waterfall approach to building out requirements, setting project plans, developing software, and then testing it ultimately leads to extended exercises in frustration and many extremely early or late (depending on your timezone) meetings. The flexibility afforded by having teams who can work 24/7 is nullified by a project management methodology based in a concept of productive time that is strictly linear and proceeds in defined stages.
Scrum is far better suited to the world of 24/7/365 production, and continuous integration, because it can react and respond immediately to what has happened in the previous 24 hours - this, in fact, is perhaps the greatest benefit to having daily standups. No matter how geographically distributed the members of a particular team might be, they are always "in the loop" of what their colleagues accomplished while they were asleep, and can work on it from there. All the methods and artifacts of Scrum are intended to allow anyone, at any time, to understand where things stand and what needs to be accomplished.
More importantly, though, Scrum helps members of globally dispersed teams stay engaged; in Waterfall projects, it's easy for individual teams and members to feel like they are just cogs in a machine, waiting for their bit of work to roll down the assembly line toward them, especially if they are separated by hundreds, or thousands, of miles. With Scrum, it's easier to keep individuals engaged, and make their team feel not like just a collection of skills, but as members of a community. This is the secret to understanding the management of global teams; they are an "online enabled" community, just like friends who stay in touch via Facebook. To keep members of an online community engaged with one another, you need to have periodic face-to-face encounters, you need to create opportunities for members to stand out and develop their group identity, and you need to encourage those who are within some reasonable distance from each to other to get together and create the small "nuclei" of the larger community. We have specific ways that we try to encourage this feeling of community among our team members, for example by having our stand ups over Zoom so we can see each other, by having "all hands gatherings" where we bring everyone into the same space for a few days, and by trying to colocate some team members so they have a sense of shared experience. JCR Licklider's vision was ultimately about fostering creative communities, and ultimately this is our goal as well; to find the methods and technologies that will allow our team members all over the world to feel like they are participants in a global creative community.
Joe Alfaro is VP of Engineering at Sauce Labs. This is the seventh post in a series dedicated to chronicling our journey to transform Sauce Labs from Engineering to DevOps. Start at the beginning and read the first post here, or read the next installment in the series.