The framework for agile development empowers the diverse environments of modern business. While some project teams can be collocated, many projects are undertaken by teams who are distributed geographically or organizationally. This article focuses on five challenges faced by these distributed agile development teams and provides some solutions.
I recently had an opportunity to co-lead a session for Agile Charleston, a self-organized, local group focused on evangelizing agile software development methodologies and sharing experiences and best practices. We focused on a topic my team knew well—the challenges that distributed agile teams face.
Agile has been a buzzword for years, but today it has become the methodology of choice for developing software. The primary reason companies and teams prefer agile is that the twelve principles behind the Agile Manifesto have proven to be three times more successful than traditional waterfall methodologies, according to The Standish Group.
Beyond the Agile Manifesto’s twelve principles, the framework for agile development empowers the diverse environments of modern business. While some project teams can be collocated, many projects are undertaken by teams who are distributed geographically or organizationally. This article focuses on five challenges faced by these distributed agile development teams.
Challenge: Communication is a challenge in traditional agile environments, but that challenge is made even more difficult among distributed teams. The primary reason is that distributed teams are limited in their communication channels. For example, while collocated teams face each other in a stand-up meeting, distributed teams often face a speakerphone. Given that so much of communication is nonverbal, the distributed teams are disadvantaged by their circumstances.
Solution: One solution is to provide technological bridges for the teams to facilitate communication. According to research by the Human Computer Interaction Institute, the use of a “visualization tool made a significant difference, improving not only individual performance, but also collaboration.”
Knowing that communication is heavily dependent on nonverbal cues, the research shows that providing collaboration software such as Microsoft Lync or Google Hangouts increases collaboration. These tools are cost-effective and relatively easily to deploy across platforms.
Challenge:A critical issue for teams distributed across time zones is having access to each other with regards to core hours and communication tools. Core hours can be tricky—the greater the time differential, the more difficult the effort. Offshore teams that cannot establish overlapping hours will likely have a lower average velocity. By way of example, just the act of taking on additional tasks becomes a one-day event.
Solution: There are no shortcuts here. The only way to make distributed teams work well is to make sure team members are able to attend stand-ups. This often has two components:
- Ensuring teams have the communication tools mentioned earlier
- Establishing core hours
While this becomes difficult for teams in time zones that are ten to twelve hours apart, the ability for team members to communicate is a core agile principle and is not negotiable for success.
Teams can take turns alternating the burden of being the party who has to stay up late or get up early. Alternatively, it can be an individual’s decision, but these issues are best established as non-negotiable practices as a team is selected and forming.
3. Space Layout
Challenge: We traditionally associate space layout with collocated agile teams, but there is a profound impact on distributed teams as well. When team members are in a space that doesn’t easily allow them to connect with remote team members, communication and collaboration are likely to suffer. While technology bridges can foster communication and collaboration, they can only do so if the space they are in allows for it.
For example, a team of seven that has to all huddle around one person’s monitor to brainstorm with a remote team member is limited. Not everyone can easily see the screen. Their distance will likely prevent them from reading anything written on the screen. At that point team members go from being active participants in the session to obligated observers.
Solution: Create space to foster communication and collaboration and ensure that there are tools and areas dedicated for the use of those tools.
- One-on-one communication with remote team members: An example of this might be a chat or voice over IP (VoIP) connection on team members’ computers. This allows the remote team members to directly interact almost as easily as they would with a colleague sitting beside them.
- Group sessions with remote team members: An example might be a meeting room space that is available at a moment’s notice. This allows the distributed team members to join together to move past a blocking issue without having to struggle to find the space and tools needed to collaborate.
4. Product Delivery Issues
Challenge: Even with the best efforts put forth into defining an interface, it is harder for distributed teams to properly specify the logic of an interface. It is almost impossible to document assumptions about the implementation to a level that still allows the team to function in an agile manner.
Solution: Two words: continuous integration. Placing everyone on a single code base makes sure everyone remains close to the mainline, regardless of their locations. While this would not solve every problem, the continuous integration process (with acceptance testing, of course) will ferret out integration problems quickly, before they get buried and become harder to identify.
Challenge: When the requirements/design team is remote, the requirements delivery process can be more difficult because teams are usually left with enormous design specifications that are challenging to read through. For example, within the user interface (UI) specification process, the remoteness of the design team becomes an issue because teams will often be unable to commit to the exhaustive design sessions needed to lay out every detail of a UI. At that point, the process gets either chopped up or emailed out. When the features and functionality are distributed piecemeal, the team members risk losing track of the context of the design.
When the requirements/design artifacts are emailed or otherwise shared and the team members review them independently, teams risk implementing multiple interpretations of the requirements or designs.
Solution: A simple solution is to parse the requirements into story-sized sections and send the requirements/designs out as storyboards. Storyboards, which are sketches that illustrate a narrative of the interactions between people and a product, can be rich in detail but allow for greater engagement while still being focused on the feature or story.
Wireframes and mock-ups add more constraints (think form factors such as mobile or even style guide implications) to the requirements and serve to preview the UI in concept (wireframes) or in detail (mock-ups). When dealing with wireframes or mock-ups, you can reduce the risks of multiple interpretations by annotating them. This allows the designer to tell more of a story by adding context to static images. While this takes little additional skill, it does add some time to the process.
Challenge: Selecting teams of employees that can succeed in a distributed agile environment can be an interesting challenge. Research by psychologist Stuart Duff and his colleagues found that the employees who “chase socialization” are the ones who flourish in virtual work environments. Those who are socially inclined stay connected no matter where they are.
Solution: While you would not get far hiring only extroverts (isn’t it hard enough finding talent?), distributed teams need to plan on building socialization tools and opportunities into their workflow and team building. The first step is making sure everyone is trained to fully utilize the collaboration software.
It also helps to create team-building and socialization opportunities. For example:
- Five o’clock gaming session: Create some time where remote coworkers can interact through online gaming.
- Know your coworker contests: Create a game where you describe the passions and interests of a particular coworker and everyone has to guess which coworker it is.
These types of activities increase the number of informal conversations between remote team members even after the events. Research has determined that “80% of innovative ideas created in offices are a result of informal personal communication.” 
When hiring new remote team members, give some weight to the factors that will allow them to be more successful. Look for candidates that:
- Have a need to socialize
- Show an eagerness to learn and adapt to new technologies (such as collaboration software)
- Are able to lead conversation remotely versus having to be led
As with many complex problems in our world, there are few one-size-fits-all solutions. While distributed environments present unique challenges to agile teams, there are paths to success that don’t require dramatic contortions to the agile principles. Agile teams will find that with some planning and considerations, distributed agile teams can achieve effective velocities while building their own unique team chemistry.
1. Englich, G., Remmers, B. (2008) Planning Guide for Conference and Communication Environments, Birkhäuser Architecture, p. 15