Test Organization Strategies


For large companies with multiple applications or even multiple lines of business, what is the best model for the test organization: centralized, distributed, or a hybrid approach? This column by Linda Hayes will help you decide which is best for your company, what factors should be considered, and what are the advantages and disadvantages of each.

I attended a seminar once where the speaker, an experienced test consultant, was asked whether the best organizational strategy for testing was to be centralized or distributed. He said, "If you are centralized, you should become distributed. If you are distributed, become centralized." Into the puzzled silence he explained that the most important thing was to focus attention on the needs of the test organization, and reorganizing would demand it.

But seriously, for large companies with multiple applications or even multiple lines of business, what is the best model for the test organization, and why? There are two basic models—centralized or distributed—with variations and combinations of both. Centralized test groups comprise a pool of resources that are shared across applications and projects, and distributed test teams are aligned by application or line of business. Which is best?

As you might expect, there are advantages and drawbacks to each.

A centralized test group has the primary advantage of size. By gathering all test resources into one organization, there are economies of scale that permit focus and specialization on such areas as processes and tools. This variety also offers better career paths and professional growth for testers, allowing them to sharpen their skills over a wider range of applications, tools, and techniques.

Additional advantages are resource flexibility and process consistency. As projects wax and wane, resources can be allocated based on demand, so peaks and valleys can be smoothed out. By maintaining a single department, standards and conventions can be defined and propagated across all projects.

Also, as applications become more integrated, cross-project issues can be more easily managed by a central group. Test environment provisioning, code migration, release management, and related tasks can be integrated across projects to share resources and experiences.

But perhaps the key advantage to the centralized approach is that the test organization may be easier to position as a peer to development within the enterprise reporting structure. Since testers do not "belong" to any particular application or project, they are less likely to report to development or project managers and thus be insulated from senior management visibility. Gaining a voice in higher-level management decisions has value in many dimensions.

The major downside to being centralized is the dilution of subject matter expertise. By moving from one application to another, there is less opportunity to gain critical domain knowledge. And, because project test teams are transient, it is more difficult to accumulate and maintain a regression test library. This may compromise overall product quality in the long run.Distributed
The essential advantage of a distributed test group mirrors the biggest drawback to centralization: when resources are dedicated to a particular application or line of business, subject matter expertise is increased. Testers are more knowledgeable about what might otherwise be arcane or complex application behaviors, enabling them to improve testing coverage and effectiveness.

This model also fosters closer working relationships between development and test as team members interact more frequently and over longer time periods. Patterns and protocols develop that improve efficiencies between the groups, so that expectations are generally better understood and managed.

In this model the testers usually report to the project manager or to the application owner, and as such may be a peer to the developers on their team at the project level. However, at the department level the test organization itself is more likely to be part of development. As a result, they may be viewed as stepchildren or subordinates with less say about budget and schedules.

The major disadvantage of a distributed test organization is also the same as the biggest advantage of centralization: size. Specialization is less likely within a smaller team, and career paths are more likely to be limited. It is also harder to smooth out the peaks and valleys of resource demands without a larger pool to draw from. Processes tend to be more localized, with less consistency across application groups. This may result in either redundancy or conflict, especially when applications must be integrated.

The ideal strategy may be to combine the best of both. Centralize the functions that gain from economy of scale: specialization in tools, best-practices development and training, test environment provisioning, code migration, and release management procedures. But for subject-matter expertise, it may be more effective to draw from application experts who stay with the software across multiple projects and develop deep knowledge and relationships.

One way to accomplish this bifurcation is to align the QA/test organization centrally, but adopt a distributed user acceptance group. The advantage of this approach is that it provides career paths for everyone: QA/test professionals from IT can advance through a centralized organization by gaining specialized skills, and user acceptance testers can rise through the business ranks from end user to tester to systems or business analyst by gaining subject matter expertise.

Balance the Hierarchy
Whatever the organizational structure, remember that the reporting hierarchy plays a crucial role. Testers must be in control of critical decisions that affect their work, and their value to the overall corporation must be clear to upper management. Responsibility without authority is a formula for frustration and failure.

About the author

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.