Key Results
- Improved code quality and set a high standard for good coding practice across development teams.
- Switched from manual to automated code quality reviews, reducing the time spent on code reviews by development teams.
- Developers learn how to proactively resolve issues and are educated on new changes to languages, libraries, and frameworks elevating teams with differing skills to the same coding standard.
The code quality challenge
CleverTap is an All-In-One customer engagement platform that unifies interactions between people, processes, and technology. CleverTap powers over 10,000 apps globally and helps customers retain their users. The platform enables the high-volume targeting and delivery of user messaging through various channels, powered by user behavioral analysis and segmentation, delivering in-moment experiences designed and optimized for scale in real-time.
Several industry-leading engineering innovations have gone into making this internet scale of real-time marketing automation and user engagement possible. A prime example is CleverTap’s proprietary TesseractDB™, a pioneering database specifically engineered for speed, scale, and depth in user data processing. With 11 product/technology patents pending, this unique technology enables brands to attain unparalleled depth and granularity in user analytics, offering a comprehensive 360-degree view of the customer.
CleverTap wanted to codify their tribal knowledge when it came to code quality, testing, and hygiene. This was to ensure that when they hired new engineers, there were enough guardrails set. They were looking for a tool to measure their test coverage and establish a code quality standard for their engineers across all the languages they use, including Java, JavaScript, Vue.JS, Objective-C, and Swift.
The code quality solution
CleverTap decided to adopt static code analysis into their development process to improve the overall quality of their code. They were using Bitbucket as their code repository and IntelliJ as their IDE. After evaluating their options, they selected SonarQube as their tool of choice.
CleverTap has since moved to GitHub from Bitbucket, and their transition was seamless. SonarQube’s integration with Maven, their primary build tool, was used to manage and monitor code test coverage. This is an essential aspect of the Clean as You Code approach, which they were searching for to set the desired code quality standard.
The code quality results
The value CleverTap sees in SonarQube is to enforce code quality levels with quality gates in the CI pipeline and ensure a desired level of code coverage. SonarQube provides an invaluable concise report of how clean their code is in the languages they use with a unified view across all their projects.
Pull request (PR) decoration has been the most important to them, especially having migrated their projects from Bitbucket to GitHub. CleverTap uses SonarQube’s test code coverage integration with Maven & Jacoco to determine their baseline coverage, and monitor their progress while trying to reach their coverage goals.
CleverTap realized an additional unexpected benefit from using SonarQube over time. Their engineers became better at avoiding issues and quickly learned new advances in the languages and libraries they use. They found increased developer happiness with the Learn as You Code capability in SonarQube.