The problem with CI/CD
Over recent years CI/CD has become a mainstream concept in modern SaaS development. The approach is becoming increasingly popular among top performing organizations. In a recent Gartner study, 51% of these organizations were likely to explore new architecture and tools. With a focus on automation and creating a flexible yet structured development process, CI/CD is allowing developers to focus on building great platforms at speed.
However, one current issue with CI/CD is the lack of a focus on quality. Many tools focus on remediation after the fact or focus on a specific part of the process where bespoke tactics will need to be deployed. Project-centric mindsets can often compound this issue. Teams work in silos, without a unified approach to platform management. This all leads to missing issues and requires a more consistent and joined up approach.
Continuous Quality is a new approach to the CI/CD lifecycle. It puts quality on an equal footing to integration, deployment and delivery. Instead of an intermittent and concentrated effort on increasing quality, the approach is instead continuous. Your QA and testing should be synced with every step of your DevOps processes. This more evenly distributes workload and ensures early fixes to potential problems.
A good analogy for this approach would be attrition warfare. Or more simply put, ensuring technical debt never grows by continuous targeting and eliminating problems on the go. Against a seemingly insurmountable foe, a constant and relentless attack at every point of your development process will grind it down. This ensures a high quality platform you can build at pace as part of a continuous process.
So that’s the theory, but what’s the reality? What would Continuous Quality (CQ) look like?
Above is an example of how Quality Clouds integrates CQ into the existing CI/CD landscape using a supercharged toolbox. At the heart of all of this is a Quality Manager which stores and checks for best practice violations at every stage. These can be selected both from a pre-existing library as well as customized to your own individual needs.
Labelled as ‘Live Check’ on the graphic, the first set of tools are used during development itself. They allow you to make a real time response to the changes you are making. Under CQ, issues spotted in configuration elements with new changes should be fixed when found. Whether these be freshly coded or legacy. These incremental fixes will bolster the quality of your platform. Due to the framework, these best practices will also be standardized across all your development teams, creating a unified vision of building a better platform.
In addition to checking quality during development, build and release phases should include reviews. The ‘Build Check’ tools allow you to assess a group of elements that you are looking to package for a release. This check will be more holistic, resulting in a pass/fail result with configurable levels of rigor, useful for different stages of development. There are many excellent tools out there which integrate well into this part of the process, including Jenkins, Bamboo, BitBucket, GitLab, Copado and CircleCI.
Both of these steps ensure quality in development. But in order to get the full picture, you need to track the metrics across all your environments and scans. Think of it as the equivalent of a central command tent in your battle. This is where you will review your tactics, see the effectiveness of your teams and have full visibility over the trends within your platform. From here you can run full scans of your SaaS platform. This will let you determine which strategies will help you hit your goals.
Results are what any strategy boils down to at the end of the day. And the signs we have already seen are promising. One of our customers with a mature DevOps setup has started to implement a Continuous Quality approach. Within the first 6 months, they have already seen a 15% increase in their development velocity. With less technical debt being accrued, early indications show that this will have an even wider impact on platform development going forward.
If you’d like to discuss how a Continuous Quality approach could benefit your development process, please set up a meeting where one of our experts would be happy to discuss this further.