By analyzing 5.75 Million LoC with SonarQube on a daily basis, BSB (Business Solutions Builders) has been successful in improving the quality of its entire software product suite.
BSB provides business solutions and IT services for finance professionals and life insurers. Its core software framework is used extensively by developers in three different locations: Belgium, Luxembourg and Ireland. Given the strategic significance of having a robust framework on which to base product development, BSB’s development and quality teams are always looking for best-in-class software quality tools in order to gain deeper insight and better manage internal code quality.
How to improve software quality and developer productivity?
Until 2009, BSB relied on disparate open source tools, such as Cobertura, Checkstyle and Findbugs, to identify and manage quality issues in the in-house software framework that underlies all its major products. BSB faced significant challenges with these tools, most notably the lack of a unified interface to view and track quality issues. The tools also lacked the ability to measure quality evolution over time, making it difficult to assess improvements in the quality of the BSB framework. Overall, this approach resulted in fragmented quality metrics, and failed to give BSB’s development teams the insight they needed into product quality.
Since BSB’s framework is used extensively by more than 80 developers in different locations, it was strategically important for the company to ensure that the framework was being implemented in accordance with best practices and with the highest possible quality. It fell to the Research and Technology group to find an objective system to define the factors making up high-quality code, to make sure these factors were being properly tracked, and to measure the evolution of these factors over time.
The Solution: Consolidated Metrics, Custom Dashboards and Continuous Inspection
In 2009 the BSB’s Research and Technology Group decided to try a proof of concept with the SonarQube platform, to validate its functionality and verify that it would meet BSB’s needs. Within three months, it was clear that SonarQube easily met all the requirements and could allow BSB to objectively measure and verify code quality. In particular, the team was impressed with SonarQube’s Continuous Inspection features, which allowed them to measure quality evolution during and after every two-week release cycle, and thereby gain a deeper understanding of quality issues.
SonarQube also offered a key advantage over the previous approach of using multiple separate products: it consolidated quality information into a centralized dashboard, and provided project managers and developers with easy-to-use web-based tools that displayed comprehensive and understandable quality statistics. This made it easier for developers and managers to work with each other to understand and resolve quality issues.
BSB is able to drive innovation and maintain its software portfolio
Beyond simply resolving existing quality issues, SonarQube helps developers get better at their jobs according to Stéphane Nicoll, the Head of Frameworks Development. “The SonarQube platform is a one-of-a-kind Continuous Inspection tool. Features like differential dashboards, timelines and history tables have engaged and encouraged every single team member to improve his or her skills. Reports on rules violations, package tangle, duplication, code coverage and API documentation have helped us to deliver rock-solid libraries to other fellow developers. In short, the SonarQube platform has helped us to write better code. But even more importantly, it has also helped us as a team to learn from each other and improve our skills.”
Today, BSB operates two SonarQube instances, analysing more than 31 projects and 5.75 million lines of code. BSB’s technical architects and quality managers make extensive use of SonarQube’s history and custom dashboards to focus on metrics that have been identified as important. Sparkline graphs are used to verify progress, and alert thresholds are used to quickly identify events that require immediate attention.
SonarQube’s plugin library is also of immense value to BSB, because it has enabled the company to easily integrate the SonarQube platform with its existing IT and application lifecycle management (ALM) infrastructure. The SonarQube LDAP plugin offloads authentication and authorization to BSB’s existing permissions infrastructure, the Jenkins plugin integrates SonarQube with the existing Continuous Integration infrastructure, and the SCM Activity plugin helps architects and QA managers identify team members to contact about code quality issues. Further, SonarQube’s extensibility has allowed the BSB team to develop custom SonarQube rule sets for business-specific use cases.
By using SonarQube to inspect and manage the code quality of its products, BSB has been successful in improving the quality of its core software framework and, correspondingly, the quality of its entire software product suite. With SonarQube, BSB is able to drive software innovation across its development teams while still managing its enterprise software portfolio in an economical and flexible manner.