The DevOps strategy brings together formerly siloed departments in an organization in the hopes of speeding time to market, increasing collaboration and overall effectiveness across the business. However, does this mean that QA takes a backseat? It's important to understand just how QA processes fit in with DevOps, particularly as more companies look to take this approach in their application development.
In fact, TechBeacon recently highlighted 10 big name businesses that have been utilizing DevOps and agile to their advantage, including Amazon, Netflix, Facebook, Adobe and Etsy. So how, exactly, does QA fit into the DevOps equation, and what can go wrong if these initiatives are not integrated? Let's take a look:
Bringing QA Into the DevOps Fold
Before examining the QA aspect of DevOps, we must first understand what DevOps means. By now, much has been written on the topic, and Neotys contributor Tim Hinds noted that there is a clear connection between DevOps and Agile.
"DevOps is Agile taken through its logical evolution: removing all the obstacles to getting high-quality software in the hands of customers," Hinds wrote. "The purpose of DevOps is to get high-quality product out to the market faster - even automatically. The notion of 'Quality' is built into the fabric of DevOps. If you couldn't reliably push high-quality software out the door, DevOps would fail as a function."
In this way, quality assurance is a very important part of DevOps, ensuring that applications don't just make it to market faster, but will provide robust functionality and a beneficial user experience as well. As Hinds puts it, "Clearly, there is a critical role for QA in a DevOps group."
DevOps Without QA: Rushing Toward Failure
Chris Riley, DevOps.com contributor and industry expert, noted that without QA processes integrated into DevOps, teams are simply destined to follow a pattern of "break-fix cycles." Here, teams rush to release applications to market, but because of a lack of QA, these are launched with usability or other issues that create the need for additional repairs.
Treating QA as an afterthought creates considerable problems in the application development process, as well as after the product's release. Riley pointed out that this is what happened with the rollout of Healthcare.Gov last year.
"We know that without QA, when the inevitable software defects show up later in the development cycle, companies are forced to break the bank fixing them, causing revolts within the development team and slowing down the entire process," Riley wrote. "Development testing malpractices, poor QA strategies, broken organizational hierarchy and insufficient collaboration among developers, operations teams and QA have consistently led to the poor quality of end products."
Taking Responsibility For QA
Riley also pointed out that while QA is an imperative part of software development, teams that do take a strategic approach with these processes are disappearing. However, DevOps initiatives could shift this. DevOps changes the way teams divvy up work and responsibilities, removing silos and making everyone on the team responsible for a single goal: delivering a product to market that functions correctly and benefits users.
"QA is actually considered a very critical component in DevOps, so much so that DevOps emphasizes that QA is everyone's responsibility," Datical stated. "But this doesn't mean that QA professionals no longer have a role in a DevOps environment. Instead, what it implies is that with everyone else in the organization taking more responsibility for quality and stability, QA can and should move into a more strategic role, providing oversight over the QA function, as well as building out a more robust testing infrastructure."
In order to make QA a successful and meaningful part of DevOps, it should be treated as a primary focus, and not an afterthought. In addition, Riley recommends defining quality benchmarks to ensure that teams meet their goals, and using best test management software to optimize and automate these processes.