Introduction to Quality driven approach and CI/CD

As SaaS platforms have matured and evolved, there has been a step change in focus on the quality of the development process and how changes are developed and released to business users. Enterprise wide scale, increasing complexity and pace of the change process are all factors in driving organisations to invest in more robust processes and a quality assurance framework. 

Continuous integration (CI) and continuous delivery (CD), also known as CI/CD, embodies a culture and set of operating principles and practices that application development teams use to deliver code changes both more frequently and more reliably.

Continuous Integration(CI) is a software development practice in which developers regularly integrate their code into a source code repository. Continuous Deployment(CD) is about releasing new functionality to the downstream systems soon after the completion of the development. 

Continuous Delivery(CD) is the objective of the end to end process within the CI/CD framework to release the features as and when they are ready. CI/CD process plays a key role in the DevOps function to speed up the development, validate the work packages to ensure quality and release the functionality in increments. 

While CI/CD addresses the speed, accuracy and efficiency of moving changes from environment to environment, there is also a need to ensure development changes are of required quality. SaaS development teams have widely adopted agile methodology to make rapid changes, test and deliver in an incremental fashion. While being agile it also adds the risk of not having enough resources and time to do sufficient rigorous testing and validating the work packages with the best practices. 

Image Source

Why does quality matter to business users ?

Organisations tend to focus on quick delivery timelines to meet the business demand without fully realising the importance of governance. When systems can be scaled at a quicker pace it causes a risk on the quality of work which could affect the performance and security aspects of the platform. The end users would lose confidence over time when they start to see performance related issues. Hence, quality and best practices should be part of the fundamental layer while building solutions on the SaaS platform. 

Build up of technical debt over time

Over time , this drive for quick delivery timelines to meet business demand, has in many cases resulted in a significant backlog of issues (technical debt). Many of these issues are unknown and undocumented – resulting in new releases breaking functionality. Over time, this impacts the lead time of further new releases, with dissatisfaction among business users on how long changes take for new functionality.

The platforms continue to evolve

SaaS platforms regularly bring out new releases of functionality and changes to the underlying development architecture. Development teams also need to monitor and adjust these changes, as they in turn can impact the overall ability to use most of the functionality in recent releases of the SaaS platform. What was best practice many years ago, may not be best practice today following the SaaS product changes. 

What about Low code/no code?

As digital transformation and innovation accelerates, many enterprises are adopting low-code/no code (LCNC) solutions. SaaS platforms come with a wide range of ‘no code’ capabilities which helps democratise development and ease the digital skills gap, as they enable the citizen developers to build functionality without having to do any form of code development. Salesforce for example offers out of the box configuration abilities to build solutions faster. However there remains a need to ensure quality of these Low code/No code solutions – in particular in areas such as  security risks, reliability concerns, and difficulty with upgrading. These all could impact businesses in the long run. 

What should organisations do to incorporate quality within the SaaS development process ? 

While it’s imperative to implement governance control into the software development lifecycle, it can consume a huge amount of time to manually track and manage technical debt. As time is key for successful delivery of software, the development teams often see the governance process as additional overhead without realising the cost impact to the platform. 

This leads us to think about the Build vs Buy scenario, which is a vital topic as building a system for governance will involve a mix of business and technical stakeholders to validate the development and delivery process. There are governance tools available which take away the heavy lifting around building and maintaining the platform. 

Quality Clouds helps enterprises on the governance and technical debt space by providing rich data analytics and insights for the SaaS platforms. The advantage of buying a product rather than building is around the support and upgrades from the vendor. The development teams can focus on building solutions on the SaaS platform and the governance tool would help them to manage technical debt without having to invest time to build and manage the governance tool in-house. 

Role of CI/CD in QA

Implementing a CI/CD framework within the development teams is essential to deliver software releases on time in smaller chunks. While CI/CD processes can add a huge value to teams, it can also slow down the speed of delivery if the quality hasn’t been incorporated as part of the testing and release cycle. Software testing is crucial in the Software Development Lifecycle(SDLC) to validate if the deliverables are working as expected. 

In the same way that successful development teams invest and implement CI/CD processes, quality assurance should also be incorporated into an essential component of the SDLC. SaaS providers like Salesforce recommend organisations to adopt shift left methodology which emphasises the inclusion of quality assurance and best practices right from the design phase. When teams deliver features with good quality from the earliest stage in the SDLC phase, the risk around technical debt and cost implications are minimised.  

The value of having a governance solution in place while building software and releasing through the CI/CD pipeline is to speed up the process along with the assurance of good quality of work being delivered to the downstream and production systems. 

Conclusion

Businesses are under pressure to meet the customer demands and gain brand reputation and increase revenue which causes them to apply pressure to the development teams to build and manage technology to help the business to achieve the goals. This often leads the team to deliver results in a short period of time where quality may not take precedence in the order of execution and importance. CI/CD has enabled teams to release increments faster but has also highlighted the need for a shift left approach with quality governance. Put simply – even with CI/CD tools, if the solution isn’t validated against best practices and quality guidelines then the teams could be adding additional technical debt which could cost them money and resources in the long run. 

For more information on how Quality Clouds can help, book a demo.

Want to learn more? Let's talk: