Vinod Srinivasan, product manager at VMware, contributed to this post.
Agile teams are designed to respond to change. But even for the most seasoned agile teams, responding to the changes brought about by COVID-19 was a pretty tall order. This is the story of how one agile team responded to the abrupt transition to remote work without missing a beat, and without losing its sense of synergy. If you’re in need of some tips on how agile software teams can maintain both their productivity and their morale while remote, this post is for you.
How the Dell AppFactory team helped flatten the curve without flattening its burndown
In 2019, Dell and VMware Pivotal Labs embarked on an ambitious journey together to blaze a trail to the cloud for Dell's portfolio of server-bound apps. The goal was to assemble a team of polyglot engineers to move apps from all reaches of Dell’s global organization in a uniform way. It was our shared belief that such a team, enabled with the methodologies embraced by VMware Pivotal Labs, would be capable of producing high-quality migration outcomes at scale.
Working with Pivotal Labs, Dell established an AppFactory team dedicated to the art of low-touch migration to the cloud. Its goal was to help application owners move their apps to a cloud running on VMware Tanzu Application Service (TAS) by making as few code changes as possible. Those owners would receive a handoff packet consisting of a merge request and a manifest of the changes made to their app.
The AppFactory team would be rooted in extreme programming; engineers would pair on every story and pairing partners would be swapped frequently to distribute knowledge. Anything that could be automated would be; anything else would get a recipe. We hypothesized that as the team took on more apps, more of their solutions would become applicable to more of the projects coming in, and the team’s velocity would accelerate over time. We referred to this pattern as: The more they do, the more they can do.
We went about proving this concept in the third quarter of 2019.
A handful of Pivotal Labs solution architects paired with Dell engineers to create the new AppFactory team. In roughly eight weeks it had moved eight apps to VMware TAS. In January 2020, Pivotal Labs returned to Dell to assist with the program's expansion. Little did we know, as we made introductions with the newest members of the AppFactory initiative, that the handshakes we were exchanging would soon be taboo.
By March, COVID-19 had begun dominating much of the news cycle. The Pivotal Labs architects were flying in to work at Dell’s offices every week, but we were all starting to get the feeling that adjustments to our work arrangements were inevitable, especially for those who traveled. Before the month was over, we received news that Dell was instituting a remote work policy for all employees whose jobs could be performed away from the office. The policy was effective at the start of business the following day, and applied to all of us.
To its credit, the team wasn't panicked by this change, as incorporating weekly remote collaboration is a core feature of Pivotal Labs' approach. That said, we knew we had to make some notable changes to our approach in order to succeed in this 100 percent remote environment.
By the end of the first week, the refinements we needed to make had become clear, as things we used to do in the office almost effortlessly had become loaded with unnecessary steps. For example, during our daily standup meeting, in which we share updates with the team, we stand in a circle, leveraging eye contact and the ability to observe each others’ body language. When someone is done with their status, there is an unspoken cue for another team member to go next. Video conferencing made these transitions awkward. And not only did standup (along with iteration planning and retrospective) require formally scheduling meetings, but if after standup, someone had a question about a story someone else had worked on, they'd have to ping them on chat, find out whose video conference link they were using with their pair at the time, and join that session.
To ensure remote agile success, the Pivotal Labs team introduced some improvements to its remote work practices, namely:
Establishing pairing rooms (static, always open, one per workstream)
Reimagining the daily standup
Establishing a team room (static, always open)
Establishing a hangout room (static, always open)
Establishing pairing rooms
Normally virtual pairs use the online meeting tech du jour and work out connectivity between themselves after standup. This works great when all you have to think about is your pair and your tasks, but the team connection will not maintain itself if the whole team is remote for the long term. By establishing static pairing rooms using URLs that remained unchanged, we created virtual places everyone could find, almost like office huddle rooms. At the office, if someone had a question for a teammate who was pairing in a huddle room, you could drop in and have a quick conversation. The same idea applied to the static pairing rooms.
Reimagining the daily standup
Next, we had to revisit our daily standup and amend it to go with the flow of our fully remote team, which spanned three time zones. Our first change was to modify the timing of the standup to ensure everyone would be awake, regardless of which ocean they lived closest to. We also introduced the convention of concluding standup status by saying “popcorn,” followed by the name of the person who should give status next. So, for example, if Alice was giving her status and it was already covered by her pair, she might report her status by saying “Covered. Popcorn Bob.” This would let the team know her status and let Bob know it was his turn to speak next. Not only did this resolve the awkward pauses that were threatening to haunt our standups and fragment the first team conversation of the day, it forced people to pay attention. Nobody wanted to “popcorn” someone who had already given status.
Our last change to standup was to replace pair assignment with a brief recap that had us review which stories were open and in which pairing rooms they would be worked on. Rather than assigning stories to pairs, we assigned stories to pairing rooms. It was then up to the team to organize pairing partners by pairing room based on what made sense that day. Sometimes the same pair would work on the same story or theme in the same room for several days. Sometimes folks would get tired of working on the same app and would swap workstreams with someone in a different room. Sometimes a pair would finish a story at 4 PM, when it doesn't make sense to start another one, so the pair would split up and join the other pairing rooms to form mobs. What was important was that our options to collaborate had structure. There was a list of places to check if you were looking for someone to ask a quick question of or something new to work on.
Establishing a team room
We also wanted to provide a sense of consistency/concreteness to our ceremonies. Agile teams value their ceremonies and creating ephemeral meetings for them adds friction to what should be the most predictable parts of the week. We remedied this by creating a team room whose URL would not change. All of our ceremonies, from standup to retro, were conducted in the team room. And, just as with this team's arrangement at its office, the product manager worked primarily in the team room so as to be available for questions.
Establishing a hangout room
Finally, not every space at the office is dedicated to work, and so a virtual hangout room seemed all too appropriate. There, instead of ping-pong, the team was able to play online games. Whereas before, a few of us might hang out for a drink or two after work and talk about our kids, in the hangout room we might introduce them to the team. Not everyone was into it, but for those who were, the hangout room supported a sense of team camaraderie while providing a place to connect that wasn't dedicated to problem-solving.
When we initially instituted these changes, we did so to make meeting invites a less central part of everyone's day, but as it turned out, we accomplished a little more than that. When we go to the office, all we need is a motivated team and a whiteboard for collaboration to be successful. And really, the whiteboard is optional. When we moved to an entirely virtual workplace, we realized that we needed to provide intentional pathways for these interactions, that they will not occur on their own.
By creating static rooms, we defined a perceived physical boundary around our virtual space. And in doing so, we added concreteness to the day’s workflow. The result was a visible change to the team; people were dressing for work again, for one thing. The language of the team also changed; "I have to be online for standup" became "I have to be in the team room for standup." Pairs didn't tell each other they'd circle back on chat after standup. Instead, they said things like, "I'll meet you in pairing room No. 2."
By using proper nouns to describe our meeting places, and by ensuring those meeting places were open to all, we had destinations, not just calendar items. And as time went by, those virtual rooms began to feel like part of our own distributed office. Developers jumped in and out of rooms with questions, product management was always available and in the same location, and information flowed with far less effort. Spontaneity returned and with it, the accidental discoveries sparked by curiosity and social connection.
Unstoppable success with remote agile practices
Over the remaining six weeks, the team gained velocity and ultimately exceeded its target by 50 percent, moving a mind-blowing 30 apps in 12 weeks by April's end. In the meantime, another key metric, cycle time, showed a reduction of nearly 40 percent. That meant a 40 percent reduction in total time required to take in, modernize, and hand off a single application. Over time, the more they did, the more they could do.
The team's progress did not go unnoticed; stakeholders were intrigued by its structured approach and asked the team to share its secret sauce with a greater Dell audience. The team felt empowered and excited by the prospect of bringing new energy not only to its own way of working, but to the company as a whole. Even in the midst of the most disruptive global event in modern history, the Dell AppFactory team was unstoppable.