Code Reviews – oder: Reden wir doch mal über Qualität made by MobiMedia.
Eine gute Softwarequalität ist mit der Faktor für den Erfolg einer Software, den wir als Entwickler maßgeblich mit beeinflussen können. Wenn wir als Entwickler gute Arbeit abliefern, ist der Kunde zufrieden, und potentiell auch die Software erfolgreicher.
MobiMedia hat schon immer manuelle Tests der Software durchgeführt. Im Laufe der Jahre haben wir dann auch immer mehr mit automatisierten Tests (zuerst Unit Tests) gearbeitet, später dann auch hin zu komplett automatisierten UI-Tests, welche die Bedienung der Software simulierten um sicherzustellen, dass bei jeder Codeänderung immer noch alles so funktioniert wie vorher.
Eine Frage der Ehre – oder: Warum wir bei MobiMedia so genau sind.
In diesem Beitrag soll es allerdings um eine andere Maßnahme gehen, die uns als Softwareentwickler und als Firma in den letzten Jahren einen sehr großen Mehrwert gebracht hat. Code Reviews sind ein angepasster Arbeitsprozess, bei dem ein Entwickler seine Codeänderung nicht direkt veröffentlicht, sondern erst einmal von einem anderen Entwickler (dem „Code Reviewer“) prüfen lässt. Der Code Reviewer kann die Arbeit kommentieren, Verbesserungsvorschläge bringen und am Ende die Arbeit entweder freigeben oder ablehnen. Bei Ablehnung hat der ursprüngliche Entwickler nochmal die Möglichkeit seinen Code zu verbessern, und erneut zum Code Review zu stellen. Dieser Kreislauf kann sich mehrmals wiederholen, bis der Code Reviewer nichts mehr anzumeckern hat, und praktisch beide Parteien mit der Änderung zufrieden sind.
Code Reviews als Kontrolle – Teamwork ist entscheidend.
Als wir noch keine Code Reviews machten, war am Ende nicht nur die Fehlerrate höher, sondern auch die Qualität des Quellcodes schlechter. Es gab viel mehr Insellösungen, weil Entwickler oft nur innerhalb ihrer Projekte Lösungen gebaut haben, obwohl ähnliche Lösungen vielleicht auch schon anderswo ziemlich genau so umgesetzt wurden.
Heute werden viele Fehler schon gefunden, bevor überhaupt irgendjemand die Software startet. Einfach aufgrund der Tatsache, dass ein Code Reviewer die Arbeit eines Entwicklers kontrolliert. Interessant ist, dass Code Reviews von Beginn an im Team und in der Firma sehr große Akzeptanz gefunden haben. Sie gehören heute genauso zum Arbeitsprozess, wie auch das eigentliche Entwickeln und das Testen der Software.
Durch den Code Review Prozess können wir auch neuen oder unerfahrenen Entwicklern schneller komplexere Aufgaben geben, da dazwischen immer ein erfahrener Entwickler steht, der die Arbeit kontrolliert. Daneben lösen Code Reviews auch automatisch das Problem von Krankheits- oder Urlaubsvertretungen, da wir mindestens immer zwei Entwickler haben, die mehr oder weniger über Änderungen bescheid wissen. Bei größeren Entwicklerteams können die Entwickler ihren Code untereinander kontrollieren, was sich positiv auf die Kommunikation im Team auswirkt, und oft auch zur Problemlösung beiträgt.
Wir nutzen eine Software mit dem Namen „Phabricator“ um den Code Review Prozess abzubilden. Damit können wir für eine Änderung sogar mehrere Code Reviewer bestimmen. In so einem Fall müssen mehrere Entwickler erst ihr OK geben, bevor eine Änderung durchgeht. Dies macht bei tieferen Eingriffen in den Quellcode Sinn, womit sich die Verantwortung auf mehrere Schultern verteilt und das Risiko durch Fehler vermindert.
Der einzige Nachteil von Code Reviews ist ein etwas erhöhter Zeit- und damit Kostenaufwand, da es immer mindestens einen zweiten Entwickler geben muss, der die Änderungen kontrolliert. Dies kann teilweise bis zu ein bis zwei Tagen Verzögerungen führen, wenn der Code Reviewer auch gerade voll ausgelastet ist.
Am Ende haben Code Reviews aber vor allem eines bei MobiMedia verändert: der Team-Gedanke in der Entwicklung ist stärker denn je. Wir kommunizieren mehr miteinander, kritisieren miteinander und lösen Probleme miteinander. Daraus ergibt sich ein Mehrwert für uns als Firma in Form eines besseren Arbeitsklimas und für unsere Kunden in Form einer besseren Softwarequalität.
Autor: C. Zeller, Leiter Entwicklungsabteilung MobiMedia AG
Entdecken Sie MobiMedias Stärken
Rottpark 24
+49 8561 96160
info@
mobimedia.de