What’s at the intersection of development, QA, and IT operations? DevOps! When we say DevOps, we’re describing the Agile relationship between your dev organization (including QA) and your IT team. DevOps is transforming the software development lifecycle, enabling teams to work faster and in closer collaboration. This relationship was borne out of a need for increased development and testing speed and high-quality products that delight customers and contribute to the rapid growth of the businesses that build them.
So, what changes in the software industry have contributed to the rise of DevOps? Let’s take a look at the cultural shifts that have made this Agile relationship a model for so many modern product companies.
The cultural shift
Back in the day, every team had their own list of duties, which were primarily performed in silos. Teams came into the office and got to work on their own projects, and talked to each other as needed (i.e. not very often). Developers built things according to market trends and project requirements, or fixed existing software. QA engineers tested all of it to ensure it worked. And IT preserved the stability and availability of the resulting product.
But DevOps is breaking down the barriers between these three teams, and unifying them under one umbrella. And when these three teams come together and share their vast body of expertise and skill more fluidly, they deliver massive value to the wider organization and to the end users of the products they build.
DevOps is a boon for QA, because it reinforces the truth that quality is everyone’s responsibility. It’s not just something that gets verified at the end of the lifecycle, it’s something that needs to be considered from the very start of the build - it’s a crucial factor in accelerating the delivery of the product to the consumer.
Key DevOps practices
There are several key practices that successful DevOps team rely on for success. The guiding principle behind all of them is the importance of the small but frequent update. Keeping tasks small but consistent allows teams to innovate faster, take less risks with each release, and find bugs easier.
Compared to the traditional waterfall approach, the Agile method at the heart of DevOps keeps teams moving quickly, and in perfect step with each other.
Here are some of the most common DevOps practices:
- Continuous integration - Developers merge their code in a central repository for easy access by other team members.
- Continuous delivery - Code changes are built, tested, and prepared for release. Tools like Maven, Gradle, Selenium, TestNG, JUnit, and Jenkins are handy for this.
- Continuous monitoring - Performance and quality are scrutinized frequently using tools like Splunk, Nagios, and New Relic.
- Communication and collaboration - These are the backbone of DevOps and Agile in general. Tools like Jira, Wiki, and Confluence are a big help!
- Infrastructure as Code - Infrastructure is provisioned for every department’s requirement. Docker, Vagrant, and Amazon Web Services are popular tools for this.
The role of QA in DevOps
DevOps QA is a crucial part of the relationship. It ensures that the product doesn't just make it to the consumer faster, but it also provides a sturdy, reliable user experience. Continuous testing, when implemented diligently, enables a flawless delivery cycle for the product.
In the DevOps world, quality assurance has become more akin to quality engineering, as it plays a bigger role in creating a quality product and the other teams get to see firsthand just how integral it is in the larger software development lifecycle.