Maintaining Tester Independence in an Agile World
As organizations adopt agile methodologies, one of the key challenges is reinventing traditional roles such as project manager, functional manager, business analyst, developer, and tester. While many of the tasks and accountabilities for these roles must still be carried out, they are set in a much different context: one of a homogenous agile product team.
Ideally, these responsibilities could be carried out by anyone on the agile product team, but in practice, each team member will have his or her own individual skills, experiences, and strengths. One primary shift is that the entire agile team is accountable for quality—carrying the quality flag is not the sole responsibility of the tester.
A key principle in testing is retaining the objective voice—that is, the "check" step in the plan-do-check-act cycle that W. Edwards Deming provided us. The goal is to have testing activities embedded in every step of the lifecycle and across all roles. There is value in having another set of eyes on the work of the originator, but we also want to ensure that we maintain tester role independence while assuring a highly collaborative, responsive, and flexible team environment.
Organizations are approaching this in several ways; there's no one prescribed formula. Some keep their independent testing teams and then assign testers to each agile product team, and others abandon their functional testing departments and embed the testing within the agile teams. Still others do a little of both: create agile product teams that include testing roles and then also retain an independent testing team. And still others change reporting relationships in multiple ways.
Regardless, the people accountable for the testing role in an agile product team must be able to make an independent assessment of the system under test, and that requires the team members in this role to have both a mindset and a skill set in the art and science of testing.
I don’t believe a best approach to maintaining tester role independence can be prescribed. Rather, each team and organization should tailor its strategy based on what it needs.
In the spirit of the Agile Manifesto, here are my "work in progress" values to consider in maintaining tester independence in the context of an agile product team.
We value:
- Product team accountability for the right level of quality delivered at the right time
- Product team collaboration while embracing the best skill sets of each contributor
- Planning for quality and testing at every step of the release and within each sprint
- Checking at every step by the originator and by one or more independent assessors
What's your perspective on the core values that should be adopted within an agile product team to maintain tester independence?