Testing on agile teams is very different from a traditional software development approach. Testers are involved and collaborating with the developers and other team members from the very start of each iteration. Instead of gated tester activities, agile testers should be helping the team as the user stories are introduced and throughout the entire delivery process. Moving away from post-development testing mode, is just one of the many differences of agile testers.
Agile development shares the responsibility for quality across the whole team. Traditional development puts most of these responsibilities more on the QA team members. The only way to deliver value quickly at a sustained pace is to have high quality. This is often achieved by having the whole team involved in automating tests and testing activities. While it is technically possible to have everyone on an agile team working remotely or in different areas. The whole team should take responsibility for testing and quality. There are many benefits to having team members together on-site and in the same room for collaboration. Nearshoring allows team members to get together more often and have on-site teaming. Using offshore distributed agile teams this is on-site teaming is often impractical, travel time along can take days for single a meeting. Taking our several days for travel from a few teams members will often derail the sprint and slow down the teams velocity.
Tight team integration of testers and developers requires timely collaboration. Distributed agile teams with members working in different time zones makes this collaboration more challenging. One of the biggest reasons why distributed agile team fails is because of this great separation of time and distance. Often when offshore agile testers are added, they are doing rote manual tasks. Nearshore agile testers are able to work together with teams more readily, since time zone are normally shared. When building distributed agile teams removing collaboration barriers is the difference between success and failure.
Agile teams are expected to define requirements, design, test and delivery throughout every sprint. How is this possible in a short 2-4 week iteration? Even more, how is this possible with people that are not able to collaborate at the same time. Many offshore outsourcing software companies state they are able to work around the clock while the other team members are sleeping. Maybe with traditional waterfall development or very task based projects this could have some benefits. However, agile development is different and really requires the whole team working closely together, especially if the whole team is not colocated.
Instead of receiving detailed requirements from a business analyst at the start of the project, agile tester often need to write acceptance criteria and tests hours or days before coding begins. Agile testers are still doing many of the activities of traditional software development lifecycle, but when these activities are executed is what is different.
Value of Agile Testers
Agile testers bring value by helping the team define scenarios and identifying potential issues during the entire process. Little value is achieved by having testers on agile teams doing repetitive manual regression tests. These repetitive types of testing activities should be automated by code. Developers will mostly be implementing unit level tests. However, once the scenarios are defined, even user acceptance tests can also be automated with the likes of Cucumber and Gherkin by tester and developers. Agile testers can initially help with user story acceptance criteria and then start to turn detailed scenarios into code with the help from the developers as needed. The days of having large team of testers doing manual regression is over and should be replaced with testing automation. These kinds of test automation allows for testers to focus on higher value tasks and maintaining quality.
This level of automation to maintain quality allows the agile team to delivery quickly with a sustained pace. Shifting the focus from rote testing tasks and focusing on higher quality level activities is what makes possible delivery of shippable software in short releases.
Nearshored agile testers should not have to be added to teams for additional manpower for rote testing activities. Agile testers can be fully integrated into a productive agile teams, doing high level testing activities that bring real value for the entire development lifecycle.