Full service implementation
Static Code Analysis
The SI Digital Grid department of Siemens AG develops the product Spectrum Power 7, a grid control system for controlling power grids in the medium-voltage and high-voltage range worldwide. The code base comprises over 10 million lines of code and has been developed in parts for over 20 years. It consists mainly of a mix of C/C++, Java, Python and Fortran and is distributed over 23 Git repositories.
The more than 170 developers of the system in 5 time zones are organised in 17 scrum teams, work with 3 different development environments (Eclipse, MS Visual Studio, QtCreator) and maintain builds for 2 operating systems.
In the past, the use of different programming languages and the global distribution of development, as well as the sheer size of the system, made it difficult for Siemens to easily keep track of the software quality of the entire product. Previously, self-built tools were used for this purpose, but they reached their limits and required additional maintenance. Siemens was therefore looking for a commercial solution that could handle particularly large code bases and multiple programming languages as well as support their different development and build environments. After an initial successful pilot with one of the teams, CQSE carried out a major rollout of Teamscale to the entire system, including training for all developers.
The project showed: Teamscale supports large teams with a lot of code and heterogeneous environments effectively and with little effort to improve software quality. Not only does Teamscale's flexible dashboards help management maintain an overview of the entire system and react to negative trends early on. With its focus on fast and personal feedback, integration into various builds and IDEs, as well as Gitlab, Teamscale also makes it easier for individual developers to quickly eliminate technical debt in their code areas during their daily work.
Tools we integrated at Siemens
Teamscale’s automated code analyses consider well-accepted quality criteria for nearly all programming languages, giving you real-time feedback on your work.
Duplicated code (a.k.a clones) is one of the major risks for the future maintenance of your code. Teamscale’s Code Clone Management keeps clones under control until you get rid of them.
Teamscale makes your intended architecture explicit, enabling strategic discussions about architecture decisions and automated detection of architecture violations in your code.
Integrating a tool is the start, but long lists of findings won’t make any code better. Teamscale enables a continuous quality controlling process.
Teamscale gives you instant feedback on changes in your code's quality, right then and there in your IDE of choice.
Merge requests become your quality gates, with Teamscale bringing all your automated and manual quality feedback together in one place.