Andreas Günzel - Code review to the rescue
-
Upload
andreas-guenzel -
Category
Presentations & Public Speaking
-
view
137 -
download
0
Transcript of Andreas Günzel - Code review to the rescue
Code Review to the rescue
aka Softwarequalität steigern
Andreas Günzel
JavaLand Brühl
25.03.2015
25.03.2015Softwarequalität steigernSeite 1
Andreas GünzelPrincipal Consultant
EXXETA AG
Meine Person
@leichtundkross
www.EXXETA.com
Agenda
Softwarequalität steigern 25.03.2015Seite 3
Aus dem Keller zum Team
Wann ist done done?
Code Reviews mit Gerrit & co. (Live Demo)
Softwareentwicklung heißt
Teamarbeit
MS DOS 1.0 bestand aus etwa
4.000 Zeilen Assembler Code (1981)
Facebook hat über
60 Millionen Lines of Code (2014)
Softwareentwicklung wird immer
komplexer. Eine Person alleine kann dies
nur noch schwer beherrschen
25.03.2015Softwarequalität steigernSeite 4
Software Development Teams sind…
… Zwischen 3 und 9 Personen
stark (SCRUM)
… heterogen zusammengesetzt
‒ Erfahrene Entwickler
‒ Junior Entwickler
‒ QS
‒ Domain Experts
25.03.2015Softwarequalität steigernSeite 5
Quelle: qsm.com
Das ideale Team?
25.03.2015Softwarequalität steigernSeite 6
PO
Projekterfolg
Architekt
Freelancer
Business Analyst
Leider ist die Welt nicht ganz so
perfekt…
25.03.2015Softwarequalität steigernSeite 7
Versionsverwaltung?
Brauchten wir früher auch nicht!
Was ist eine
Nullpointerexception?
Ich habe mir den Code mal angesehen.
Das funktioniert.
Warum Teams nicht (immer) skalieren
Die Ausrichtung als Team birgt Risiken
‒ Differenzen in Bezug auf Einstellungen, Werte und Erwartungen an die Arbeit
‒ Unterschiedlicher Wissensstand und Fähigkeit
‒ Unterschiedliche Auffassung von Verantwortlichkeit
Die Konsequenzen trägt der Projekterfolg
‒ Performance des Teams sinkt
‒ Qualität der Arbeitsergebnisse ist gering
‒ Frustration im Team
25.03.2015Softwarequalität steigernSeite 8
Wann ist done done?
Teams arbeiten besser zusammen, wenn alle Mitglieder eine ähnliche
Auffassung von Guidelines, Qualität und Verantwortung haben
25.03.2015Softwarequalität steigernSeite 9
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
Code Review als neuer
Bearbeitungszustand
Erweiterung des Boards um Review Spalte
Andere Entwickler werden zur ersten Qualitätsstufe
25.03.2015Softwarequalität steigernSeite 10
Pull Requests
Neue Features & Bugfixes werden nicht ohne Freigabe in die gemeinsame
Codebasis übernommen
Diskussionsgrundlage
Eigener Branch als Basis für Optimierungen, Fixes und weitere Anpassungen
Review (selbst oder andere Teammitglieder)
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
25.03.2015Softwarequalität steigernSeite 11
Gerrit Code Review
25.03.2015Softwarequalität steigernSeite 12
Live Demo
25.03.2015Softwarequalität steigernSeite 13
Review Systemlandschaft
25.03.2015Softwarequalität steigernSeite 14
Reviewer
Code Review
-2 / +2
Verified
-1 / +1
Gerrit
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
25.03.2015Softwarequalität steigernSeite 15
25.03.2015Softwarequalität steigernSeite 16
Hausaufgaben
Gerrit Code Review
SonarQube
Sonargraph
@leichtundkross