Fundamentally, DevOps adoption is about streamlining an organization’s conventional Software Development Life Cycle to achieve faster time-to-market for company products. Other factors held equal, faster TTM imparts increased competitive value due to the ability to meet customer requirements more accurately and more frequently.
In the quest for speed, however, many organizations transforming to a DevOps delivery model are inadvertently squeezing out essential QA functions. A narrow focus on improving SDLC speed causes them to miss the point that DevOps is about improving software quality too. In a perfect DevOps world, everyone is responsible for QA, but not everyone has the tools, knowledge and expertise to do QA right.
QA’s Central Role in DevOps
Those companies who have successfully deployed DevOps realize it actually should be called Dev-QA-Ops, since quality processes must play a central role in attaining the ultimate goals of cost reduction, more frequent releases and improved customer satisfaction.
They discovered that a conventionally centralized, time-discrete QA function needed to convert to an environment where quality processes permeate the entire SDLC from architecture to production. To accomplish that, their QA moved from direct testing responsibility to providing oversight, consultation and education leftward toward developers and rightward toward Ops.
Raising QA’s Value Proposition
DevOps shifts some early defect discovery to developers, which allows QA more time to evaluate new testing tools and frameworks plus striving for complete end-to-end automation. Furthermore, QA professionals become the logical agents for assessing the organization’s continuous development/integration/delivery pipeline for obstacles to producing quality code in a timely manner. Additionally, they act on development’s behalf to test and qualify the infrastructure they acquire from operations.
In other words, QA’s value in a DevOps house reaches beyond direct testing of software under development toward responsibility for ensuring utmost quality in the processes surrounding that development. This transition is not without difficulties, but it is necessary in order to make DevOps a meaningful success.
Steps to Achieving Dev-QA-Ops
- Everyone must make the mental adjustment that QA is a strategic partner. They must discard the viewpoint of QA as a separate, transactional center and replace it with the perception of QA as a distributed facilitator and equal partner.
- QA professionals must be added to planning and technical teams to provide insights and guidance regarding how early decisions affect the quality of development and the final product in the eyes of the customer. They also identify areas where automation is most effective and can quantify time and resource costs of automation implementation and support.
- QA should be present at business planning meetings, which take advantage of their expertise in evaluating the risks of product decisions affecting testing costs both in development and production. Attendance at these meetings helps QA calibrate their own expectations against business requirements.
- QA must be proactive about educating developers and others about smart testing methods that are most effective and efficient at catching defects early such as TDD and BDD.
- QA members must take personal responsibility to educate themselves as necessary to deploy, support and use the best automation tools available. Furthermore, they must improve their communication skills to educate others about how best to utilize test automation and instill quality principles in their work.
QA as a Center of Excellence
QA should strive to be a center for excellence with regard to testing and quality principles from which everyone in the organization can benefit. They become evangelists and advocates for quality in all aspects of the enterprise mission. The enterprise will come to realize that their expertise is applicable to other processes besides software development as well. Throughout their transition, it is essential for QA to act proactively to maintain relevance to the business.
It is all too easy for organizations transitioning to DevOps to diminish the role of QA in the new world order. It may appear that QA can be “naturally” distributed between Dev and Ops functions and that QA personnel can be reduced.
The reality is that without strong QA expertise, DevOps is an incomplete solution that fails to achieve increased release velocity without costly defects at the wrong end of the process. Software organizations that leverage their present QA expertise into a higher-level, more broadly defined role also raise their business’ ability to deliver the best software possible that satisfactorily meets customer requirements.
Ultimately, the QA organization is responsible for incorporating key DevOps principles of shared responsibility and continuous software improvement, while raising the level of their present expertise. In doing so, they will secure their place in any DevOps transition.