DevOps: Too Much Emphasis on the 'Dev,' Not Enough on the 'Ops'
There are still plenty of manual tests that are better left up to QA experts. The more frequent the deployment, the more operational knowledge matters.
Join the DZone community and get the full member experience.Join For Free
The DevOps team movement really started taking off in 2009, according to the Agile Admin, with the purpose of creating greater cohesion between development and operations teams. Traditionally, developers would construct very bulky software builds, and pass them off to operations for deployment and maintenance. The problem with this approach was that the development team wasn't always savvy to operational hiccups that could degrade the functionality of software. This meant that a lot of time would have to pass between each iteration of software.
Seeing the error of their ways, many organizations began creating leaner processes throughout the 2000s. Nowadays, DevOps and agile is prolific, and hardly the exception in the software world that it once was.
Part of what defines DevOps is the fact that there is more overlap between traditionally siloed roles. As a result, responsibilities are no longer quite as rigidly defined as they used to be. Developers, designers, testers and stakeholders all have their hands in the pot – it's a notable exception to the "too many chefs" platitude.
Nevertheless, there is something to be said for the idea that the "Dev" comes before the "Ops."
What's Happening to Ops?
Part of the problem with DevOps is that there is still a bit of an imbalance when it comes to prioritization. This comes at a time in which operational tasks are being absorbed by developers.
"[W]e think companies should consider a more definitive step toward more effective operations management - that is, consider making each development team responsible for the deployment and performance of their own applications," industry expert Bjorn Freeman-Benson told InfoQ.
However, the idea that operations can be completely absorbed by development has been contested by other industry analysts. It may even be outright infeasible, according to DevOps.com contributor Peter Waterhouse.
"Firstly, however operationally awesome developers think they are, building resilience, maintainability and supportability is not always top-of-mind," Waterhouse wrote. "Secondly, even if these elements are addressed, they're often conducted at the end of development cycles or bolted on after problems are discovered."
Waterhouse referred to this off-loading of operations onto developers as "NoOps," and according to him, it's a "DevOps disaster waiting to happen." His assessment makes sense, given that the point of DevOps was to marry development and operations, not to have the former engulf the latter, or degrade its importance. Inevitably, the result of this is that much like the term "DevOps," Ops starts taking a backseat to Dev. And if Ops does in fact get pushed back "and bolted on" as Waterhouse said, agile teams risk going down the same path they traversed with waterfall development, only this time, there would be less operational expertise.
Collaboration Should Still Be the Main Goal
The purpose of DevOps was to build better, faster and more responsive software by improving the inner-workings of all that goes into development. This meant, among other things, that development and operations would be working more closely with one another so as to deploy more frequently and with greater efficiency. This also meant that QA tests would have to run more often, and that agile methodology that leverages automation integration and other testing tools would be required.
Technically, developers might be able to achieve all of this themselves, but at what expense to the quality of the application? Is it really possible for them to entirely adopt the roles of operations and be able to deliver quality software? The answer is probably not. Developers are developers first, and operations second. A modern test management tool certainly makes it easier than ever before to create, execute, manage and even automate test cases, but there are still plenty of manual tests that are better left up to QA experts. And because sprints are shorter in DevOps culture, if anything, the knowledge of operation teams is actually more important since deployment will occur with greater frequency.
In conclusion, DevOps needs to continue to be a collaborative endeavor for the best software results. This demands the best of both worlds, not most of one, and only some of the other.
Published at DZone with permission of Kyle Nordeen. See the original article here.
Opinions expressed by DZone contributors are their own.