16
Code Review to the rescue aka Softwarequalität steigern Andreas Günzel JavaLand Brühl 25.03.2015 25.03.2015 Softwarequalität steigern Seite 1

Andreas Günzel - Code review to the rescue

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Andreas Günzel - Code review to the rescue

Andreas GünzelPrincipal Consultant

EXXETA AG

Meine Person

@leichtundkross

[email protected]

www.EXXETA.com

Page 3: Andreas Günzel - Code review to the rescue

Agenda

Softwarequalität steigern 25.03.2015Seite 3

Aus dem Keller zum Team

Wann ist done done?

Code Reviews mit Gerrit & co. (Live Demo)

Page 4: Andreas Günzel - Code review to the rescue

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

Page 5: Andreas Günzel - Code review to the rescue

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

Page 6: Andreas Günzel - Code review to the rescue

Das ideale Team?

25.03.2015Softwarequalität steigernSeite 6

PO

Projekterfolg

Architekt

Freelancer

Business Analyst

Page 7: Andreas Günzel - Code review to the rescue

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.

Page 8: Andreas Günzel - Code review to the rescue

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

Page 9: Andreas Günzel - Code 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

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

Page 10: Andreas Günzel - Code review to the rescue

Code Review als neuer

Bearbeitungszustand

Erweiterung des Boards um Review Spalte

Andere Entwickler werden zur ersten Qualitätsstufe

25.03.2015Softwarequalität steigernSeite 10

Page 11: Andreas Günzel - Code review to the rescue

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

Page 12: Andreas Günzel - Code review to the rescue

Gerrit Code Review

25.03.2015Softwarequalität steigernSeite 12

Page 13: Andreas Günzel - Code review to the rescue

Live Demo

25.03.2015Softwarequalität steigernSeite 13

Page 14: Andreas Günzel - Code review to the rescue

Review Systemlandschaft

25.03.2015Softwarequalität steigernSeite 14

Reviewer

Code Review

-2 / +2

Verified

-1 / +1

Gerrit

Page 15: Andreas Günzel - Code 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

25.03.2015Softwarequalität steigernSeite 15

Page 16: Andreas Günzel - Code review to the rescue

25.03.2015Softwarequalität steigernSeite 16

Hausaufgaben

Gerrit Code Review

SonarQube

Sonargraph

@leichtundkross