Anytime you would like to create a fierce debate in the Agile community, then just bring up a topic related to distributed way of working and outsourcing. Out of all the possible controversial topics, my favourite one is around “offshored testing”.
During the discussion about this topic people always ask:
1. Is it not against Agile to outsource work?
2. Are we not creating waste by handing off testing to a different team?
I agree that Agile recommends face to face communication and also that it is proven beyond doubt that distributed way of working is really not optimal. Distributed way of working creates hurdles in building trust and relationship. It is also a hurdle in creating common mental models across teams. These issues compound if the work spreads beyond geographies due to cultural barriers.
Let us assume that you have a magic wand to ward off all the issues mentioned above. Do you still think it is effective to outsource testing to a different team? Personally, I have seen many projects working effectively and efficiently with an outsourced testing team. Remember whether the testing is handed-off to a different team in the same country or to a different country, the impacts of distribution are the same. However, there are certain contexts in which distributed testing works very well.
Here is an example. The development team was in New York and the testing was in LA. In this case, the testing worked really well as the team knew each other since for the last 5 years, they had been working on the same product development.
In another case the dev team was in US and the offshore test team was in Pune, India. This program worked well because the testing team doing exploratory testing of a tax application had expertise in financial domain, especially tax related application testing.
I could quote many case studies to share where the outsourced testing has worked. The bottom-line is that distributed development works when the teams have common mental model of the system. Also, when there exists a culture of trust and rapport with the teams.
Conclusion: There is no good or bad about handing over testing to a distributed team but ensure there is a proper context attached to it.