Siarhei Muntsianu is a Lead Software Engineer who works at Godel’s Bulgarian development centre in Sofia. Siarhei has over 5 years of experience with a growing speciality in web application development. Today, he discusses automated quality gates, what it is and the importance of implementing them in our team and product. 

What are automated quality gates? 

Automated quality gates are a significant part of software development and CI/CD pipelines. They are designed to ensure that code changes meet the right quality criteria before progressing into the next stages of the development process. 

CI/CD pipelines have become a vital part of modern software development that lets teams get fast feedback on the quality of code before it is released. However, it is still the case today that businesses are failing to fully utilise the opportunities that CI/CD pipelines offer due to the fact they have not yet implemented automated quality gates into their products. 

The purpose of automated quality gates goes far beyond checking quality assurance, they also ensure risk migration, reducing the risk of bugs, vulnerabilities and performance issues later down the line, and help streamline workflow by automating decision-making and helping code changes to move through the pipeline more efficiently. By automating code changes, development teams can deliver software more efficiently whilst maintaining high standards of quality. 

What benefits do automated quality gates offer? 

Here, I describe the benefits of implementing quality gates, from the perspective of different users: 

Developer: It’s common knowledge that a developer will spend more time reading code than writing code. But when they are writing code, it would be a good idea for all developers to write in the same way. This could also help in future features. If developers have good quality gates in place, they can spend more time just checking the logic and not waste valuable time checking whether it has been done correctly, or the same way as everyone else etc. For example, the developer needs to add a feature, but instead of making sure it is written correctly, they would just need to check the logic. If all developers followed this pattern, it would increase the quality of the developer’s work. 

Team: Providing similar values as developers, implementing quality gates will help the team move faster and help bring new features to production faster. When speaking about the cost, putting the cost in will result in faster work and code quality improvement when writing tests which become part of the quality gates. 

Having automated tests could mean the team doesn’t need to worry if the code is working or not. It should be automatically checked and tested. If it fails in the step of quality gates, it will just be failed by the developer and not have to disturb another team member. The tools for automatic quality gates can help solve the issue with little disturbance to other team members and overall, help deliver the feature faster. 

Customer/End user: In the digital world, it is highly recommended to be flexible and reactive to changes in the business landscape and automatic quality gates are beneficial for the user who will be receiving new products faster. 

For example, in the UK, you have multiple comparison sites and services which allow you to compare mortgages and get the best deal. By using quality gates, you can check your Open-End that they have added new features that introduce faster delivery to customers and not be an outsider in the business. When implementing quality gates, you haven’t got a team of developers (such as DevSecOps) checking the application for security, you just run quality gates which automatically enables a faster product for the end user. After delivering the feature, you are no longer an ‘outsider’, you end up on the same page as your Open-End. 

Business: For the business, quality gates will increase value and reduce incidents during production. If you have automated quality gates with strict rules, the probability of failure is low. It is important for it to not affect the business where they could lose money, lose customers, and would have a great impact on the business, so having this in place would give great value 

What about from a technical point of view? 

Quality Gates should be split by the necessary tests. You don’t need to implement huge security tests to the gate in your full requests, it can be executed after the QA stage. All you would need to do is apply a small integration test and UI tests as stats to show the page is working as expected. At this stage, you could conduct some reassurance testing on a customer to make sure there have been no negative changes to the application. 

Once the quality gate has passed, it becomes ‘green’ and will then go through another environment like QA, and after that, the developers will start another quality gate such as integration testing, UI testing and testing on different browsers. It’s good to add testing at this stage and will save you a lot of time as it will automate the issue and show you the problem, and you can simply move. 

After this, you will be ready for stage 4 – release. You will also have the automation in place to address high-level issues, and if something fails and you have configured it automatically, it will automatically create tasks. With quality gates, you won’t fall into complicated development strategies. You don’t need to do anything, just push and wait. 

Why are businesses still not implementing automated quality gates? 

Businesses are still choosing not to use it despite the long-term benefits of implementing quality gates, as in the short term, it will cost the company a lot of money to implement from scratch, so they don’t want to use it. This can result in a huge challenge in these changing economic times, where a decision must be made from a cost-saving perspective, balanced with the overall benefit for the business and its users. 

It’s all about how much money you’re willing to spend. You could buy off the shelf, and it can prevent some issues, but in my opinion, it is better to implement automated quality gates yourself. The bottom line is, spending more money, will save you overall time, spend more time, but you’ll save money, but what is more valuable, time or money? 

Conclusion 

Automatic quality gates provide good benefits in relation to code quality, fault tolerance and security of the application, and time for both developers (more time to devote to the product) and for the product (deliver new features more quickly). But it is important to understand that you must assess the situation and the risks to what extent you can and are ready to spend resources on their implementation so that it is useful for you. This is not a golden bullet, but with the right approach, it will seem like one.