Facebook
Twitter
Google+
Kommentare
0

Lessons Learned @ NZZ – Teil3 – Code Reviews

Heute möchte ich über das Thema Code Reviews berichten.

Vorgeschichte

In der NZZ haben wir Ende des letzten Jahres unsere Code Repositories in Richtung Github gezügelt. Weil das Entwicklerteam in kurzer Zeit sehr stark gewachsen ist, mussten wir Wege finden, die Codequalität auf einem hohen Stand zu etablieren. Dies haben wir mit Code Reviews und Pull Requests auf Github versucht.

Der Prozess

Ein neues Feature/Bugfix wird in einem neuen Branch, vorzugsweise mittels Pairprogramming, entwickelt. Sind der/die Entwickler der Meinung, dass Feature sei fertig, wird auf Github ein so genannter Pull Request eröffnet. Ein Pull Request zeigt die Unterschiede zwischen 2 Branches an (z.B. zwischen dem develop und dem feature Branch). Der Reviewer (Auch ein Entwickler, aber keiner der das Feature implementiert hat), macht nun folgende Dinge.

  • Unittests durchlaufen lassen
  • Stylechecks durchlaufen lassen
  • Reviewen der Differenzen vom Pull Request
  • Feedback auf der Github Plattform bezüglich Mängeln

Ist alles ok, integriert der Reviewer den Code in den develop Branch. Gibt es Mängel, sind die Entwickler wieder in der Pflicht und müssen die Mängel beheben. Dieses Ping Pong Spiel geht so lange weiter, bis der Reviewer der Meinung ist, dass alles ok ist.

Fazit

Als wir die Idee mit den Codereviews auf Github hatten, dachten wir, dass dies eine Verbesserung der Codequalität bringen könnte.

Der Effekt war aber deutlich grösser als erwartet. Die Qualität hat sich massiv gesteigert und die Knowhowverteilung ist auch besser geworden, da nun immer 2-3 Leute den Code kennen.

Da ich selber auch Reviewer bin, kann ich folgende Dinge dazu sagen:

  • Code-Reviews haben sehr positive Auswirkungen auf die innere Qualität eines Projektes
  • Code reviewen ist sehr streng/anspruchsvoll
  • Entwickler lernen sehr viel aus den Feedbacks
  • Als Reviewer lernt man selber auch sehr viel dazu
  • Knowhow verteilt sich noch besser
  • Checkstylefehler, schlechte Variablennamen usw. sind einfach zu finden. Softwaredesignfehler sind aber sehr schwierig auszumachen und werden häufig zu wenig genau unter die Lupe genommen
  • Wenn man es seriös macht, benötigen Code Reviews sehr viel Zeit. Wenn man also unter Zeitdruck ist, leidet häufig auch die Qualität der Reviews

 

Was denkt Ihr über Code Reviews? Sind diese sinnvoll und wenn ja, warum? Oder sind sie nur Arbeitsbeschaffung?

 


flattr this!

Über den Autor

Daraff

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen