Erinnern Sie sich noch an persönliche Code Reviews? Vielleicht erinnern Sie sich daran, wie Sie ganze Nachmittage damit verbracht haben, Änderungen über SVN anzusehen und lokal laufen zu lassen, um Verbesserungsvorschläge zu notieren. Anschließend haben Sie mit Ihrem Team nochmal ein oder zwei Stunden in einem Raum verbracht und die Vorschläge diskutiert. Sobald die Änderungen integriert wurden, begann der ganze Vorgang von vorne, bis es endlich Zeit für das Merging war – das hat nie Spaß gemacht, sondern war oft ein absoluter Alptraum.

Zeit mit dem Team zu verbringen, ist zwar toll, aber wir sind froh, dass diese Zeiten endlich vorbei sind. Dank dem Aufkommen der Distributed Version Control (DVCS), wie zum Beispiel Git, hat sich der Peer-Feedback-Vorgang erheblich verbessert. Gits Branching- und Merging-Fähigkeiten ermöglichen es, kleinere Sammlungen von Änderungen häufiger zu reviewen. Diese Art des Codereviews basiert auf einem Konzept, welches als Pull-Requests bekannt ist. Pull-Requests bieten ein Diskussionsforum für vorgeschlagene Änderungen an Ihrer Codebase, bevor diese in geteilte Branches gemergt werden (z. B. bevor ein Feature-Branch zum Master-Branch gemergt wird).

bbpr1

Die Beliebtheit von Git und Pull-Requests steigt exponentiell und wächst scheinbar unaufhaltsam. Die Vorteile von Peer-Reviews -– besserer Code, geteiltes Team-Wissen, das Gefühl von Mitverantwortung –- und flexible Workflows in Git locken Teams aller Größenordnungen an.

Case Study
Amadeus, einer von Atlassians größten Kunden, verfügt über 5000 Entwickler. Seitdem sie vor drei Jahren von SVN zu Git gewechselt haben, sind Pull-Requests zu einem unschätzbaren Tool zum Schutz vor schlechtem Code geworden.

“Bei Amadeus unterstützt Bitbucket mehr als 1000 Pull-Requests pro Tag und die Zahl steigt stetig. Pull-Requests sind der Kernpunkt für unsere Entwickler, um besser und schneller zu arbeiten.” – Frederic Ros, Head of Development Efficiency.

 

Wenn Entwicklungsgeschwindigkeit und Code-Qualität auf dem Spiel stehen, ist es nicht verwunderlich, dass Pull-Requests zu einem entscheidenden Verkaufsargument für Git-Verwaltungstools geworden sind. Es sind natürlich noch andere Faktoren im Spiel, wie Sicherheit, Skalierbarkeit und Deployment-Flexibilität, aber wenn es um Entwicklerproduktivität geht, heben sich die Tools mit der besseren Pull-Request-Erfahrung eindeutig von anderen Tools ab. Wir glauben, dass die Erfahrung mit Pull-Requests DER entscheidende Faktor ist, wenn es um die Wahl einer Lösung zur Versionskontrolle geht. Es ist die beste Methode, um sicherzustellen, dass Sie den bestmöglichen Code veröffentlichen.

Aus seinem Fundus an Erfahrung kann Atlassian sagen, dass Pull-Requests am besten funktionieren, wenn die im Folgenden besprochenen 5 Schlüsselfunktionalitäten vorhanden sind:

1. Zugewiesene Prüfer

In ihrer grundlegendsten Form sind Pull-Requests einfach nur simple Anfragen zum Mergen von Änderungen in einen Ziel-Branch oder -Fork. Wenn Sie Prüfer einstellen, werden sie zu mehr als nur das -– sie werden zu einem Forum für offene Diskussionen über den Code. Wenn Sie nach einem Tool zur Verwaltung von Git-Repositories suchen, ist die Möglichkeit, Teammitglieder als Prüfer einzustellen eine Grundlage für einen ordentlichen Review-Workflow. Wie sonst soll Ihr Team wissen, dass es Ihre Änderungen überprüfen muss?

In Bitbucket Server hat Atlassian den Vorgang noch reibungsloser gemacht, indem es die Option zum Hinzufügen von Standard-Prüfern für bestimmte Branchtypen (z.B. Feature, Hotfix oder Bugfix) bietet. Sie haben außerdem die Möglichkeit, Marketplace-Add-Ons zu verwenden, die zusätzliche Funktionalität bieten, wie beispielsweise den Bitbucket Server Reviewer Suggester.

bbpr2

2. Kommentare

Welchen Nutzen hätte ein Codereview ohne Kommentare? Kontextbezogenes Feedback zu sammeln, gibt Erstellern von Pull-Requests einen Anhaltspunkt für Verbesserungen. Prüfer können Vorschläge für Änderungen machen, oder ihren Teammitgliedern für ein brillantes Stück Logik gratulieren.

In Bitbucket Server haben Sie die Möglichkeit, alle Arten von Kommentaren zu hinterlassen: für den gesamten Pull-Request, Commit für Commit, für eine bestimmte Datei oder eine bestimmte Codezeile in einer Datei. Jeder Entwickler liest und bewertet Code auf seine eigene Art und Weise. Ihr Tool sollte also allen Anforderungen entsprechen.

bbpr3

Tipp vom Profi
Brauchen Sie eine zweite Meinung zu einem bestimmten Codeabschnitt? In Bitbucket-Server können Sie eine @-Mention zu einer bestimmten Codezeile hinzufügen, um einen Spezialisten (z.B. Front-End-Ninja, Performance-Entwickler, Sicherheitsexperte) eine bestimmte Sache überprüfen zu lassen, ohne sie in das gesamte Review einzubeziehen.

 

3. Iterative Reviews

Pull-Requests kreieren eine Feedback-Schleife –- Sie schreiben etwas Code, Ihr Team überprüft ihn, Sie integrieren die Änderungen, Ihr Team überprüft und bestätigt diese, Sie mergen die Änderungen und fertig. Wenn Ihr Git-Verwaltungstool keinen Mechanismus bietet, um den Überprüfungsstatus oder Review-Iterationen festzuhalten, wie sollen Sie dann auf dem Laufenden bleiben?

Bitbucket Server löst dieses Problem, indem es Prüfern Statusbuttons bietet (wenn der Ersteller beispielsweise eine Änderung vornehmen muss, können Sie auf „Muss bearbeitet werden“ klicken). Sobald die Änderungen integriert wurden, können die Prüfer alles was neu ist dank Iterative Review finden, einem Mechanismus, dank dem nur die neuen Änderungen seit dem letzten Review angezeigt werden. Sie müssen nicht irgendwelche alten Dateien durchwühlen, oder alten Code nochmals überprüfen. Wenn Ihr Team seine Zeit weise nutzen möchte, ist Iterative Review ein Must-Have für Git-Tools.

bbpr4

4. Workflow-Flexibilität

Die Erstellung eines Entwicklungsworkflows beinhaltet viele Faktoren. Zum Beispiel: Arbeiten Sie in einer streng regulierten Branche? Wer soll Zugriff auf Ihre Codebase haben? Welche Arten von Qualitätsprüfungen benötigen Sie? Die Liste geht weiter. Deswegen ist Workflow-Flexibilität so wichtig; kein Entwicklerteam gleicht dem anderen.

Bitbucket Server verleiht Ihnen die Freiheit zu entscheiden, wie ein Pull-Request gemergt werden soll (zu den verfügbaren Merge-Strategien gehören: Commit mergen, Fastforward Only und Squash) und wann es mit Merge-Checks gemergt werden soll (z. B. nur dann einen Merge erlauben, wenn 2 Zustimmungen und ein bestandener Build vorhanden sind). Kein anderes Git-Tool bietet so viel Flexibilität, wie Bitbucket Server. Dadurch können Sie selbst entscheiden, wie Sie arbeiten möchten und nicht andersherum.

bbpr5

5. Integration

Bevor Sie ein brandneues Git-Verwaltungstool kaufen, sollten Sie nachsehen, wie es sich in den Rest Ihrer Toolchain einfügt. Softwareentwicklung macht mehr Spaß, wenn Sie nicht zwischen Tools hin und her springen müssen, um Berichte zu Pull-Requests zu erstellen. Mit durchdachten Integrationen, wie beispielsweise Smart Commits, der Möglichkeit Statusübergänge für JIRA-Issues über Commit-Nachrichten durchzuführen, erledigt Bitbucket Server für Sie den Großteil des Aufwands. Sparen Sie Zeit und halten Sie alle auf dem Laufenden, dank erstklassiger Integration von JIRA Software, HipChat und Bamboo. Sie verwenden andere Tools? Atlassian bietet einen Marketplace voller zusätzlicher Integrationsmöglichkeiten und Funktionalitäten dank Add-Ons.

bbpr6

Die richtige Wahl für Ihr Team

Peer-Feedback reduziert die Anzahl von Bugs in Ihrem Code. Es ist ein Sicherheitsnetz für Entwickler und eine Methode, um sicherzustellen, dass Sie den bestmöglichen Code veröffentlichen. Am Ende des Tages interessieren sich Ihre Kunden nur dafür, ob Ihre Produkte funktionieren oder nicht. Deswegen sind Codereviews und Pull-Requests so wichtig, wenn es um die Auswahl eines Git-Verwaltungstools geht. Dieser Vorgang darf Sie auf keinen Fall im Stich lassen.

Wenn Sie sich für Bitbucket Server entscheiden, entscheiden Sie sich für die beste Pull-Request-Erfahrung für Ihr Team. Es bietet zugewiesene Prüfer, kontextbezogene Kommentare, Iterative Review, Workflow-Flexibilität und erstklassige JIRA-Integration.

Das interessiert Sie?

Dann sind wir als Atlassian Platinum Partner für Sie da.