SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
JAX Mainz
20.04.2016
Andreas Günzel
Code Review to the Rescue
Andreas Günzel
Team Manager Java Enterprise Solutions
EXXETA AG
Code Review to the Rescue
Meine Person
@leichtundkross
Andreas.Guenzel@EXXETA.com
www.EXXETA.com
20.04.2016 2
Aus dem Keller zum Team
Wann ist done done?
Code Reviews mit Gerrit & co. (Live Demo)
Code Review to the Rescue
Agenda
20.04.2016 3
Softwareentwicklung heißt
Teamarbeit
MS DOS 1.0 bestand aus etwa
4.000 Zeilen Assembler Code (1981)
Google hat über
2.000.000.000 Lines of Code (2015)
Softwareentwicklung wird immer komplexer.
Eine Person alleine kann dies nur noch
schwer beherrschen
20.04.2016 4Code Review to the Rescue
Software Development Teams sind…
… zwischen 3 und 9
Personen stark (SCRUM)
… heterogen besetzt
• Erfahrene Entwickler
• Junior Entwickler
• QS
• Domain Experts
Quelle: qsm.com
20.04.2016 5Code Review to the Rescue
Das ideale Team?
PO
Architekt
ConsultantsBusiness Analyst
20.04.2016 6Code Review to the Rescue
Leider ist die Welt nicht ganz so perfekt…
Versionsverwaltung?
Brauchten wir früher auch nicht!
Was ist eine
Nullpointerexception?
Ich habe mir den Code mal angesehen.
Das funktioniert.
20.04.2016 7Code Review to the Rescue
Warum Teams nicht (immer) skalieren
Die Ausrichtung als Team birgt Risiken
• Differenzen in Bezug auf Einstellung, Werte und Erwartungen an den Job
• Unterschiedlicher Wissensstand und Fähigkeiten
• Unterschiedliche Auffassung von Verantwortlichkeit
Die Konsequenzen trägt der Projekterfolg
• Qualität der Arbeitsergebnisse ist gering
• Performance des Teams sinkt
• Frustration im Team
Indikatoren
• Bauchgefühl
• Große Anzahl an Bugs
• CI Build bricht oft, Integrationsumgebung ist instabil
20.04.2016 8Code Review to the Rescue
Wann ist done done?
Teams arbeiten besser zusammen, wenn alle Mitglieder eine ähnliche Auffassung
von Guidelines, Qualität und Verantwortung haben
Die Definition of Done gibt nur
einen Rahmen vor
Es ist schwierig sicherzustellen,
dass Richtlinien und Absprachen
eingehalten werden
Pair Programming
„Lokale QS“
Code Review
20.04.2016 9Code Review to the Rescue
Code Review als neuer
Bearbeitungszustand
Erweiterung des Boards um Review Spalte
Andere Entwickler werden zur ersten Qualitätsstufe
20.04.2016 10Code Review to the Rescue
Pull Requests
Neue Features & Bugfixes werden nicht ohne Freigabe in die gemeinsame
Codebasis übernommen
Eigener Branch als Basis für Optimierungen, Fixes und weitere
Anpassungen
Diskussionsgrundlage
Review (selbst oder andere Teammitglieder)
20.04.2016 11Code Review to the Rescue
Setup
Source Repository mit Unterstützung von
• Pull Requests
• Code Reviews
Automatischer Build für jeden Pull Request
• Sourcen kompilieren
• Unit-Tests ausführen
Automatischer Code-Review
• Statische Code Analyse: Checkstyle, FindBugs, PMD
• Architekturmetriken: Structure101, Sonargraph
20.04.2016 12Code Review to the Rescue
Gerrit Code Review
20.04.2016 13Code Review to the Rescue
Live Demo
20.04.2016 14Code Review to the Rescue
Review Systemlandschaft
Reviewer
Code Review
-2 / +2
Verified
-1 / +1
Gerrit
20.04.2016 15Code Review to the Rescue
Einsatz mit Bedacht
Code Reviews
• Bringen mehr Qualität
• Binden Ressourcen
• Sind keine Garantie
Agile Manifest
• Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
Tools benötigen Betreuung
Tools müssen bedient werden können
20.04.2016 16Code Review to the Rescue
Gerrit Code Review
SonarQube
Sonargraph
20.04.2016 Code Review to the Rescue 17
Hausaufgaben
@leichtundkross
Andreas.Guenzel@EXXETA.com
www.EXXETA.com

Contenu connexe

Similaire à Code Review to the Rescue

Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsAndreas Schreiber
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerOPITZ CONSULTING Deutschland
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Teambrandts
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafkagedoplan
 
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Christian Baranowski
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungMichael Brandt
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.Stephan Schmidt
 
Qualitymanagement mit Sitecore und Sonarqube
Qualitymanagement mit Sitecore und SonarqubeQualitymanagement mit Sitecore und Sonarqube
Qualitymanagement mit Sitecore und SonarqubeDaniel Scherrer
 
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenSharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenMichael Gisiger
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDNUG e.V.
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 

Similaire à Code Review to the Rescue (20)

Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
Agiles Lernen und Software Entwicklung das OSGi Code Camp 2010
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
 
Qualitymanagement mit Sitecore und Sonarqube
Qualitymanagement mit Sitecore und SonarqubeQualitymanagement mit Sitecore und Sonarqube
Qualitymanagement mit Sitecore und Sonarqube
 
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und GrenzenSharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
SharePoint im WCMS-Einsatz - Möglichkeiten und Grenzen
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdf
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 

Code Review to the Rescue

  • 2. Andreas Günzel Team Manager Java Enterprise Solutions EXXETA AG Code Review to the Rescue Meine Person @leichtundkross Andreas.Guenzel@EXXETA.com www.EXXETA.com 20.04.2016 2
  • 3. Aus dem Keller zum Team Wann ist done done? Code Reviews mit Gerrit & co. (Live Demo) Code Review to the Rescue Agenda 20.04.2016 3
  • 4. Softwareentwicklung heißt Teamarbeit MS DOS 1.0 bestand aus etwa 4.000 Zeilen Assembler Code (1981) Google hat über 2.000.000.000 Lines of Code (2015) Softwareentwicklung wird immer komplexer. Eine Person alleine kann dies nur noch schwer beherrschen 20.04.2016 4Code Review to the Rescue
  • 5. Software Development Teams sind… … zwischen 3 und 9 Personen stark (SCRUM) … heterogen besetzt • Erfahrene Entwickler • Junior Entwickler • QS • Domain Experts Quelle: qsm.com 20.04.2016 5Code Review to the Rescue
  • 6. Das ideale Team? PO Architekt ConsultantsBusiness Analyst 20.04.2016 6Code Review to the Rescue
  • 7. Leider ist die Welt nicht ganz so perfekt… Versionsverwaltung? Brauchten wir früher auch nicht! Was ist eine Nullpointerexception? Ich habe mir den Code mal angesehen. Das funktioniert. 20.04.2016 7Code Review to the Rescue
  • 8. Warum Teams nicht (immer) skalieren Die Ausrichtung als Team birgt Risiken • Differenzen in Bezug auf Einstellung, Werte und Erwartungen an den Job • Unterschiedlicher Wissensstand und Fähigkeiten • Unterschiedliche Auffassung von Verantwortlichkeit Die Konsequenzen trägt der Projekterfolg • Qualität der Arbeitsergebnisse ist gering • Performance des Teams sinkt • Frustration im Team Indikatoren • Bauchgefühl • Große Anzahl an Bugs • CI Build bricht oft, Integrationsumgebung ist instabil 20.04.2016 8Code Review to the Rescue
  • 9. Wann ist done done? Teams arbeiten besser zusammen, wenn alle Mitglieder eine ähnliche Auffassung von Guidelines, Qualität und Verantwortung haben Die Definition of Done gibt nur einen Rahmen vor Es ist schwierig sicherzustellen, dass Richtlinien und Absprachen eingehalten werden Pair Programming „Lokale QS“ Code Review 20.04.2016 9Code Review to the Rescue
  • 10. Code Review als neuer Bearbeitungszustand Erweiterung des Boards um Review Spalte Andere Entwickler werden zur ersten Qualitätsstufe 20.04.2016 10Code Review to the Rescue
  • 11. Pull Requests Neue Features & Bugfixes werden nicht ohne Freigabe in die gemeinsame Codebasis übernommen Eigener Branch als Basis für Optimierungen, Fixes und weitere Anpassungen Diskussionsgrundlage Review (selbst oder andere Teammitglieder) 20.04.2016 11Code Review to the Rescue
  • 12. Setup Source Repository mit Unterstützung von • Pull Requests • Code Reviews Automatischer Build für jeden Pull Request • Sourcen kompilieren • Unit-Tests ausführen Automatischer Code-Review • Statische Code Analyse: Checkstyle, FindBugs, PMD • Architekturmetriken: Structure101, Sonargraph 20.04.2016 12Code Review to the Rescue
  • 13. Gerrit Code Review 20.04.2016 13Code Review to the Rescue
  • 14. Live Demo 20.04.2016 14Code Review to the Rescue
  • 15. Review Systemlandschaft Reviewer Code Review -2 / +2 Verified -1 / +1 Gerrit 20.04.2016 15Code Review to the Rescue
  • 16. Einsatz mit Bedacht Code Reviews • Bringen mehr Qualität • Binden Ressourcen • Sind keine Garantie Agile Manifest • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge Tools benötigen Betreuung Tools müssen bedient werden können 20.04.2016 16Code Review to the Rescue
  • 17. Gerrit Code Review SonarQube Sonargraph 20.04.2016 Code Review to the Rescue 17 Hausaufgaben @leichtundkross Andreas.Guenzel@EXXETA.com www.EXXETA.com