Die Kollaborationsebene von Git.
Branches existieren, weil echte Engineering-Arbeit nicht in einer einzigen linearen Abfolge stattfindet. In einem Team von fünf Personen können zu einem beliebigen Zeitpunkt drei Features in Arbeit sein, ein Bugfix im Review und eine Infrastrukturänderung auf ein Deployment-Fenster warten. Ohne Branches würde all diese Arbeit in einem einzigen gemeinsamen Workspace kollidieren – halbfertige Features würden sich gegenseitig kaputt machen, ein Bugfix würde versehentlich mit einem unvollständigen Feature ausgeliefert, Infrastrukturänderungen würden sich mit Produktcode verheddern.
Ein Branch gibt jedem Arbeitsstrom seinen eigenen isolierten Kontext. Du kannst Dinge kaputt machen, experimentieren, aggressiv refactoren – und nichts davon betrifft deine Teammitglieder, bis du dich explizit für ein Merge entscheidest. Diese Isolation macht parallele Arbeit möglich, ohne ständigen Koordinationsaufwand.
Aber Isolation ist nur die Hälfte des Werts. Branches senken auch die Kosten für Experimente. Du willst einen anderen Algorithmus ausprobieren? Branch, Prototyp, Benchmark. Wenn er schneller ist, merge. Wenn nicht, lösche den Branch. Gesamtkosten: null Schaden an der gemeinsamen Codebasis, null Rauschen in der Commit-Historie, null Rollbacks nötig. Teams, die frei branchen, probieren mehr Ansätze aus und finden bessere Lösungen. Teams, die Branching als schwergewichtig behandeln (oder es ganz überspringen, indem sie direkt auf main committen) experimentieren entweder weniger oder experimentieren gefährlich.
Ein Pull Request ist ein Vorschlag: „Hier ist, was ich geändert habe, hier ist warum, und ich möchte, dass jemand es sich ansieht, bevor es gemergt wird." Das klingt einfach, aber es stellt einen fundamentalen Wechsel von impliziter zu expliziter Qualitätskontrolle dar.
Ohne PRs ist Code Review optional, ad-hoc und inkonsistent. Vielleicht schaut sich jemand deinen Code an, bevor er ausgeliefert wird, vielleicht nicht. Vielleicht schauen sie sich einen Teil davon an. Vielleicht schauen sie ihn sich an, nachdem er bereits in Produktion ist. PRs machen Review zu einem Gate – Code erreicht main nicht, bis mindestens ein anderer Engineer ihn gelesen, die Absicht verstanden und den Ansatz genehmigt hat.
Es geht nicht darum, Bugs zu finden (obwohl das auch passiert). Es geht um gemeinsames Ownership. Wenn ein PR reviewt und genehmigt wurde, ist die Änderung nicht mehr „Sarahs Code" – es ist der Code des Teams. Der Reviewer sagt: „Ich verstehe das, ich stimme dem Ansatz zu, und ich bin damit einverstanden, es zu warten." Dieses verteilte Ownership bedeutet, dass kein einzelner Engineer zum Bottleneck oder Single Point of Failure wird.
PRs erstellen auch eine Entscheidungsdokumentation. Die Beschreibung erklärt das Warum, das Diff zeigt das Was, und die Review-Kommentare erfassen die abgewogenen Trade-offs. Drei Monate später, wenn jemand fragt „warum haben wir es so gebaut?", hat der PR die Antwort – einschließlich der Alternativen, die diskutiert und abgelehnt wurden.
Code Review läuft schief, wenn es zu einem Gatekeeping-Ritual wird – ein Senior Engineer blockiert Merges mit Style-Nitpicks, während das Team wartet. Das ist kein Review; das ist ein Bottleneck, der sich als Qualität verkleidet.
Gutes Code Review ist ein Gespräch zwischen Peers. Die Aufgabe des Reviewers ist nicht zu beweisen, dass er mehr weiß – sondern zu fragen „habe ich deine Absicht verstanden?" und „hast du diesen Edge Case bedacht?" Die besten Review-Kommentare sind Fragen, keine Anweisungen. „Was passiert, wenn diese Liste leer ist?" lehrt mehr als „Füge hier einen Null-Check hinzu."
Drei Prinzipien, die Review produktiv halten:
Review-Kultur ist auch eines der effektivsten Onboarding-Tools, die ein Team hat. Ein neuer Engineer, der PR-Reviews liest, lernt die Muster, Präferenzen und vergangenen Fehler des Teams schneller, als es jede Dokumentation lehren könnte. Das Review-Archiv ist ein lebendiger Style Guide.
Langlebige Branches sind technische Schulden
Jeden Tag, den ein Branch getrennt von main lebt, wird das Merge schwieriger. Branches sollten Tage leben, nicht Wochen.