Elena Hollen über Code Reviews und Extreme Programming

Elena Hollen über Code Reviews und Extreme Programming – Anwendungsentwickler-Podcast #123

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.

Probeabo bei Audible (Affiliate)

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?
  • 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?

Literaturempfehlungen

Extreme Programming Explained: Embrace Change (Affiliate)*

Soft Skills:The software developer's life manual (Affiliate)*

Links

Probeabo bei Audible (Affiliate)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax