Why DevOps? Business benefits and a perspective for futureCigniti Technologies
Listen on the go!
The definition and purpose for DevOps is unique to every company, varying with how it fits in with a company’s overall objectives and how it enables the company to optimize its software development practices.
Cigniti had the privilege to host Chris DeGonia, Director of QA at International SOS, on our podcast that delved upon the benefits and strategies to implement DevOps within a traditional Quality Assurance model. This blog is an excerpt from their interview on the QATalks podcast.
How DevOps is transforming the software testing industry?
The introduction of DevOps within the software testing realm has given prominence to two key aspects.
First is the skillset, 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.
A typical skill set that is required for somebody to be really successful in the DevOps ecosystem contributing to software testing and quality management activities is knowing the networking knowledge, the basic unique scripting, the ability to work with the continuous integration and continuous delivery tools such as Jenkins, performance testing tools, and also having decent understanding of containers & dockers. 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.
The other critical, and equally important, aspect is mindset. 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.
Is there really a future for DevOps?
As per an estimate, half of the enterprises are planning a continuous integration and continuous delivery initiatives in the coming years. A 6-month delivery timeline was considered a good pace almost a decade and half ago. But, today, teams are managing 25 projects at a time, doing several releases a day into production. The speed for delivery has really picked up across the market space. Even those industries that would traditionally take a long time to get things into production are now channeling fast delivery pipelines.
DevOps makes for a methodology that enables people to scale quickly and to accelerate the speed-to-market in a controlled manner. As Chris says, “DevOps is definitely here to stay. It is something that teams really need to get their hands around if they are not already working in DevOps space. They need to scale up or skill up in order to make it. Because it’s not becoming a slower-paced world, we’re certainly facing a faster-paced world as we move forward.”
What are the challenges faced in implementing the DevOps revolution?
Chris places culture as the number one challenge for any team trying to shift to DevOps. For ensuring a successful implementation, organizations need to build a team in which people are accepting and ready for change. On their part, organizations should assume the responsibility to build a safe and comfortable space for teams to experiment and learn as they grow along the technology.
The second challenge, as per Chris, is strategic. It is necessary to make sure that there is a right level of buy in at the C-level and below and that they are educated. It is critical that the right stakeholders are educated well-enough so they can help formulate an implementation plan, while seeing that it is moving ahead as planned.
Tools are the third biggest challenge for the organizations trying to implement DevOps, as they can make or break the entire strategy roadmap. Amongst the numerous tools available in the market, ample consideration should be put in choosing the one that is fully compatible and fit well with the new, DevOps-driven organization.
What is the role of automated testing in DevOps?
In a typical DevOps environment, teams are expected to accelerate the cycles of design, development, validate, and push it to the production really quickly. Without test automation, it is extremely difficult to achieve such a speed.
While considering test automation, it is also essential to look at the bigger picture. So, many times we hear people focusing solely on achieving the higher test automation coverage and forgetting the fact that there is no unlimited budget that is available for testing. So, optimizing the testing budgets and then trying to leverage as much as possible from a test automation point of view is very critical.
At the same time, Chris recommends automating anything that has to be done more than once, while also pointing out the constant need for manual testing to bring creativity within processes. With test automation solutions in place, it becomes possible to direct the human set of eyeballs to the areas that require more sophisticated approach.
How role of QA has changed with DevOps
Historically, testers were solely focused on the testing part for bringing the product to the market. This would include testing the code to validate it and then push the validated code to the developers. With DevOps, testers are required to bear responsibility of quality across the SDLC, while focusing on continuous integration and continuous delivery with increased efficiency as the overall goal. In the long run, DevOps would make testing teams much more valuable to the overall software development community.
How DevOps would have a future impact on manual testing and traditional QA?
Chris explains the impact of DevOps with a beautiful 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.
While manual testing is still required at certain complex situation within an SDLC, testers should invest in expanding their basic technology skills, coding skills, networking skills, as well as soft skills to stay relevant in a DevOps-driven environment.
DevOps naturally allows testers to be involved earlier in the software development life cycle. Thus, DevOps is assisting the testing community to shift their QA activities to the left and the right. Methodologies such as Test-driven development and Behavior-driven development help testers to build quality into the product by taking a test-early approach.
What is the overall impact of DevOps in software quality, time to value, and return on investment?
Chris personally sees an average around 250 to 300% ROI, month over month, for automation.
By automating the repeatable processes, checks, and bounces in the system, a level of control is achieved that can be maintained manually within each project.
To get things to the market quickly, teams can optimize their automation scripts’ performance by customizing the codes, choosing the right tools that run from cloud and are based on AI.
Each organization has a different makeup of technology stack, culture, skill levels, appetite for speed. All these factors play an integral role during the DevOps adoption process. Therefore, it is essential to take a forward-thinking approach and take time to disseminate value to the entire organization.
You can listen to the complete podcast here.