Continuous Inspection

Silverpeas

Silverpeas has been able to implement new features and improve product performance, which has led to winning more and bigger customers.

Silverpeas is a platform for collaborative knowledge and content management. Written in Java, Silverpeas was born in 1999, in the dark ages of J2EE. It was a time before the age of frameworks, when heroes coded without tests or documentation. The result was a working product backed by a jumble of custom frameworks that had been based on good ideas, but executed imperfectly. As the years passed, it became increasingly difficult to evolve and maintain the code because of short-sighted design decisions made early in the product’s life, and because there was no clear vision of its global architecture.

Technical Debt = Liability

This situation made it extremely difficult to keep up with the pace of innovation and stay competitive in the market. Compounding the problem, the high cost of performing basic maintenance and implementing new features made it difficult to acquire new customers. The technical debt represented a liability that was just too big. Enough was enough. In 2009, the Silverpeas team made a drastic decision: it was time to modernize the architecture and improve Silverpeas’ code quality. But they needed to know precisely how, what, and where to refactor before they could proceed.

“We needed a tool to support our changes,” Silverpeas Software Architect Miguel Moquillon said. “SonarQube (Sonar at that time) was chosen to help us obtain the right answers to these questions. Through its quality analytical tools and its unified and customizable interface, we have the information to identify the tasks we have to perform in order to reduce the technical debt and improve the quality of the code. It is our GPS on the road to improving Silverpeas.”

SonarQube keeps technical debt under control

The Silverpeas team chose SonarQube for this critical role in Silverpeas’ modernization in part because it is open source, like Silverpeas, and easily extensible, but SonarQube also offered several features Moquillon said the team found compelling:

  • “A unified and centralized dashboard in which are rendered the code’s main quality metrics: it easy to see with a glance what went wrong, and what was improved.
  • “An easy way to navigate into the different indicators of a metric down to the relevant code: it’s easy to find the parts of the code that require action.
  • “The indication of the evolution of the metrics over the time: we can estimate the effort of our code improvement.”

After adding SonarQube to its development process, the Silverpeas team was able to modernize its code base safely, and shift focus to improvements. “A product is a living beast that grows in functionalities and in design in order to satisfy market demands and stay attractive for its customers,” Moquillon said. “But it is also critical to keep control of costs in order to stay competitive.” He said SonarQube helps by “keeping the technical debt as low as possible … With a low technical debt, our partners can have a better experience in building their solutions, and our customers enjoy the use of Silverpeas with better pricing. With better quality, it is easier to maintain and enhance a product with a small team of developers.”

Better software quality has led to winning more and bigger customers

The SonarSource solutions contribute to Silverpeas’s success by delivering continuous and rapid feedback on the key issues together with suggestions on how to tackle them. Working from the solid base its code quality improvements give it, the Silverpeas team has been able to implement new features, and improve product robustness and performance, which has led to winning more and bigger customers. Today, the Silverpeas team is committed to keeping its software quality on track with SonarQube. Moqillon says the Silverpeas team has confidence in SonarQube because “it is an open source project like Silverpeas, and as such, we are ensured of its evolution and of its quality.” He praises SonarQube’s regular release schedule, ease of use, ease of installation and ease of integration with existing development infrastructure, such as the continuous integration server Jenkins, and the build system Maven.

Now, SonarQube analysis runs every night on Silverpeas’ 351,000 lines of code, triggered by Jenkins as a post-build action. Developers and managers check the results regularly, and take action to resolve issues in a collective effort to maintain and further improve Silverpeas’ software quality.