11 Jul 2018
13 Mar 2017Agile Distributed Teams – An Inevitable Reality of Today
In recent times, the vision of IT industry has enormously expanded through distributed teams that work around the world. This becomes obligatory as 57% of the agile teams are distributed according to VersionOne’s analysis. Agile is all about providing business value in shorter iterations at a maintainable speed, adjusting to changing business needs. Distributed agile is simply applying agile practices and principles to software projects executed by teams at different locations or site also known as distributed teams.
Given below are some of the common reasons why companies need to adopt distributed teams:
• Global market: As businesses are expanding globally, it has become essential for companies to gain expertise in the global market. It can be accomplished through local partners located in these markets or through mergers.
• Global talent: Companies are going global by hiring quality talents across the globe. Relocation costs, visa availability, employee readiness to relocate are among the common factors that make it obligatory to adopt a distributed team.
• Economical: Cost effectiveness is the major reason why companies often outsource work and avail economic benefits.
• Time-to-market: A distributed team model helps in handling the pressure of time-to-market regardless of the differences in time zones.
Moreover, non-availability of resources in the same location and work from home culture are the few factors that have encouraged companies to go global. Besides these, there are other factors such as high bandwidth internet and collaboration tools, which have influenced companies to adopt distributed teams. Web portals, online collaboration tools, bug trackers, and source control servers help in managing the distributed projects. Virtual machines and terminal services enable administration and remote testing.
Distributed environment: The need of the hour
We need to accept the fact that team which is distributed is sometimes less effective than the team which works together, under the same roof. In fact, according to recent industry surveys, the success rate of team located under the same roof is 20% higher than that of the geographically distributed teams. Distributed teams have to put extra effort to collaborate and communicate. Timings of the distributed teams have to be flexible in order to work with each other continually.
Challenges faced by agile distributed teams
• Working in different time zones: As the level of distribution gets wider, the difference in time zones becomes inevitable. Change in the time-zones sometimes leads to hindrance in the timely completion of the project. For instance, if you are struck mid-way, there is no way for you to call your team and get the work done as they would be in a different time-zone. So, you need to wait to get the required clarification on your task.
• Exchange of information: Communication is the root of all issues in a distributed team. One of the most important agile principles is face to face communication, which cannot be achieved by the distributed teams. At times, changes in the projected environment, changes in the release plan, requirement changes, and defects resolved in the build are not informed timely because of the difference in time zones.
• Knowledge sharing: A lengthy communication is required for a discussion that should just require a 10-min conversation.
Strategies to overcome challenges faced by agile distributed teams
1. Adopting a hybrid approach with remote and local team members: In this approach, the project manager, lead, and architect should try and be onsite as regularly to interface with the key stakeholders directly. This approach will not only reduce the risk of misunderstanding technical requirements and business needs, but it will also provide stakeholders and project owners the ease of local contacts combined with low-cost resources, offsite.
2. Cross-functional teams: The main reason organizations turn to cross-functional teams is to address the challenges that surpass departmental boundaries. Preferably, all team members should be able to do tasks such as designing, development, analysis, and test, so that work can be re-distributed if required to complete all the items in the sprint backlog. It is equally important to give each team member equal rights for the features and components of the solution, so every individual in the team feels accountable for the accomplishment and success of the project irrespective of the location.
3. Designating a front-runner at each worksite: With a team of three or more members, it is imperative that somebody serves as a lead. This person could be a scrum master, lead developer, project manager, or any other team member who can demonstrate leadership skills. The onsite lead would serve in providing the team with the right support and direction through face-to-face interaction. The lead will also serve as a single point of contact and exemplify the needs of the local team so that the team does not have to attend every meeting, instant message conversation, or email thread. By this way, the lead can streamline communication and make sure that team has the required support and guidance to stay on track and be focused.
4. Respecting time zones and cultural differences: Team members need to adjust on the timings of daily standups and team meetings when they are spread across the time zones. By keeping consistent timings, team members can have a sense of consistency in their schedule, and they can also plan family obligations and other personal commitments.
5. Usage of shorter iteration: Shorter iteration will work out if the level of distribution is more. Agile teams in distributed environment prefer short iteration (2 to 3 weeks) for a successful implementation. As, more the level of distribution, more are the chances of miscommunication. With the help of shorter iteration, far-located testing teams can cope-up with the recurrent changes in the product.
6. Maximizing the communication channel: Communication is a crucial factor for a successful product in a distributed environment. It is imperative to maximize the available communication bandwidth to bring together distributed teams. There are various online meetings and instant messaging tools that allow distributed team members to see and hear each other more during the day. Usage of webcams during daily standups and other meetings, can enhance the productivity and lessen communication gap.
7. Choosing the right tools: For keeping a distributed team organized and well informed, it is essential to use online tools. There are various tools for creating and maintaining product backlogs, planning sprints, organizing, managing task boards, tracking bugs, monitoring burn-down, and other important work items. Using the common productivity apps such as OneNote and Excel in a shared environment like SharePoint can also be helpful.
This rapid growth in technology has made us acquainted with some great communication tools. We just need to maximize the utilization of these tools to overcome the challenges associated. Some of the tools are:
• Skype: Skype is the best tool so far for face-to-face communication. It is to a great extent the most helpful tool for distributed teams. Skype can help reduce the barrier to a great extent. Using Skype video call, we can discuss the plan for the week, status for the release, and many other important things.
• Desktop sharing: Go-To-Meeting can provide the ability for presenters to share their desktop. Reviewing the burndown charts etc. can be done here.
• Slack: Slack is also a great tool for cutting down the barriers of different locations. This tool provides features such as voice calls, video calls, instant messages, etc. This can be a useful tool for distributed teams.
• IM: One of the easiest ways to share the information instantly is through instant messaging. AOL is used widely for instant messaging and one-to-one group chats. It is an informal way of sharing the information which can be shared formally through emails afterward.
• VOIP: It is an important system for daily stand-ups and conversations. Voice over IP system (VOIP) is highly scalable and provides interoperability.
For continued success, re-tweaking of agile practices is the need of the hour. Distributed teams need to make sure that there is at least a minimum of 3-4 hours’ time-overlap required during which teams can complete agile ceremonies and seek all required clarifications to be able to achieve their tasks for the day. According to TestingXperts (Tx), collaboration and communication are key to work in distributed environments. TestingXperts’ robust consulting and project management methodology drives efficiencies through virtual co-location to ensure seamless integration of distributed teams.
It’s also very essential that distributed teams mandatorily participate in all the agile ceremonies to be able to understand and get the big picture and align efforts accordingly.
– Sprint planning & grooming
– Stand up meeting
– Demo of potentially shippable product
– Retrospective meeting
The major tools used by Tx are:
– Slack for instant communication
– Rally/TFS as scrum board and test management tool
– Zoom for online meeting/screen share
– Microsoft Teams for screen share/ private group chats
– Joinme for screen sharing, online meetings, and web conferencing