This paper describes the advantages of organizing QA resources into a centralized group. At Sun Microsystems, QA resources from five application groups were combined into one group. They have created six "subteams": Communications, Standards, Metrics, Tools, Training and Education, and Release Train, to take advantage of sharing knowledge, ideas, and tools across their organization.
Does your organization centralize the QA resources? We are trying an experiment in the Enterprise Services Information Technology (ESIT) group at Sun Microsystems. Most of the software development groups have their QA resources in the same department with the application developers. However a few months ago, we combined the QA resources from 5 major applications and joined them into one team.
The potential disadvantage of this approach is that by moving QA resources into a different group, it may impair their communications and relationships with the developers. It is very important for QA to be involved throughout the development lifecycle. They also need to work very closely with the developers to thoroughly understand the applications. When we reorganized, it was stressed that the relationships between QA and development must remain strong, so the QA resources still remain part of the extended team of their development counterparts.
The potential advantages of combining forces can be great. The QA resources learn best practices from one another and come up with consistent procedures and templates that can be used by everyone. They can share tools and knowledge. They are able to perform more thorough systems integration test because of knowledge of their interfacing systems.
Our new QA group has formed 6 "subteams" that have helped define ways to take advantage of our new organization. These subteams are in the areas of Communications, Standards, Metrics, Tools, Training and Education, and Release Train.
Communications–The Communications Team has put together a Website for our new group. It has links to the 5 applications for which we provide QA, our mission, vision, and values, and pages for what is going on with each of our subteams, as well as in our department. We created a new mailing list and invited other QA professionals throughout Sun Microsystems to join. We have an active subscribing audience that is always ready to answer questions or give advice. We put out our own monthly newsletter, QUACK (QUality Assurance Compendium Knowledge) in which we actively share QA ideas. We also look for opportunities to evangelize the value of QA through presentations, articles, or forums.
Standards–The Standards Team works at providing consistency in our processes. We have written a standard that defines the 5 phases of software testing: Unit Test, Integration Test, Systems Test, Systems Integration Test, and User Acceptance Test. Entry and Exit criteria are defined for each of these, as well as expected testing methodologies, deliverables, and owners. We are working closely with our developers to partner with them in at adhering to these standards. We also are defining more detailed standards for our own teams. We are working at consistency in the way we use tools, our test plans, and document repository.
Metrics–The Metrics Team is working at getting metrics that will help us understand things such as test case coverage. We are also looking at ways to measure quality so we can understand whether our initiatives are paying off. We've developed a way to automate metrics with a web-based dynamic checklist. Again, we are working at providing consistent metrics for our different applications.
Tools–A centralized test team has the advantage of being able to share tools across the various applications. We have expertise in load testing and functional automation testing and licenses for several tools such as Segue's Silk, RadView's WebLoad, and Mercury's LoadRunner and Xrunner. The Tools Team also researches other potential tools and makes recommendations to management regarding tools that would help maximize our organization's productivity and value.
Training and Education–Having a diverse QA Team with different domain knowledge means we can learn best practices from one another. We plan to cross-train so that the different application teams can help each other. This subteam is also exploring creative ways to learn new QA techniques and practices. There are many free newsletters and training opportunities via the Web or local groups. The Training and Education Team explores these opportunities and communicates them to the rest of the organization.
Release Train–The Release Train is a new initiative within ESIT that enables a test environment where interoperability of different applications can be tested together. By having skills from various applications, we are better prepared to do thorough systems integration testing. Our goal is to have the applications we test be part of the Release Train process and provide thorough end-to-end testing before releasing to UAT.
Another advantage of the centralized approach is that with it there exists a separate organization that has the mission of quality. Often the top priority of a development organization is to deliver on schedule. Although schedule is important, quality should play an important part in the decision of whether or not an application is ready to be deployed.
Our department is only a few months old, but I think we are already starting to see the benefits of this centralized approach.