Mathias Rosenthal - Fotolia
I just got back from the 2014 Agile Conference, and you are not the only person wondering about the question posed above. My short answer is that it's very hard to be effective with this setup, but some enterprise software testing might be done with a central test team as a transitional step in an Agile adoption. Some functions, like performance and security, might be tested by an outside group.
Now it's time for the long answer.
Testers on the team, not in a testing department
Keeping testing off the team creates a handoff between teams and forces the central test team to provide services to multiple customers. All that restricts flow, making testing the bottleneck, while at the same time limiting the expertise about the product that testers would acquire if they were dedicated to one team. Having a separate team also can create an us vs. them mentality, which hurts teamwork.
All those scenarios explain why a separate team is a bad idea for enterprise software testing, but the thing that keeps the development team from being Agile is that the team can no longer develop the software end-to-end themselves.
The principles behind the Agile manifesto include the following: "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily through the project … The most efficient and effective method of conveying information is face-to-face-conversation."
Doing development in Poland, Iceland or the United States, then uploading your code to a test server and notifying someone elsewhere on the planet that the code is ready to be tested -- that just doesn't sound like Agile.
In fact, it is likely that the people in Poland, Iceland or wherever have developed their own internal test team. They also likely have lobbied the business stakeholders to ignore you and skip enterprise software testing.
A few exceptions
Most of the discussion above is about functional testing. I am generally opposed to strictly enforced handoffs and in favor of including testers as a collaborative part of each development team. It is, however, possible that your company is structured into very small teams, say, three to four people, and that those teams might not have the background to do the security, performance or other specialized testing you need. Likewise, some older organizations have complex integration pieces that need to be coordinated just before release. I can see how some of these highly specialized roles might remain independent while providing services to other teams, but hopefully those services would include an educational component designed to help the teams take over the work themselves.
There is also an interesting question of how wide the Agile team should be. Keeping testers out is probably too narrow, but most Agile software teams keep sales and human resources management (HR) out of the team. In many cases, sales and HR use traditional, non-Agile business processes.
The bottom line is that once an organization adopts Agile methods, IT teams should continue to keep them growing.
How test managers measure test team effectiveness
Managing a software testing team while cultivating talent
Use test charters to enhance test team efficiency
How do cloud tools reduce enterprise software development costs?
Dig Deeper on Topics Archive
Related Q&A from Matt Heusser
Common software security mistakes include testing at the last minute and not testing open source code and VMs. Expert Matt Heusser suggests ways to ... Continue Reading
You can't just 'do' DevOps and hope to get it right. Expert Matthew Heusser takes us through all the steps required to make DevOps work for your ... Continue Reading
Your boss wants you to 'do DevOps.' Expert Matthew Heusser offers time-tested advice for getting started down the DevOps process. Get ready for a lot... Continue Reading