
Code Review
Ein Code Review ist die Prüfung neuer Programmzeilen durch andere Personen, bevor diese Änderung Teil des fertigen Produkts wird. Es ist in der Softwareentwicklung der wichtigste Filter gegen Fehler, unnötige Komplexität und Sicherheitslücken.
Software besteht aus Text, den Menschen schreiben: aus Anweisungen in einer Programmiersprache, dem sogenannten Code. Wenn jemand daran etwas ändert, landet diese Änderung nicht sofort im fertigen Produkt. Vorher schaut mindestens eine andere Person den geänderten Text durch und kommentiert ihn. Genau das ist ein Code Review. Es funktioniert ähnlich wie das Gegenlesen einer Hausarbeit, nur dass hier nicht Rechtschreibung geprüft wird, sondern ob die Anweisungen richtig, verständlich und sicher sind. Erst wenn die prüfende Person zustimmt, wird die Änderung übernommen.
Der letzte Filter vor dem Livegang
Fehler in Software sind unterschiedlich teuer, je nachdem, wann man sie findet. Wer einen Fehler beim Review entdeckt, korrigiert ihn in Minuten. Wer denselben Fehler entdeckt, nachdem Millionen Menschen die App benutzen, hat es mit Ausfällen, Datenverlust oder verärgerten Kunden zu tun. Reviews sind deshalb kein bürokratisches Ritual, sondern schlicht die billigste Stelle, an der man Probleme abfangen kann.
Ein zweiter Nutzen ist die Verteilung von Wissen. Wenn nur eine Person versteht, wie ein bestimmter Teil des Systems funktioniert, ist das ein Risiko für das Unternehmen. Durch Reviews lesen mehrere Leute regelmäßig fremden Code und lernen dabei das System kennen. Jüngere Entwicklerinnen und Entwickler bekommen außerdem Rückmeldung zu ihrem Stil, was Reviews zu einer Art laufender Ausbildung macht.
Dazu kommt der Nachweis nach außen. In Banken, in der Medizintechnik oder bei Behörden gibt es Vorschriften, dass Änderungen an Software von einer zweiten Person freigegeben werden müssen. Das Review erzeugt dabei ganz nebenbei ein Protokoll: Man kann später nachlesen, wer wann was geprüft und begründet hat.
Vom Änderungsvorschlag bis zur Freigabe
Der Ablauf ist in fast allen Firmen ähnlich. Eine Entwicklerin arbeitet zunächst in einer eigenen Kopie des Projekts, damit ihre halbfertige Arbeit niemanden stört. Ist sie fertig, stellt sie einen Änderungsantrag, im Englischen Pull Request genannt. Darin sieht man Zeile für Zeile, was vorher stand und was jetzt dort steht. Alte Zeilen sind meist rot markiert, neue grün.
Die prüfende Person geht diese Zeilen durch und schreibt Kommentare direkt an die betroffene Stelle. Typische Fragen sind: Funktioniert das auch in Ausnahmefällen? Ist der Name dieser Variable verständlich? Gibt es dafür schon eine Lösung an anderer Stelle? Wurde ein automatischer Test ergänzt? Danach bessert die Autorin nach, und die Runde wiederholt sich, bis eine Zustimmung erteilt wird.
Vieles davon erledigen inzwischen Maschinen vorab. Automatische Prüfprogramme kontrollieren Formatierung und bekannte Fehlermuster, Tests laufen von selbst. Seit einigen Jahren schreiben zusätzlich KI-Assistenten erste Kommentare zu einem Änderungsantrag. Sie sind gut darin, Flüchtigkeitsfehler zu finden, erkennen aber schlecht, ob eine Lösung fachlich überhaupt sinnvoll ist. Die endgültige Freigabe erteilt deshalb weiterhin ein Mensch.
Grüne Häkchen auf GitHub und das Vier-Augen-Prinzip
Am sichtbarsten sind Code Reviews auf Plattformen wie GitHub oder GitLab. Dort liegt der Code sehr vieler Projekte offen im Netz, auch der von großen Firmen. Man kann live mitlesen, wie über einzelne Zeilen diskutiert wird. Ein grünes Häkchen bedeutet: geprüft und freigegeben. Wer sich für Programmieren interessiert, kann diese Diskussionen ohne Anmeldung durchlesen.
In Nachrichten taucht das Thema meist nach einem Zwischenfall auf. Nach großen Störungen oder Sicherheitslücken lautet die Frage regelmäßig, ob die fehlerhafte Änderung überhaupt geprüft wurde. Auch bei Angriffen auf Open-Source-Projekte, wo Angreifer heimlich Schadcode einschleusen wollen, ist das Review die Stelle, an der es hätte auffallen müssen.
Verwechseln sollte man Code Review nicht mit Testen. Tests prüfen, ob das Programm sich richtig verhält, ein Review prüft, wie es geschrieben ist. Beides ersetzt einander nicht. Und ein verbreiteter Irrtum ist, Reviews seien vor allem Fehlersuche. In der Praxis geht es häufiger um Lesbarkeit, denn Code wird viel öfter gelesen als geschrieben.