DevOps QA Crossover

Published on November 25, 2014, by Brian


DevOps is a word that has been creeping into the Software Development Life Cycle (SDLC) lingo of late, and it's not one readily understood. Much like some new meme you missed when making coffee and upon your return are left wondering if everyone around you is speaking the same language, or fully compos mentis, it provokes sideways glances and fake nods of agreement. So, for arguments sake I am going to define the term today, and let this forever be the dictionary definition.

DevOps is the practice of encouraging the developers and the operators of software systems to listen to one another, and even work together in a collaborative manner.

Apparently some people think this cordial spirit and team work mentality is going to go somewhere. And now that Dev and Ops are being all nice and pally, how is this friendliness affecting the Quality Assurance (QA) team?

Well, turns out they're all finding more things that need improving, and according to the ridiculously titled World Quality Report 2014, 15% of IT managers spend over 40% of their budget on QA related activities and 20% reckon they'll spend over 40% on QA and Testing related activities by 2017. Times are booming in QA land, but the reality is a whole swath of new expectations are being placed on the discipline, much like a Shaolin monk being asked to run a Chinese restaurant!

The Changing SDLC

The DevOps QA mix though is not really as bizarre as a monk trying to do a one fingered pushup while cooking egg fried rice. The real ramp up in the amount of testing needed is due to a change in the delivery of software. The move to Agile has condensed everything along the software supply chain and brought all these disciplines into much greater contact. Project "handover" is now "hands on" with continuous delivery and continuous integration expected. This pressure, along with the advantages of applying Ops tools and QA tests to freshly written code, has greatly increased the feedback loop throughout the development cycle, and when done well it can greatly increase iteration speed

DevOps Tools

The tools that enable this kind of setup are the modern Distributed Version control systems DVCS coupled with integrated issue trackers and automated deployment setups. As I have extensively spoken about DVCS and issue trackers previously I won't bore you with that today, but I will mention some of the DevOps tools that automate much of the modern SDLC.

Jenkins

Jenkins provides continuous integration services for software development. Here at RhodeCode we have it running on our servers and it triggers our test suite on every commit, theoretically rejecting anything that breaks the build.

Buildbot

Buildbot we use for continuous deployment as it allows us to schedule jobs and to execute them when resources are available. This runs our nightly builds, which theoretically always work thanks to Jenkins.

Chef

Chef automates infrastructure tasks such as configuring web servers, databases, and load balancers. It is installed on each node of your network and checks to see if the node is up to date. If not, it applies the new changes.

Puppet

Puppet delivers automated system administration and allows you to define your infrastructure, then enforce it across physical and virtual machines. This lets system administrators focus on higher value jobs, such as making gifs for new memes.

Nixification

Instead of depending on Chef, Puppet, or Docker though we have nixified our development environment to declare our configuration setup. This has a number or provisioning advantages over the others, and I'll dig into the details at a later point in time. This is known as NixOps, a slightly different flavour of the same lollipop.

Cross Pollination

As with all cross pollinations, this mixing of highly skilled individuals tightly aligned with a common purpose has lead to giant leaps being made in the ability to deliver software on a rapid basis. The fruits of this are being delivered everyday and enable the rapid growth of software to eat the world. Except of course with the release of Yosemite, but perhaps naming that after a National Park that delivers Continuous Wild Fires was an Apple in-joke!

The momentum of DevOps is only going to increase as more organizations overcome their struggle with Agile and transition to a place where the utterance of the word doesn't invoke conniptions at the thought of another poker session and burn down chart discussion.

Conclusion

DevOps is now defined in the dictionary, you're welcome!, and QA is very much part of the mix as the different roles are no longer clearly delineated. The modern SDLC demands that each discipline needs to absorb skills from the other and some clever marketeers will surely come up with a better version of DevQaOPs [pronounced DevCops] and start making a mint on the consultation circuit. Before that new phase kicks in though the main lessons are that collaboration and team work seems to be going places and driving the necessary change in software delivery to theoretically always make the next version better.

Brian

P.S Damn, I thought I had an original idea but someone has already taken DevQaOPs, and lo and behold and they are domain squatting!