Just about every organization with a functioning IT department has been attempting to finesse some variation of DevOps into its software delivery flow.
When done right, DevOps is powerful stuff, and delivers very noticeable results -- automating the testing and quality assurance aspect, for example, can deliver ROI up to 250% to 300% month over month, according to Chris DeGonia, director of QA at International SOS. In a recent podcast with Kalyan Rao Konda, president and head of the North America East business unit at Cigniti, he credits the ability to automate the flow, across repeatable processes, checks, and balances in the system.
While automation enables DevOps proliferation, it takes people with the right skills and mindsets to make things happen, DeGonia and Konda emphasize. The mindset is important, as "apart from having the general know-how of software testing and application functionality, the test engineers are now required to continuously increase their knowledge base on the latest trends and tools. DevOps implementation is pushing the test engineers to keep learning more and more about newer technology."
Skills key required for DevOps success include "networking knowledge, basic unique scripting, the ability to work with continuous integration and continuous delivery tools such as Jenkins, performance testing tools, and also having decent understanding of containers," Kalyan says. "Test engineers would also need to have a fair understanding of the role of cloud and how cloud services are being used in the development and hosting of the products or applications."
Having a DevOps mindset is critical here, Kaylan continues. "There's the need to promote collaboration within and among teams to ensure correct DevOps implementation. The testing activities are tightly integrated into the software development lifecycle in a DevOps ecosystem. This requires multiple teams to work closely with each other, side by side, on a day-to-day basis, in order to meet the significantly shrunken delivery timelines."
Kaylan drives home the importance of constant learning with an analogy: "As a bird sitting on a branch, I don't think you should put a lot of faith on the branch, but you should have more faith in your wings. If the branch collapses, the bird should still be able to fly away. Similarly, software testing professionals need to make sure that they keep improving their skillset, which continues to be relevant to the changing industry trends."
Likewise, a DevOps mindset is something that can help an organization keep flying, regardless of what technology or business shifts take place underneath. There are six key principles that define a DevOps mindset, as identified by the DevOps Agile Skills Association:
DevOps is powerful stuff. It's about increasing the speed of delivery of software to intended users, it's about continuous integration and continuous delivery of said software, it's about automating this flow, and most importantly, it's about instilling a spirit of collaboration for anyone who touches the software at any point in its lifecycle.