Andreas Günzel - Code review to the rescue

Preview:

Citation preview

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

Andreas.Guenzel@EXXETA.com

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

Recommended