A in Country A if Team B in Country B went home without realizing that he checked in a piece of code that had broken the build.
Continuous integration (CI) tools help bridge this gap by providing build automation as well as continuous tracking of project quality. Figure 5 lists the various parameters that can be automated and tracked using a CI server.
Figure 5: CI Dashboard
Strategy #4: Creating Avenues for Collaboration
“Collaboration and communication,” an important aspect of the Agile Manifesto, can be severely impacted due to the distributed nature of teams. Though frequent travel and resource shuffling across locations is preferred, practically, it may not be possible to use these options due to the huge cost factor attached to them.
Using emails and chat tools can provide a quick and cost-effective solution for bridging the collaboration gap, but there could be problems with using only these tools. When using email, only the primary owners of a task or story are kept in the loop and owners of dependent tasks may not be aware. In the case of agile projects, the entire team has to be in sync due to collective code ownership. Using group IDs can resolve this issue to an extent; however, the pitfall of managing threaded discussions over time is still a problem. On the other hand, “chats” can help trigger quick and spontaneous discussions and group chats can be used for productive team discussions. Chats are slightly better than email, since it’s possible to share emotions via gestures. But, chat shares the same pitfalls as email, including managing chat content over time. Collaboration tools like wikis, Confluence, Alfresco, and SharePoint are better alternatives used in many agile projects. Figure 6 shows a sample screen from Confluence, a collaboration tool.
Figure 6: Confluence, a collaboration tool
Strategy #5: Virtual Taskboarding
A taskboard is representative of all the work being done for the sprint. It has to be updated every day (the ScrumMaster is generally responsible for keeping it alive) as it acts as a ready-reckoner for the daily scrums. A quick look at the taskboard gives anyone an indication of how well the sprint is progressing. However, the taskboard is not useful in the case of distributed teams, since the remote team cannot see this dashboard. Most of our distributed agile projects handle this situation by use of virtual online taskboards (shown in figure 7), which are generally available along with agile project management tools.
Figure 7: Virtual taskboard
Strategy #6: Setting Up Meetings
In the case of distributed teams, there is a constant need to set up audio conferencing bridges, configure live meetings, and manage the time slots for important activities like sprint demo, retrospectives, and planning meetings. Unplanned, last-minute hurry up can cause a lot of panic, and there are even instances when sprint demo sessions and planning sessions have been cancelled due to the unavailability of a conference room.
Since most of these meetings need to happen during extended business hours, it is a best practice to plan these meetings upfront, thereby giving team members sufficient time to plan their leave and unavailability. In some agile projects, the sprint demo and planning dates are published at least one month ahead. When faced with issues like network problems, poor connectivity, and poor turnout, Scrum Masters can make alternate arrangements as soon as possible. This is an important point to keep in mind, since carrying forward with a meeting with too many interruptions and disconnections can break the team’s morale and waste time. Calling off a meeting due to a missing team member shows