With SonarQube at the core of its ALM process, the MIMOS engineering and management teams are monitoring software quality on 70+ projects.
Founded in 1984, MIMOS – The Malaysian Institute of Microelectronic Systems – has a huge charge: develop new information and communications technologies (ICT) that local businesses can commercialize to make Malaysia a global ICT leader. With so much riding on MIMOS’ success, software quality is critical for its more than 600 researchers and engineers, to ensure world-class quality and innovation.
Tools, tools, and more tools
As critical as software quality has always been for MIMOS, tracking it was a mess before its teams began using SonarQube. MIMOS is a high maturity organization, so metrics are critical to its operation, but a multitude of tools, configurations, and metrics were in use from language to language and team to team. The multitude of tools made it difficult to see a single project’s overall quality across multiple metrics because each metric was measured with a different tool – sometimes multiple tools – and each tool had its own report. Further, because each team was installing and configuring those tools independently, the settings were slightly different from project to project. That made it impossible to make comparisons because each team had slightly different results, and therefore slightly different objectives. Even if it had been possible to make comparisons, the quality results were so scattered that there was no way to aggregate the teams’ metrics for a centralized, consolidated view of all the projects.
Beyond the metrics, code reviews at MIMOS were manual, tedious and resource-intensive. With no way of automatically flagging suspect code, each commit was equally suspicious and subject to investigation. In short, the software quality process at MIMOS was complex, time-consuming, and inefficient.
And then came SonarQube
In early 2011, MIMOS piloted SonarQube with two of its major Java projects to validate SonarQube’s benefits. The first benefit was immediately obvious: SonarQube pulled together all the metrics for a project into one cohesive presentation. Now the entire team, from developers, to testers, to project management could easily see all the quality measures for a project. Even better, the pilot team saw that SonarQube could also provide centralized reporting for all MIMOS’ software projects across the organization. Before there had been multiple reports to check per project, but now there could be a central place to go for all the metrics on a project, and all the projects in the company!
SonarQube would also standardize the quality tools, configurations and metrics in use from team to team. No longer would each team have to choose, install and manage tools independently. With SonarQube, all the required features, language extensions and plugins are installed and configured just once, on a central installation. And with all the teams using the same tools, knowledge sharing is possible across teams. If that weren’t compelling enough, the pilot team saw that SonarQube would fit neatly into MIMOS’ existing workflow. Its open-source ecosystem provides all the required tools for an enterprise-grade integration with Hudson, Jenkins, Jira and other tools.
After that early pilot, SonarQube was quickly adopted across the organization, but people in different roles like different aspects of the tool. The centralized reporting features are big with management, while MIMOS’ dedicated Quality Teams like the traceability SonarQube offers. For their part, engineers like the ability to drill down to the exact line of code that fails the compliance standards. MIMOS staffers also like the Time Machine because it allows them to track and measure historical progress, and project future quality performance. Finally, the SonarQube implementation of the SQALE methodology helps MIMOS teams design and prioritize refactoring efforts by categorizing errors and issues into sub-characteristics.
Best-of-breed ALM process
Today, every project team at MIMOS uses SonarQube for source code analysis and quality review. On a daily basis MIMOS analyzes millions lines of code from 70+ projects in a variety of programming languages, including Java, PHP, C, .NET and Flex. The engineering and management teams are now able to monitor software quality closely as part of MIMOS’ fully-realized application lifecycle management (ALM) process, which includes Development, Testing, Software Quality and Project Management. MIMOS teams are proud to use a state-of-the-art ALM development process, with SonarQube at its core, enabling centralized software quality review, analysis and reporting.