User:Mariyam Mansur/sandbox

Agile Testing- Integrating Offshore Testing Teams
One of the main tenants of the Agile Manifesto is collaboration and co-location, hence integrating an offshore testing team seems counter intuitive at first glance. This article posits however that there are indeed some advantages to offshore testing in an agile software development setup, and highlights some of the challenges and suggestions to overcome those challenges.

Advantages of Integrating Offshore Testing Teams:
1.Cost Saving

When looking to saving costs in software development, outsourcing of software testing always comes up as a potential solution. In most cases, keeping the testers embedded with the developers will allow for the most efficient transfer of knowledge between the team members and the highest productivity and product delivery for an Agile-Scrum team. Outsourcing the entire team (development and testing) may be another option, and not just the testers. 2.Time Zone difference to increase productivity

You can take advantage of a time zone difference to have the testing completed and documented overnight and ready for the development team to tackle any issues in the morning. This would reduce the turnaround time for issue resolution and release to customer.

3.Move certain kinds of testing offshore

Regression testing can be a prime candidate for outsourcing for several reasons:
 * The interface points between the agile software development team and the regression team can be well defined.
 * Helps take the burden of regression off functional testers, and gives them more time to improve the quality of the features in development.
 * Reduces the time for customers to get the software.

4. Improve Software Quality

Cost of trained and experienced QA and Development engineers is lower in offshore locations. Companies can hire more QA Engineers to throughly test the software product or service under development than they could locally. This can result in better quality product for the customers.

5. Maintenenace Teams

Companies might decide to move their maintenance team completely offshore to help and organize onsite teams to focus on business critical initiatives and new development. This helps companies keep their onsite teams small and save money, but ensure quality maintenance of their software and services. 5.Technical Skills

Companies might be finding it difficult to find the technical skills necessary locally and result in exploring contracting with teams offshore to fulfill their technical and project requirements.

6.Expansion

Company might decide to expand and open a secondary office offshore for sales and marketing purposes, and start exploring the option of moving their technical teams to the secondary office to collaborate with customers.

Challenges and Recommendations:
Working with offshore Testing Teams can be challenging. Below are some of the challenges and recommendations outlined.


 * 1) It cannot be completely remote, we cannot underestimate the importance of face to face interaction hence some team members should be travelling regularly to keep these lines of communication open from both teams and locations.
 * 2) Communication is vital and to increase the communication flow and cohesiveness of the teams get multiple communication modes working and available like good phone connections, emails, instant messaging, wiki and web conferencing.
 * 3) There must be a strong commitment to cross-training the offshore team on the product, services, features under implementation and also the specific implementation of scrum in use by the onsite team. The cost and time in the long run to travel to the offshore site, get to know the teams and properly train them for one or two Sprints to ensure that all expectations and processes are well understood by the offshore team cannot be underestimated.
 * 4) Regular agile-scrum meetings, like the daily stand up, pre-planning, planning, sprint reviews, and retrospective should be planned at an agreed upon overlapping working hours between the onsite and offsite team. This will resolve any outstanding issues or questions quickly.
 * 5) Provide both the teams with a central and robust repository and collaboration site to help track all specifications, test cases, discussions and changes. Train and encourage that all communication is conducted through the repository so that it becomes a permanent record of events, artifacts and communication. Expect to need more documentation than teams co-located.
 * 6) A central Agile Management tool is essential to record and track progress and project status. This ensures everyone is seeing the same progress on tasks, user stories, blocked issues. It helps stakeholders see the whole project and sprint at a glance and take any actions necessary.
 * 7) To improve the quality of testing by the offshore team, provide the team with their own development and test environments, bug reporting tools and source code repository. It is better to have the offshore team in complete control of the development and test environments and enables them to be more self-sufficient.
 * 8) The Scrum Master is the key arbitrator in all Scrum projects but it takes a greater level of skill and experience to facilitate a Scrum when using offshore resources. Choosing the right scrum master for the team is critical, they should understand and be able to manage intangibles like culture change and language barriers.
 * 9) The Product Owner must clearly define what “done” means for each of your user stories. Well- defined acceptance criteria should be included in all of your user stories. Additionally the product owner should have more detailed user stories and be mindful of updating the stories as changes get implemented and incorporated during the sprint. In an offshore model we do not have the luxury of walking down the hall to discuss, refine and iterate.
 * 10) Combined offsite and onsite teams need to be managed actively, and depending on the size of the project it might require more than a scrum master by adding additional offsite/onsite managers. In theory, agile is supposed to be an organic, hierarchy-free method of software development, so you need to find a manager who is comfortable with the Agile workflow, understands his role completely as a facilitator rather than dictatorial and can help with the communcation between the offsite, onsite teams and the stakeholders and ensure the project is on schedule and if not highlight the risks clearly with solutions.
 * 11) When you are establishing a partnership with an offshore company, it is imperative you choose the right partner who is up to speed with Agile methods, or at least open to working with an agile team and the change of workflow required. Many offshore companies use the traditional waterfall methods, and may find it difficult to adapt to an Agile setup just for one project.

References:
http://www.compaid.com/caiinternet/ezine/deyoe_12lessons.pdf

http://martinfowler.com/articles/agileOffshore.html

http://en.wikipedia.org/wiki/Agile_testing

http://blog.dextrys.com/dont-outsource-your-agile-testing-outsource-regression-testing

http://josephvargheese.wordpress.com/2012/07/22/agileoffshore/

http://www.kms-technology.com/outsourcing-best-practices/-3-ways-to-make-agile-work-with-your-offshore-team

http://www.cio.com/article/717699/7_Tips_to_Offshore_Agile_Development?page=2&taxonomyId=3195

http://www.inea.com/PDF/Best_Practices_for_Dealing_with_Offshore_Software_Development.pdf