Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript...
Transcript of Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript...
![Page 1: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/1.jpg)
Continuous Inspection
with SonarQube
Olivier Gaudin -‐ @gaudol
![Page 2: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/2.jpg)
![Page 3: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/3.jpg)
![Page 4: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/4.jpg)
§ ? § ? § ? § ? § ? § ? § ?
The 7 Deadly Sins…
![Page 5: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/5.jpg)
§ Duplications § Bad distribution of complexity § Spaghetti Design § Lack of unit tests § No coding standards § Potential bugs § Not enough or too many comments
… of the developer
![Page 6: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/6.jpg)
The Quality Gate
![Page 7: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/7.jpg)
§ Too late § Pushback from teams § Lack of ownership § Heterogeneous requirements § Quality gate enforcement
Challenges
![Page 8: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/8.jpg)
§ Total amount of TD can be depressing § How to get a budget to fix old TD? § Risk of injecting functional regression § This is not fun!
This is Hard
![Page 9: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/9.jpg)
§ Development team owns quality § Shorter feedback loop § Unified quality gate § Cost is insignificant § This is (more) fun!
Changing the Game
![Page 10: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/10.jpg)
Fix the Leak!
![Page 11: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/11.jpg)
Reimbursing the Debt
![Page 12: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/12.jpg)
§ 40K+ live instances § 100K+ downloads per year § 1500+ active contributors § 23% of Java dev use it daily § 60+ plugins in the forge § 41 customers in Fortune 100
SonarQube in Numbers
![Page 13: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/13.jpg)
![Page 14: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/14.jpg)
Programming Languages
![Page 15: Continuous Inspection with SonarQube · sonarqube . Groovy ABAP Erlang C# COBOL Flex RPG JavaScript PL/1 Java Web PHI) HTML CSS C++ Android VB6 XML VB .NET Objective-C Python PL/SQL](https://reader037.fdocuments.us/reader037/viewer/2022100303/5f08d1ab7e708231d423df69/html5/thumbnails/15.jpg)
@SonarSource @gaudol
http://sonarqube.org/1rule1tshirt