Code Reviews einführen, ohne dass sie zum Nadelöhr werden
Die drei Stellschrauben sind Größe, Frist und die Frage, was die Maschine vorher schon erledigt. Alles andere folgt daraus.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Das Review wird zum Stau, und dann wird es abgeschafft
Die Einführung verläuft fast immer gleich. Ein Team beschließt, dass ab sofort jede Änderung gegengelesen wird, und macht sonst nichts anders. Danach liegen Änderungen zwei Tage, weil alle mit ihrer eigenen Arbeit beschäftigt sind. Wer wartet, fängt derweil eine zweite Sache an, und die dritte gleich mit. Nach zwei Wochen stehen sechs Pull Requests offen, die aufeinander aufbauen, und niemand traut sich mehr, an einem davon etwas Grundsätzliches anzumerken.
Ab hier kippt der Nutzen. Ein Review, das drei Tage später kommt, trifft auf jemanden, der gedanklich woanders ist, und jede Anmerkung fühlt sich wie ein Rückschritt an. Große Änderungen verstärken das: Wer zweitausend Zeilen vor sich hat, liest die ersten zweihundert genau und den Rest quer. Die Kommentare betreffen dann Benennung und Formatierung, weil das die einzigen Dinge sind, die sich beim Querlesen erkennen lassen.
Der dritte Schritt ist die stille Abschaffung. Jemand erklärt eine Änderung für dringend und führt sie ohne Review zusammen, und weil nichts passiert, wird das zur Ausnahme, die man sich merkt. Nach einem halben Jahr gilt das Review formal weiter und findet faktisch nur noch bei denen statt, die neu im Team sind. Ab da erfüllt es keinen der Zwecke mehr, für die es eingeführt wurde.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Der Ablauf, Schritt für Schritt
Sechs Stationen von der Zweckbestimmung bis zur Nachmessung. Die Reihenfolge ist nicht beliebig: Wer die Automatisierung erst nach der Einführung angeht, verbringt die ersten Monate mit Kommentaren zur Formatierung.
- 1
Den Zweck bestimmen und aufschreiben
Setzt euch für eine Stunde zusammen und einigt euch auf höchstens zwei Zwecke. In den meisten Teams sind das Wissensverteilung und das Einhalten gemeinsamer Konventionen, während das Finden von Fehlern in der Praxis eher ein Nebeneffekt ist. Die Untersuchung von Sadowski und Kollegen zu Reviews bei Google beschreibt genau diese Verschiebung: Eingeführt wurde das Verfahren, um Fehler zu finden, gehalten wird es heute vor allem wegen der gemeinsamen Kenntnis des Codes.
Geschafft, wenn: Zwei Sätze in eurer Arbeitsanweisung, an denen sich später jede Streitfrage entscheiden lässt.
- 2
Die Pipeline zuerst aufsetzen
Bevor die erste Änderung gegengelesen wird, laufen Formatierung, Linting, Typprüfung und die schnellen Tests automatisch, und ihr Ergebnis steht sichtbar am Pull Request. Die Formatierung stellt ihr am besten so ein, dass sie beim Speichern oder beim Commit von selbst passiert, damit sie nie zum Gesprächsthema wird. Alles, was hier hängen bleibt, taucht später als Kommentar auf und kostet doppelt.
Geschafft, wenn: Kein Review beginnt, bevor die maschinelle Prüfung durchgelaufen ist.
- 3
Größe und Frist festlegen
Vereinbart eine Obergrenze für die Änderungsgröße, ab der ihr um Aufteilung bittet, und eine Frist für die erste Reaktion. Als Orientierung: Bei Google ändert die typische Änderung wenige Dutzend Zeilen und ist im Mittel in unter vier Stunden durch, und rund siebzig Prozent der Änderungen sind weniger als vierundzwanzig Stunden nach dem Verschicken zusammengeführt. Eure Zahlen werden andere sein, aber die Größenordnung ist erreichbar.
Geschafft, wenn: Zwei Zahlen, die jeder im Team nennen kann, ohne nachzusehen.
- 4
Die Zuständigkeit klären
Legt fest, wer für welchen Bereich gegenliest, und macht das über die Verzeichnisstruktur automatisch zuordenbar, damit niemand suchen muss. Eine Person reicht als Regel. Definiert die wenigen Ausnahmen, in denen eine zweite dazukommt, und definiert ebenso, was passiert, wenn die zuständige Person im Urlaub ist. Ohne diese zweite Regel entstehen genau dort die Staus.
Geschafft, wenn: Jeder Pull Request hat innerhalb von Minuten eine benannte Person, ohne dass jemand fragt.
- 5
Konventionen für Kommentare einführen
Zwei Vereinbarungen reichen für den Anfang. Erstens eine Kennzeichnung, die blockierende Anmerkungen von Vorschlägen und reinen Anmerkungen unterscheidet, etwa über ein kurzes Vorwort im Kommentar. Zweitens die Regel, dass eine Grundsatzdiskussion nicht im Pull Request geführt wird, sondern in einem Gespräch, dessen Ergebnis danach als ein Kommentar erscheint. Beides verhindert die zähen Kommentar-Threads, an denen Reviews sterben.
Geschafft, wenn: Wer einen Pull Request liest, sieht in Sekunden, was ihn blockiert und was nicht.
- 6
Nach drei Monaten nachmessen
Erhebt vier Zahlen: die Zeit bis zur ersten Reaktion, die Zeit bis zum Zusammenführen, die Größe der Änderungen und die Zahl der Runden je Pull Request. Bei Google kommen über achtzig Prozent der Änderungen mit höchstens einer Überarbeitungsrunde aus. Wenn bei euch der Mittelwert bei drei liegt, sind die Änderungen zu groß oder der Zweck ist unklar, und dann setzt ihr dort an und nicht bei der Disziplin der Beteiligten.
Geschafft, wenn: Vier Zahlen mit Verlauf, an denen sich der nächste Eingriff begründen lässt.
Fünf Stellschrauben, an denen ein Review steht oder fällt
- 01 Größe: Passt die Änderung in eine Sitzung? Sonst wird nur die erste Hälfte gelesen.
- 02 Frist: Kommt die erste Reaktion am selben Arbeitstag? Sonst beginnt der Stau.
- 03 Anzahl: Reicht eine gegenlesende Person? Jede weitere verdoppelt die Wartezeit.
- 04 Automatik: Erledigt die Pipeline Formatierung, Typen und Tests, bevor jemand liest?
- 05 Ton: Ist erkennbar, was blockiert und was ein Vorschlag ist? Sonst blockiert gefühlt alles.
Woran ihr das Review aufhängt
Sechs Festlegungen, die vor dem ersten Pull Request getroffen gehören. Sie regeln Größe, Frist, Zuständigkeit, Automatisierung, Umgangston und die Frage, woran ihr merkt, dass es funktioniert.
Zuerst den Zweck festlegen
Ein Review kann Fehler finden, Wissen verteilen, Konventionen durchsetzen oder eine Freigabe dokumentieren. Diese vier Zwecke verlangen unterschiedliche Formate, und die meisten Teams verfolgen alle vier gleichzeitig, ohne das je ausgesprochen zu haben. Schreibt auf, welche zwei davon bei euch gelten, und richtet den Rest daran aus.
Die Änderungsgröße begrenzen und das ernst meinen
Kleine Änderungen sind der wirksamste Hebel überhaupt, weil sie schneller gelesen, genauer verstanden und früher zurückgemeldet werden. Bei Google ändert die typische Änderung wenige Dutzend Zeilen, über ein Drittel betrifft nur eine einzige Datei. Setzt eine Größe fest, ab der jemand um Aufteilung bittet, statt trotzdem zu lesen.
Eine Frist für die Rückmeldung vereinbaren
Googles interne Anleitung nennt einen Arbeitstag als Höchstgrenze für die erste Reaktion, ausdrücklich nicht für das fertige Review. Der Unterschied ist wichtig: Es geht darum, dass niemand ohne Rückmeldung dasteht, nicht darum, dass jede Arbeit sofort unterbrochen wird. Legt eure eigene Frist fest und macht sie sichtbar, sonst gilt sie nicht.
Eine gegenlesende Person als Regel, nicht zwei
Zwei Zustimmungen fühlen sich sicherer an und kosten das Doppelte an Wartezeit. Bei Google haben weniger als ein Viertel der Änderungen mehr als eine gegenlesende Person, der Mittelwert liegt bei genau einer. Legt fest, für welche wenigen Fälle ihr eine zweite Person braucht, etwa bei sicherheitsrelevanten Stellen oder bei Datenmigrationen, und lasst es sonst bei einer.
Alles automatisieren, worüber niemand diskutieren muss
Formatierung, Importreihenfolge, Namenskonventionen, offensichtliche Fehlermuster, Typprüfung und die Testläufe gehören in die Pipeline und nicht in einen Kommentar. Jede Anmerkung, die eine Maschine hätte machen können, verbraucht Aufmerksamkeit, die für die fachliche Frage gefehlt hat, und erzeugt beim Gegenüber das Gefühl, kleinlich behandelt zu werden.
Den Ton verbindlich machen
Untersuchungen zu Reviews benennen den Ton als eine der häufigsten Störquellen, und Kommentare mit abwertendem Unterton sind messbar weniger nützlich. Ein paar Konventionen reichen: Fragen statt Urteile, Vorschläge als Vorschläge kennzeichnen, blockierende von nicht blockierenden Anmerkungen unterscheiden. Das ist kein Höflichkeitsritual, es verändert, was zurückkommt.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Die Größe der Änderung ist der stärkste Hebel
Die Untersuchung von Sadowski und Kollegen zu Reviews bei Google liefert dazu ungewöhnlich konkrete Zahlen. Über fünfunddreißig Prozent der betrachteten Änderungen betreffen nur eine einzige Datei, rund neunzig Prozent weniger als zehn Dateien, über zehn Prozent ändern eine einzige Zeile, und der Median liegt bei vierundzwanzig geänderten Zeilen. Zum Vergleich nennt dieselbe Arbeit Werte aus anderen Unternehmen, die deutlich darüber liegen, in einem Fall bei über zweihundertsechzig Zeilen.
Der Zusammenhang mit der Qualität des Reviews ist gut belegt und in der Arbeit ausdrücklich benannt: Je größer die Änderung, desto weniger nützliche Kommentare entstehen und desto länger dauert der Durchlauf. Das ist keine Frage der Disziplin, sondern der Aufmerksamkeitsspanne. Wer vierzig Dateien vor sich hat, kann nicht mehr im Kopf behalten, was in Datei drei stand, als er Datei siebenunddreißig liest.
Für die Einführung folgt daraus die unbequemste Aufgabe: Ihr müsst lernen, Arbeit in kleine, für sich sinnvolle Schritte zu zerlegen. Das ist eine Fähigkeit, die geübt werden muss, und sie hat mit dem Review selbst gar nichts zu tun. Hilfsmittel sind ein Refactoring getrennt von der Verhaltensänderung, ein vorbereitender Umbau als eigener Pull Request und Feature-Flags, mit denen unfertige Arbeit gefahrlos zusammengeführt werden kann.
Geschwindigkeit schlägt Gründlichkeit
Googles öffentlich verfügbare Anleitung für gegenlesende Personen stellt das Prinzip an den Anfang: Optimiert wird die Geschwindigkeit, mit der ein Team gemeinsam ein Produkt herstellt, nicht die Geschwindigkeit einer einzelnen Person. Konkret heißt das, dass ein Arbeitstag die Höchstgrenze für die erste Reaktion ist und dass mehrere Runden im Idealfall an einem Tag stattfinden. Ausdrücklich nicht gemeint ist, dass jede eigene Arbeit sofort unterbrochen wird, denn der Verlust an Konzentration kostet das Team mehr, als die Wartezeit einbringt.
Die Zahlen aus der Untersuchung passen dazu. Die Wartezeit auf eine erste Rückmeldung liegt im Mittel unter einer Stunde bei kleinen Änderungen und bei etwa fünf Stunden bei sehr großen, der gesamte Durchlauf im Mittel unter vier Stunden. Der Aufwand je Person liegt bei durchschnittlich gut drei Stunden pro Woche für das Gegenlesen. Das ist eine ehrliche Zahl für die Kapazitätsplanung und deutlich weniger, als die meisten Teams befürchten, wenn sie über die Einführung diskutieren.
Der praktische Umgang mit diesem Spannungsfeld ist ein fester Zeitpunkt statt ständiger Unterbrechung. Zwei feste Fenster am Tag, an denen offene Pull Requests abgearbeitet werden, halten die Frist ein, ohne die eigene Arbeit zu zerhacken. Wichtig ist nur, dass diese Fenster tatsächlich im Kalender stehen und nicht als guter Vorsatz existieren.
Diese Richtung wird von außen bestätigt. Die Auswertungen von DORA finden keinen Beleg dafür, dass ein förmlicher externer Freigabeprozess, etwa über ein Änderungsgremium, zu weniger fehlgeschlagenen Auslieferungen führt. Was stattdessen wirkt, ist das Gegenlesen durch Kollegen im Entwicklungsablauf selbst, zusammen mit automatisierten Prüfungen. Der Grund ist derselbe wie bei der Größe: Ein langsamer Freigabeweg führt zu größeren Paketen, die seltener ausgeliefert werden, und genau das erhöht das Risiko, statt es zu senken.
Was die Maschine übernimmt und was nicht
Alles, was eine eindeutige richtige Antwort hat, gehört in die Pipeline: Formatierung, Importreihenfolge, ungenutzte Variablen, bekannte Fehlermuster, Typprüfung, Abhängigkeiten mit gemeldeten Schwachstellen und natürlich die Tests. Wenn diese Dinge in Kommentaren auftauchen, verbrauchen sie die Aufmerksamkeit, die für die fachliche Frage gebraucht wird, und sie erzeugen beim Gegenüber verlässlich Ärger, weil sie sich nach Schulmeisterei anfühlen.
KI-gestützte Assistenten haben in diesem Bild einen klaren Platz, nämlich als Vorprüfung vor dem menschlichen Review. Wer die eigene Änderung erklären lässt, sich auf offensichtliche Lücken hinweisen lässt und fehlende Testfälle vorschlagen lässt, kommt mit einem saubereren Stand ins Review. Was ein Assistent nicht ersetzt, ist die Freigabe, denn dafür braucht es eine Person, die für die Änderung im Betrieb geradesteht und die den fachlichen Zusammenhang kennt.
Übrig bleibt für Menschen genau das, wofür sie gebraucht werden: Ist der gewählte Weg der richtige, passt die Änderung zur bestehenden Architektur, ist das fachliche Verhalten in den Randfällen richtig, wird hier eine Entscheidung getroffen, die später schwer zurückzunehmen ist. Diese vier Fragen kann keine Prüfung automatisieren, und ein Review, das sich auf sie beschränkt, ist in zwanzig Minuten fertig.
Ton, Macht und die Gründe, warum Reviews scheitern
Dieselbe Untersuchung benennt für Google trotz jahrelanger Verfeinerung mehrere wiederkehrende Störquellen. Zwei davon sind sozialer Natur. Die erste ist der Ton: Kommentare mit abwertendem Unterton sind messbar weniger nützlich, weil sie beim Gegenüber Verteidigung auslösen statt Nachdenken. Die zweite ist Macht: Das Verfahren lässt sich benutzen, um jemanden zu einer Verhaltensänderung zu zwingen, etwa indem eine Zustimmung hinausgezögert oder zurückgehalten wird.
Genannt wird außerdem die Distanz, sowohl räumlich als auch organisatorisch. Wenn die gegenlesende Person in einem anderen Team oder in einer anderen Zeitzone sitzt, entstehen Verzögerungen und Missverständnisse. Für verteilte Teams heißt das nicht, dass Reviews nicht funktionieren, sondern dass die Verabredung über die Frist umso wichtiger ist und dass Grundsatzfragen früher in ein Gespräch gehören.
Die vierte Störquelle ist der Streit darüber, was überhaupt Gegenstand des Reviews ist. Wenn jemand eine Entwurfsentscheidung erst im Pull Request angreift, obwohl sie zwei Wochen vorher hätte besprochen werden können, ist das für beide Seiten unbefriedigend. Die Abhilfe ist ein Format davor: eine kurze Abstimmung über den Weg, bevor Code entsteht. Was danach im Review noch angesprochen werden darf, ist die Umsetzung, nicht der Weg.
Reviews in einem bestehenden Team einführen
Der schwierigste Fall ist nicht das neue Team, sondern das eingespielte, das bisher ohne Review gearbeitet hat. Dort trifft die Einführung auf die berechtigte Sorge, dass jemand die eigene Arbeit bewertet, und auf die Erfahrung, dass es bisher auch so ging. Ein Erlass von oben erzeugt in dieser Lage formale Zustimmungen ohne Inhalt, also Freigaben nach zwanzig Sekunden.
Was funktioniert, ist ein enger erster Zuschnitt: Reviews zunächst nur für einen klar umrissenen Bereich, etwa für Änderungen an einer sicherheitsrelevanten Komponente oder für alles, was Datenbankmigrationen betrifft. Dort ist der Nutzen unmittelbar einleuchtend, niemand muss überzeugt werden, und das Team sammelt Erfahrung mit dem Verfahren, bevor es breiter gilt.
Der zweite Baustein ist das Vorbild. Wenn die erfahrenste Person im Team ihre eigenen Änderungen als Erste zum Gegenlesen gibt und dabei sichtbar Anmerkungen annimmt, verschiebt das die Bedeutung des Verfahrens von Kontrolle zu gemeinsamer Arbeit. Das ist der wirksamste einzelne Schritt bei der Einführung und kostet nichts außer der Bereitschaft, den eigenen Code offenzulegen.
Der dritte Baustein ist Geduld mit den Zahlen. In den ersten Wochen dauert alles länger, weil sich niemand auskennt und weil die Änderungen noch zu groß sind. Wer nach vier Wochen misst und aufgibt, misst die Anlaufkosten. Drei Monate sind der frühestmögliche ehrliche Zeitpunkt für eine Bewertung.
Dazu passende Kurse
Weil ein Review nur so gut ist wie die gemeinsame Vorstellung davon, was guter Code ist, lohnen sich Kurse zu Codequalität und sauberem Handwerk vor der Einführung und nicht danach.
Kleine Änderungen zu schneiden ist eine Fertigkeit im Umgang mit der Versionsverwaltung, und dazu gibt es Git-Kurse für den Umgang mit Pull Requests .
Wie sicher bist du beim Thema wirklich?
Lesen fühlt sich schnell nach Können an. Ein kurzer Test zeigt dir, was davon schon sitzt und wo sich ein Kurs lohnt. Kostenlos, ohne Anmeldung, mit einer Erklärung zu jeder Antwort.
Wo du genau das übst
Sehr umfangreicher Überblick über Zusammenhänge und Anwendungsbereiche. Sehr zu empfehlen.
Effektives, gemeinsames Erarbeiten der Aufgaben mit vielen praktischen Tipps.
Sehr guter Trainer und gute Aufbereitung der Inhalte und auch eingehen auf Fragen der Beteiligten.
Häufige Fragen
Wie groß darf eine Änderung höchstens sein?
Brauchen wir zwei Zustimmungen für jede Änderung?
Wie gehen wir mit dringenden Änderungen um?
Was tun, wenn Reviews zu Grundsatzdiskussionen werden?
Können KI-Assistenten das Review übernehmen?
Deine Ansprechpartner
Du bist dir nicht sicher, welcher Kurs oder welches Level zu dir passt? Wir beraten dich persönlich und kostenlos.
Yves Hoppe
Weiterbildung & Beratung
Hilft dir, aus dem Programmierung-Programm den passenden Kurs für deinen Stand zu finden.
Norbert Jansen
Beratung & Inhouse
Plant mit dir Inhouse-Trainings, die auf eure Abläufe und euren Datenbestand zugeschnitten sind.
Reviews aufsetzen, die das Team nicht ausbremsen
Die drei Bausteine sind gemeinsame Vorstellungen von sauberem Code, ein sicherer Umgang mit Branches und Pull Requests und eine sinnvolle Vorprüfung durch Werkzeuge. Bei cmt gibt es dafür je einen kompakten Kurs, offen und inhouse am eigenen Repository.
Passt dazu
- Merge oder Rebase: welche Historie euer Team später lesen kann
- Git-Flow, Trunk-Based oder GitHub-Flow: welches Branching-Modell zu eurem Release-Takt passt
- Wie viele Unit-, Integrations- und Oberflächentests euer Projekt braucht
- Wann sich Testautomatisierung rechnet und wann sie Geld verbrennt