Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Schneller, Billiger, Besser – effektiver Einsat...

Schneller, Billiger, Besser – effektiver Einsatz von Code-Reviews

Vortrag von Thorsten Maier.
Gehalten auf dem Dev Day 2015 in Dresden.

www.devday.de

Software wird zunehmend komplexer, und gleichzeitig werden Release-Zyklen bis hin zu Continuous Delivery immer kürzer. Effektive Code-Reviews sind notwendig, um in diesem Umfeld eine qualitätsgesicherte Nachverfolgbarkeit von Änderung über den gesamten Application Lifecycle zu ermöglichen. In der Session werden zunächst die technischen und organisatorischen Voraussetzungen für einen effektiveren Einsatz von Code-Reviews vorgestellt. Anschließend wird das Zusammenspiel verschiedener Tools zur nahtlosen Einbindung von Code-Reviews in den gesamten Entwicklungsprozess an Beispielen aus der Praxis gezeigt.

Video des Vortrages: https://www.youtube.com/watch?v=8ueIG3BAk9k

More Decks by Software Architektur Entwickler Community Dresden

Other Decks in Technology

Transcript

  1. Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de

    [email protected] Version: - Schneller, Billiger, Besser - Effektiver Einsatz von Code-Reviews 1.3 Dev Day in Dresden 27. Mai 2015
  2. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler Schwerpunkte Menschen Prozesse Architektur Code-Qualität 2
  3. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Agenda 3 Einsteiger Skeptiker Profis Code-Reviews? Noch nie gehört! Wir haben es ausprobiert. Es funktioniert nicht! Wir setzen Code-Reviews bereits erfolgreich ein und wollen noch besser werden.
  4. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Agenda 4 Warum Code- Reviews ? Do it! Die richtigen Tools Einsteiger Skeptiker Profis
  5. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    5 Kennen Sie das? „Das ist historisch gewachsen.“
  6. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    6 Oder das? „Das wollten wir schon lange refactoren.“
  7. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    7 …noch ein Klassiker „Thomas ist leider gerade im Urlaub“
  8. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    8 Es bleibt nie Zeit für das große Refactoring Code-Reviews als kontinuierliche Lösung
  9. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    12 Anerkennung Zeugnis _______ _______ ______ _____ _______ 1+
  10. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Qualität kostet Geld… 13 100 105 15 0 20 40 60 80 100 120 ohne Code-Review mit Code-Review Entwicklungskosten in % Code-Review Entwicklung
  11. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Langfristige Kostenentwicklung 14 ohne Code-Review mit Code-Review Bugfixing Code-Review Entwicklung Wissen
  12. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Qualität kostet Anstrengung… 15 Warum testen? Vertrauen Sie Ihrem eigenen Code nicht?
  13. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    16 Code-Reviews für alle? Projekt oder Produkt
  14. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Agenda 17 Warum Code- Reviews ? Do it! Die richtigen Tools Einsteiger Skeptiker Profis
  15. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Formale Inspektion nach Michael Fagan (1976) 18 Manager Moderator Autor Prüfer Schriftführer Planung Überblick Vorbereitung Inspektion Nacharbeit Nach- verfolgung
  16. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Formale Inspektion nach Michael Fagan (1976) 19 Manager Moderator Autor Prüfer Schriftführer Planung Überblick Vorbereitung Inspektion Nacharbeit Nach- verfolgung "Currently 1% of our code is inspected“ "We believe by the end of the year we can get it up to 7%."
  17. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Wann? 21 feature-x feature-z Code- Review Code- Review „Nach jedem Feature / Bugfix“
  18. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Wer? 22 Reviewer Code-Autor Einstiegspunkte Hinweise Erläuterungen Klickt Prüft Hinterfragt
  19. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Ein gemeinsames Ziel „Wir wollen unsere Anwendung gemeinsam besser machen“ 23
  20. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Stelle Fragen 24 Das ist falsch Was war der Grund für dein hier gewähltes Vorgehen?
  21. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Nicht zu viel … und nicht zu lange 25 http://support.smartbear.com/resources/cc/book/code-review-cisco-case-study.pdf 200 – 400 Zeilen 1 – 2 Stunden Dauer des Reviews Gefundene Fehler
  22. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Qualität kostet Geld… und deshalb messen! 27
  23. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Checkliste  Sinnvolle Namen?  Klare Struktur?  Korrekte Verwendung von Datentypen?  Kommentare?  Code smells?  Tests vorhanden?  Wohldefinierte Schnittstellen?  Exception-Handling?  I18N?  Typische Programmier-Fehler? 28
  24. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Guidelines • Sun Java Code Conventions • Clean Code • Tool-Standard-Konfiguration – Eclipse: Errors, Warnings und Formatter – Findbugs – PMD – Checkstyle 29
  25. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Agenda 30 Warum Code- Reviews ? Do it! Die richtigen Tools Einsteiger Skeptiker Profis
  26. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Schichtenarchitektur? 37 Controller ServiceImpl
  27. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Automatische Architektur-Tests 38 https://github.com/thorstenmaier/architecture-layer-check/ Controller ServiceImpl DaoImpl
  28. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Atlassian Stash 40 Issue-Tracker Jira Git CI-Server Bamboo Repo-Verwaltung Stash 1. Änderung 2. Build erfolgreich 3b. 4a. Status-Übergang 4b. Pull 3a. Pull-Request Autor
  29. Effektiver Einsatz von Code-Reviews © 2015 Orientation in Objects GmbH

    Fazit 42 Einsteiger Skeptiker Profis Wissen Be prepared KISS