Elena Hollen hat ihre Bachelorarbeit über Code Reviews und Extreme
Programming geschrieben und erzählt mir alles darüber in der
einhundertdreiundzwanzigsten Episode des
Anwendungsentwickler-Podcasts. TL;DR Mit Code Reviews findest du
Fehler früh und lernst durch den Austausch über fremden Code.
Gemeinsam mit Elena Hollen habe ich bei der Alte Oldenburger
erprobt, wie sich Reviews im Arbeitsalltag einführen lassen: In
drei Wochen entstanden bei 26 Reviews rund 350 Anmerkungen und 18
gefundene Fehler in 30.000 Codezeilen. Als IT-Azubi kannst du dabei
auch erfahrenen Entwickler:innen Feedback geben und andere
Lösungswege kennenlernen. Für den Einstieg reichen Kommentare im
Code und eine Versionsverwaltung, wobei du Zeit für die Reviews
einplanen und respektvoll über den Code sprechen solltest.
Kapitelmarken [00:00:00] Einstieg ins Thema Code Reviews [00:01:03]
Elena Hollen und ihre Arbeit mit technischen Dokumenten [00:04:02]
Weg in die IT und bevorzugte Programmiersprache [00:06:24]
Bachelorarbeit zu Softwarequalität und Extreme Programming
[00:07:34] Werte und Praktiken von Extreme Programming [00:09:16]
Feedback und Kommunikation durch Code Reviews [00:10:49] Was ein
Code Review ist und welche Formen es gibt [00:12:06] Qualität und
Wartbarkeit durch Reviews verbessern [00:13:33] Offline-Reviews in
der ersten Testphase [00:15:42] Checklisten und gemeinsame
Programmierregeln [00:17:03] Statische Codeanalyse und Best
Practices im Wiki [00:19:09] Fragebogen zum Auswerten der Reviews
[00:20:53] Ergebnisse aus 26 Reviews [00:22:25] Austausch über
Codequalität im Team [00:23:48] IT-Azubis reviewen erfahrene
Entwickler:innen [00:25:06] Respektvoll über Code sprechen
[00:26:45] Aufwand und mögliche Schwierigkeiten [00:28:03] Reviews
einführen und in den Arbeitsablauf einbauen [00:29:54] Fachlichen
Kontext geben und Code während der Entwicklung prüfen [00:30:48]
Reviews mit Pair Programming und TDD verbinden [00:31:32] Fachliche
Fehler im Code erkennen [00:32:09] Anforderungen an
Review-Werkzeuge [00:34:37] Erfahrungen mit Agile Review [00:35:42]
Gemeinsame Snippets und einheitliche Review-Kommentare [00:37:51]
Reviews mit Code-Kommentaren und Versionsverwaltung [00:38:48]
Freiwillige Reviews im weiteren Arbeitsalltag [00:42:06]
Wirtschaftliche Gründe und Unterstützung durch Führungskräfte
[00:45:06] Bücher zu Extreme Programming und Soft Skills [00:47:30]
Fachbücher und weitere Quellen zum Lernen [00:50:33] Regelmäßige
Code Reviews in meiner Ausbildung [00:51:14] Rückblick und
Kontaktmöglichkeiten Inhalt Allgemeines zur Person Wie ist dein
Name und wo arbeitest du? Elena Hollen, Technische Redakteurin bei
der ALTE OLDENBURGER Krankenversicherung AG An welchen Projekten
arbeitest du zur Zeit in deinem Tagesjob? Technische Redaktion,
Toolauswahl für Code Reviews, viel schreiben,
Compliance-Anforderungen, DSGVO, Dokumentation für den Fachbereich
Wie bist du zur Informatik bzw. Softwareentwicklung gekommen? Nach
der Realschule bin ich auf ein Fachgymnasium Wirtschaft gewechselt
und habe dort im Abitur bereits etwas über Informatik gelernt, z.B.
PHP, HTML, CSS, SQL, Excel. Der Bereich BWL hat mir aber auch viel
Spaß gemacht. Ich bin kein "klassischer" Nerd! :-) Aber ich mag es
sehr, Probleme zu lösen. Meine persönliche Entscheidung war dann
aber nach der Ausbildung, dass ich nicht 24/7 programmieren möchte.
Daher habe ich die Stelle als technische Redakteurin angenommen.
Welche Ausbildung bzw. welches Studium hast du im Bereich der
Informatik absolviert? Ausbildung zur Fachinformatikerin
Anwendungsentwicklung, dann duales Studium der
Wirtschaftsinformatik in Lingen, aktuell Master in
Wirtschaftsinformatik an der Ostfalia. Was ist deine
Lieblingsprogrammiersprache und warum? Java, da in Ausbildung und
Studium gelernt und auch aktuell im Einsatz. Code Reviews und
Extreme Programming Worum geht es in deiner Bacherlorarbeit (z.B.
Thema, Zielsetzung)? Code Reviews zur Steigerung der Codequalität.
Ich habe eine Studie zu Code Reviews bei der ALTE OLDENBURGER
durchgeführt. Ziel war die Verbesserung der Kommunikation und
Feedback. Was ist Extreme Programming und wer braucht das? Extreme
Programming wurde von Kent Beck entwickelt. Es legt den Fokus auf
den Menschen. Die Werte sind u.a. Feedback und Kommunikation, die
Prinzipien z.B. Menschlichkeit und Praktiken sind z.B. TDD und Code
Reviews. Was sind Code Reviews? Eine manuelle Prüfung von Code ohne
Automatisierung. Der Code, der von einem Autor erstellt wird, wird
von einem Reviewer kontrolliert. Was sind die Ziele von Code
Reviews? Fehler finden, Selbstkontrolle, Einheitlichkeit des Codes,
langfristige Wartbarkeit. Welche Varianten von Code Reviews gibt
es? Walkthrough, Review mit Checkliste, Inspektion mit
detaillierten Phasen. Was wurde bei der AO gemacht? Einfache
Reviews ohne Checkliste. Es gab einen Leitfaden mit Fragen, z.B.
Anzahl Lines of Code gereviewt, Fehler/Anmerkungen gefunden,
technischer Mehrwert und was habe ich gelernt? Die Auswertung war
auch eine gute Begründung für den Chef. Es gab eine Testphase mit
17 Entwicklern, die 1x pro Woche ein Review durchgeführt haben.
Insgesamt wurden 26 Reviews durchgeführt. Was sind die Vor- und
Nachteile von Code Reviews? Vorteile: Einfacher Start ohne großen
Aufwand möglich. Eine Checkliste sollte gemeinsam erarbeitet
werden. Best Practices ergeben sich im Prozess. Nachteile: Gefühl
von Kontrolle. Es entstehen Kosten (Arbeitszeit), der Chef sollte
also gefragt werden. Was sind die Ergebnisse deiner praktischen
Studie zu Code Reviews in der AO? 30.000 LOC gereviewt, 18 Fehler
gefunden, 350 Anmerkungen geschrieben, Wissenssilos aufgebrochen,
viel gelernt (jeder Teilnehmer), Anregung über Qualität
nachzudenken, Austausch mit anderen Entwicklern, keine Probleme
aufgetreten, zwischenmenschlich hat es super geklappt. Welche
praktischen Tipps für die Einführung von Code Reviews hast du? Zu
Beginn muss oft eine ablehnende Haltung der Entwickler überwunden
werden. Ein Kümmerer als Ansprechpartner ist nötig. Eine
Integration in den Entwicklungsprozess ist nötig. Das Feedback der
Teilnehmer muss berücksichtigt werden. Zu Beginn sollte erstmal
eine Einführung in den zu reviewenden Code gegeben werden, damit
der Reviewer weiß, worum es geht. Perfekter Code ist nicht nötig!
Fachliche Fehler können gefunden werden. Macht Pair Programming
Code Reviews überflüssig? Nein, sie bilden eine Symbiose, auch TDD
passt gut dazu. Können auch Azubis schon Code Reviews durchführen?
Ja! Ein Austausch mit langjährigen Entwicklern war möglich. Andere
Meinungen werden diskutiert. Es wurden viele Fragen gestellt. Und
sogar Anmerkungen von Azubis wurden umgesetzt. Welche Tools
benötigt man für Code Reviews? Erstmal sind keine Tools nötig,
Kommentare im Code reichen. Tool ist evtl. Overkill im Prozess. Es
gibt aber viele Tools am Markt. Zunächst sind die eigenen
Anforderungen zu klären und dann ein Tool zu suchen (z.B.
IDE-Plugin, Git, keine DB, Gruppenverwaltung). Fehler vs.
Anmerkungen sollten unterschieden werden können. Wie geht es mit
den Code Reviews bei der AO weiter? Jeder Entwickler entscheidet
selbst, ob und wie oft Code Reviews durchgeführt werden. Tool
suchen. Es gibt keine Kontrolle, die war nur für die Bachelorarbeit
nötig. Langfristige Motivation ist nötig, ein Kümmerer ist
sinnvoll. Code Reviews werden bereits in die Ausbildung integriert.
Kann man die Einführung von Code Reviews auch monetär begründen? Na
klar! Wann sind Fehler am teuersten? Wenn der Code schon auf der
Produktion läuft! Wir haben in 3 Wochen 18 Fehler gefunden, und
zwar vor derm Deployment! Das Management muss von Anfang an
einbezogen werden. Aus- und Weiterbildung Was ist das letzte
Fachbuch mit Bezug zur Programmierung, das du selbst gelesen hast?
Soft Skills von John Sonmez. Was ist dein absolutes Lieblingsbuch
mit Bezug zur IT/Programmierung und warum? Extreme Programming
Explained von Kent Beck (bitte auf Englisch!). Welche Quellen
kannst du für die Aus- und Weiterbildung im Bereich Programmierung
empfehlen und warum? Wissenschaftliches Arbeiten macht Spaß und man
lernt sehr viel dabei. Quellen sind u.a. Springerlink und Google
Scholar. Auf GitHub findet man viel Code, an dem man selbst lernen
kann. Abschluss Wo können die Hörer mehr über dich erfahren bzw.
dich kontaktieren? Auf Xing, LinkedIn oder Twitter.
Literaturempfehlungen * * Links Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts Snipmatch AgileReview Zusammenfassung Wie
Elena zum Thema kam Bei der Alte Oldenburger hat Elena Hollen ihre
Ausbildung zur Fachinformatiker:in für Anwendungsentwicklung bei
mir abgeschlossen und anschließend Wirtschaftsinformatik studiert.
Nach ihrem Bachelor begann sie ein berufsbegleitendes
Masterstudium. Beruflich schreibt sie technische Dokumente und
kümmert sich darum, wie diese geordnet und gepflegt werden. Dabei
arbeitet sie mit Fachabteilungen und IT-Kolleg:innen zusammen, etwa
wenn Abläufe beschrieben oder rechtliche Vorgaben berücksichtigt
werden müssen. Über den Informatikunterricht am
Wirtschaftsgymnasium fand sie zur Anwendungsentwicklung. Java blieb
ihre bevorzugte Programmiersprache, auch nachdem sie sich beruflich
stärker mit Dokumenten beschäftigte. Der Bezug zu Extreme
Programming Für ihre Bachelorarbeit untersuchte Elena, wie
Praktiken aus Extreme Programming (XP) die Softwarequalität im
Unternehmen verbessern können. Das von Kent Beck entwickelte agile
Vorgehen richtet sich an kleine bis mittelgroße Projekte und stellt
die Menschen, die Software entwickeln, in den Mittelpunkt. Aus
abstrakten Werten ergeben sich Prinzipien, aus denen konkrete
Praktiken folgen. Beispielsweise gehört Feedback zu den Werten;
Test-Driven Development ist eine konkrete Praktik. Code Reviews
greifen den Wunsch nach Rückmeldungen auf und schaffen einen
Anlass, mit anderen Entwickler:innen über Code zu sprechen. Bei der
Alte Oldenburger kamen bereits einzelne XP
Kommentare (0)
Melde dich an, um einen Kommentar zu schreiben.