DevOps with Continuous Quality Built In on Cloud | Deloitte US has been saved
Continuous integration and continuous deployment (CI/CD) have changed the way teams develop, test, and deploy software. However, as competition in the market grows, it is no longer just about application functionality and deployment. Poor quality of software has shown to have a negative impact on an organization.
Source: Deloitte research
The right DevOps strategy that combines agile and continuous testing and continuous quality (CT/CQ) can help minimize downtime and maximize delivered value by deploying tested solutions early and often.
Continuous testing and continuous quality
"In previous years, we found that test automation had a significant impact on continuous delivery. This year, we built upon prior years' research and found that continuous testing positively impacts continuous delivery."
Dr. Nicole Forsgren, Gene Kim, and Jez Humble at DORA, 2018 Accelerate: State of DevOps Report
The 2018 Accelerate: State of DevOps Report states that in previous years, test automation had a significant impact on continuous delivery. Further research pinpointed that continuous testing seems to be the next factor in creating positive impact on continuous delivery.
CT/CQ combines best-in-class DevOps concepts including test automation and test-driven development to enable deployment on-demand. Some instances include:
CT/CQ’s goal is to improve code quality accompanied by long-term usefulness and maintainability of code.
Roadblocks to continuous testing and continuous quality
While the benefits and outcomes of CT/CQ are enormous, it doesn’t come without effort. This can present a challenge as teams adopt these best practices for modern DevOps. Agile development results in incremental builds rather than large deployments, allowing scrum teams to rapidly prioritize user stories and determine how the most value can be delivered in the shortest period. This may require teams to constantly create new scripts or update test scripts based on the changes in a feature of functionality.
Regular script updates due to product backlog or road map change: An agile development is an iterative process in which the product owner owns the direction of the product development. They can change or update user stories during product backlog review meetings, requiring the test teams to constantly update their test scripts.
Test data setup: Running the same load scenario with each subsequent build may require a large amount of test data to be set up early, which can be challenging for the test team. However, this can be easily tackled with efficient test data management.
Missing backend services: When the performance testing starts early, teams risk that an application feature is dependent on a service that is still not built or available. In this case, the test teams should either stub the service or use a virtual service to test the functionality.
Every team’s goal should be to deliver high-quality code that’s useful, maintainable, and scalable. Implementing best practices with adaptable teams that execute continuous testing and continuous quality can make your teams even more effective and your applications resilient to a changing world.
Unlock the benefits of CT/CQ using multiple-discipline solution levers
To make a real agile transformation successful, organizations must commit to adapting their approach across multiple disciplines through the pre-sprint, sprint, and release portions of the agile workflow. Forming the “learn and iterate” culture and establishing metrics that matter can be the difference between a successful DevOps team and one that can’t keep up with changing demands. To further unlock the benefits of continuous testing and continuous quality, organizations can use these solution levers:
What follows is a high-level view of what continuous testing and continuous quality could look like in a typical agile flow.
These levers have assisted organizations by enhancing operating models and promoting better ways of working, improving methods to track testing health and organize testing catalog, creating testing metrics that matter for the program and organization, and ushering in an effective and modern test data management suite.
For more information, please visit Deloitte’s Quality Engineering Services page.
As the chief cloud strategy officer for Deloitte Consulting LLP, David is responsible for building innovative technologies that help clients operate more efficiently while delivering strategies that enable them to disrupt their markets. David is widely respected as a visionary in cloud computing—he was recently named the number one cloud influencer in a report by Apollo Research. For more than 20 years, he has inspired corporations and start-ups to innovate and use resources more productively. As the author of more than 13 books and 5,000 articles, David’s thought leadership has appeared in InfoWorld, Wall Street Journal, Forbes, NPR, Gigaom, and Lynda.com. Prior to joining Deloitte, David served as senior vice president at Cloud Technology Partners, where he grew the practice into a major force in the cloud computing market. Previously, he led Blue Mountain Labs, helping organizations find value in cloud and other emerging technologies. He is a graduate of George Mason University.