One of the main concepts depicted in the Agile Manifesto is close communication among team members. However, in the real world, sometimes we have to face the situation that the whole agile team is split into several sub teams that may not be in the same location or time zone. This situation usually happens with global companies or when some work is outsourced to a services provider that may be in another country. As a specialized software testing company, we often have the situation where our customer develops their software while depending on us to be responsible for the quality assurance as a remote agile testing team.
With agile development methods now becoming more popular, we have had to adapt from a waterfall situation where we wait for a software build based on fixed time periods to a‘remote agile testing’model.
Remote Agile Testing – Soft Success Factors
To do this, we must have a very good plan. But even before starting the project, we think about a few soft factors that have a significant impact on success but are often forgotten. These include:
Team Spirit: how to make sure that both local and remote team has the same spirit. Usually, it means that all team members know the meaning of an Agile team, meaning that they understand and embrace the differences between Agile and traditional project teams. In an agile team, the team members should do everything they can do to help finish the iteration according to the plan. All team members should have the mindset of continuous improvement and adaptation of their technique, methodology as well as communication abilities doing whatever it takes. Not conforming to process but being committed to a process that can adapt to get the job done.
Communication: With a remote agile testing team, it is hard to communicate with developers as a local tester but the remote team needs to try their best to let the developer feel that there are no obstacles to communication.
Information Sharing: In agile project, this information may include: the plan and status for the current iteration, any actions that will be implemented in the next iteration, defect status etc…The remote agile testing team should have the same breadth and depth of information as the local team.
Integration: Usually we need to think about how to involve the remote team into the daily meeting and how to efficiently handle the work between and local and remote team.
I have been working on an agile project for 3 years as a testing manager of a remote agile testing team. Based on my experience, I’ve listed some of my suggestions on how to make remote agile testing work effectively:
- Face to face communication: Although one of the main reasons of using a remote testing team is to reduce cost, the budget of the project must include the fees of traveling to the remote testing team. This is very important and this travel should happen at the very beginning of the project or even before the start of the project. Based on the budget and size project, it can be the entire local team or only the scrum master (product owner, project manager) that visits the remote agile testing team. The purpose is to make sure every member in the remote testing team understands the client’s agile process especially with respect to the team’s approach, self-organizing and adapting methods and spirit.
- Use an instant messenger tool: In an agile team, testers need to work together with developers and there is a lot communication between these 2 roles. Therefore, all members must use instant messenger tool as the way of communication utilizing a group setup on the messenger tool thatincludes all members. Another advantage of using such tool is that all meetings can be held via the tool and this ensures involvement of the remote testing team.
- Use a platform to manage the project process and share project information: It is possible that the remote agile testing team is in adifferent time zone and there is limited overlap of working hours between teams. This requires that the team use a platform to integrate all processes in the agile team. For the remote agile testing team, the platform should at least include a good defect tracking system. One of my favorites is Team Foundation Server (TFS). TFS integrates nearly all possible processes into one platform. By using TFS, the remote testers are able to see which user story will be finished in the current iteration and the testers can create test cases for that user story and then report defects found in the test cases. The developers can also check the testing status for each user story and communicate to the remote testers via TFS.
- Place a test lead from the remote testing team onsite: By doing this, the onsite testing lead can play a role as the coordinator between local team and remote testing team.On one hand, the testing lead works together with the local team, getting the development status and testing needs quickly. On the other hand, the testing lead can understand the testing work better and then assign work more appropriately to the remote testing team. Furthermore, when testing work is done by a remote team, the testing lead can also provide the result to the local team on the spot, and help them to analyze the testing result. This will significantly improve the efficiency of the remote testing work.
In a summary, the most obvious difference between remote traditional testing and remote agile testing is the importance of communication. In an agile project, communication is critical to ensure that the remote agile testing team develops and maintains an effective way to work together with the local team. All my above suggestions are aimed at reducing the communication gaps between these two teams not only in actual practice but also in spirit.