So vermeiden Sie Fehler bei der Codeüberprüfung, die Ihre Produktivität beeinträchtigen

Fehler bei der Codeüberprüfung können die Produktivität Ihres Teams verringern
Foto von Sebastian Herrmann auf Unsplash

Die Codeüberprüfung ist eine Konstruktionspraxis, die von vielen leistungsstarken Teams verwendet wird. Und obwohl diese Software-Praxis viele Vorteile hat, stoßen Teams, die Codeprüfungen durchführen, auch auf einige Fallstricke bei der Codeprüfung.

In diesem Artikel erkläre ich die wichtigsten Fallstricke der Codeüberprüfung, die Sie kennen sollten, um sicherzustellen, dass die Codeüberprüfung Ihr Team nicht verlangsamt. Wenn Sie wissen, welche Fallstricke und Probleme auftreten, können Sie eine produktive und effektive Codeüberprüfung sicherstellen. Diese Ergebnisse basieren auf einer Umfrage, die wir bei Microsoft mit über 900 Teilnehmern durchgeführt haben.

Ein typischer Codeüberprüfungsprozess

Ein typischer werkzeugbasierter Codeüberprüfungsprozess sieht ungefähr so ​​aus: Sobald der Entwickler einen Code fertiggestellt hat, bereitet er den Code für die Übermittlung zur Überprüfung vor. Anschließend wählen sie Prüfer aus, die über die Prüfung benachrichtigt werden. Die Prüfer überprüfen dann den Code und geben Kommentare ab. Der Autor des Codes bearbeitet diese Kommentare und verbessert und ändert den Code entsprechend. Sobald alle zufrieden sind oder eine Einigung erzielt wurde, kann der Code in die Codebasis eingecheckt werden.

In einem anderen Beitrag habe ich beschrieben, wie ein typischer Codeüberprüfungsprozess bei Microsoft aussieht.

Die Codeüberprüfung verläuft nicht immer reibungslos

Diese Schritte lesen sich wie ein reibungsloser Prozess. Aber wie alles in der Praxis sind die Dinge in der Regel komplizierter als erwartet. Während des Codeüberprüfungsprozesses gibt es einige Fallstricke, die die positiven Erfahrungen mit Codeüberprüfungen für das gesamte Team verringern können. Wenn dies nicht korrekt durchgeführt wird, kann die Codeüberprüfung auch die Produktivität des gesamten Teams beeinträchtigen. Werfen wir also einen Blick auf die Schwierigkeiten und Fallstricke von Code-Reviews.

Die beiden Haupttypen von Fallstricken bei der Codeüberprüfung beziehen sich auf die Zeit, die für Codeüberprüfungen aufgewendet wurde, und auf den Wert, den Codeüberprüfungen liefern.

Beachten Sie die Fallstricke bei der Codeüberprüfung. Andernfalls können Codeüberprüfungen Ihr Team verlangsamen. Klicken Sie auf Twittern

Das Warten auf Feedback zur Codeüberprüfung ist ein Schmerz

Eine der Hauptschwierigkeiten für Code-Autoren besteht darin, Feedback zeitnah zu erhalten. Es kann ein großes Problem sein, darauf zu warten, dass die Kommentare eingehen und der Code in der Zwischenzeit nicht bearbeitet werden kann. Auch wenn Entwickler andere Aufgaben übernehmen können, wirkt sich die zu lange Überprüfung des Codes auf die Produktivität des Entwicklers und auch auf die Zufriedenheit des Entwicklers aus.

Aber warum dauert das Feedback zur Codeüberprüfung so lange?

Entwickler müssen verschiedene Verantwortlichkeiten miteinander in Einklang bringen

Die Codeüberprüfung ist nicht die einzige Aufgabe, die der Codeüberprüfer ausführen muss. Im Gegenteil, die Codeüberprüfung ist nur ein Teil der Verantwortlichkeiten und Aufgaben eines Entwicklers, auch wenn sie für die tägliche Arbeit eines Entwicklers viel Zeit in Anspruch nehmen kann. Daher ist es sehr wahrscheinlich, dass der Code-Prüfer an anderen Aktivitäten beteiligt ist und diese stoppen oder beenden muss, bevor er sich die Code-Prüfung ansieht.

Wenn das Timing nicht optimal ist und insbesondere der Code-Prüfer diese Änderung nicht erwartet hat, dauert es wahrscheinlich eine Weile, bis er sich die Überprüfung ansieht. Remote-Teams müssen sich auch der Zeitunterschiede bewusst sein. Andernfalls können Codeüberprüfungen sogar länger dauern.

Entwickler haben Probleme, wenn Codeüberprüfungen nicht als tatsächliche Arbeit gewertet werden

Zeitliche Einschränkungen sind real und wirken sich sowohl auf den Codeüberprüfer als auch auf den Autor des Codes aus. Eine ordnungsgemäße Codeüberprüfung erfordert Zeit. Wenn Teams möchten, dass Entwickler Codeüberprüfungen durchführen, die Zeit, die Entwickler für Codeüberprüfungen aufwenden, jedoch nicht bewerten oder abrechnen, wird dies zu einem echten Problem.

Sie müssen den Zeitaufwand für die Codeüberprüfung bewerten und planen.
Foto von freestocks.org auf Unsplash

Sie können keine Qualitätscodeüberprüfungen erwarten, wenn Sie die Zeit, die ein Entwickler für sie aufgewendet hat, nicht einschätzen. Klicken Sie auf Twittern

Keine Belohnung für die Bemühungen und die Leistung der Codeüberprüfung

Es hilft nicht zu behaupten, Codeüberprüfungen zu bewerten, wenn Sie den Aufwand, den Entwickler für diese Aufgabe aufwenden, nicht belohnen. Viele Unternehmen konzentrieren sich darauf, Entwickler für die Menge an Code, die sie schreiben, oder für die Features, die sie entwickeln, zu belohnen. Dies verringert die Motivation und die Fähigkeit der Entwickler, sich gegenseitig zu helfen (einschließlich Codeüberprüfung). Der Aufwand und die Leistung der Codeüberprüfung sollten ein Eckpfeiler für die Leistungsbewertung oder für Beförderungsentscheidungen sein.

Wenn Sie möchten, dass Ihr Team Codeprüfungen gut durchführt, belohnen Sie es für seine Arbeit. Klicken Sie auf Twittern

Soziale Faktoren und Teamdynamik

Das Warten auf eine Codeüberprüfung hatte jedoch nicht immer mit Zeitmangel oder fehlendem Belohnungssystem zu tun. Aufgrund seines sozialen Charakters können verspätete Überprüfungen auf Unsicherheiten oder Teamdynamiken zurückzuführen sein. Insbesondere, wenn die Codeüberprüfung überwältigend ist oder der Prüfer neu im Code ist, kann eine Codeüberprüfung überwältigend sein:

Ich werde voraussichtlich teilnehmen, bin mir aber nicht ganz sicher, wie. Ich warte, bis jemand anderes anfängt. - Studienteilnehmer

Große Bewertungen sind schwer zu überprüfen

Eine weitere wichtige Tücke bei der Überprüfung von Codes sind große Überprüfungen. Stellen Sie sich vor, Sie sind der Rezensent und haben gerade diese Rezension erhalten. Sie denken, ich werde mir das gleich ansehen, aber sobald Sie die Rezension öffnen, sehen Sie, dass sich dieser große Code geändert hat. Es wurden mehrere Dateien geändert, und alle Änderungen verwickeln sich in der gesamten Codebasis. Was ist Ihre erste Reaktion?

Wahrscheinlich: Heilige Kuh!

Stimmt. Genau das haben wir bei der Analyse von Tausenden von Code-Reviews gesehen. Die Überprüfungszeit nimmt nicht nur mit der Größe des Codes zu, sondern auch die Feedback-Qualität. Nun, das ist wahrscheinlich verständlich.

10 Codezeilen = 10 Probleme.
500 Zeilen Code = "sieht gut aus."
Code-Überprüfungen.
- Ich bin Devloper (@iamdevloper) 5. November 2013

Große Codeänderungen sind nur unglaublich schwer zu überprüfen. Wenn der Code-Prüfer außerdem nicht so gut mit dem Teil der Codebasis vertraut ist, in dem die Änderung stattgefunden hat, kann das Prüfen schnell zu einem Albtraum werden.

Große Code-Reviews sind schwer zu überprüfen. Die Qualität der Überprüfung nimmt mit dem Umfang der Änderung ab, wodurch die Wertigkeit eingeschränkt wird, die die Teams aus den Codeüberprüfungen ziehen. Klicken Sie auf Twittern

Zum Verständnis von Codeänderungen sind einige Anleitungen erforderlich

Das Verstehen von Codeänderungen und insbesondere die Motivation für eine Codeänderung ist eine weitere Gefahr, der sich viele Rezensenten gegenübersehen. Wenn es keine Beschreibung gibt, die den Zweck der Änderung erklärt, wird die Codeüberprüfung viel schwieriger. Wir haben in der Studie festgestellt, dass die Codeüberprüferin kein aufschlussreiches Feedback geben kann, wenn sie die Codeänderung nicht versteht oder von der Menge der Änderungen überfordert ist.

Es ist nur dieses große, unverständliche Durcheinander. Dann können Sie keinen Wert hinzufügen, weil sie es Ihnen nur erklären und Sie das, was sie sagen, zurückschreiben werden.
- Entwickler interviewt13

Wenn Sie kein wertvolles Feedback erhalten, wird der Nutzen für die Entwickler und die Motivation für Codeüberprüfungen gemindert

Ohne Zweifel ist es ein Problem, die Zeit für Codeüberprüfungen aufzuwenden und kein nützliches Feedback zu erhalten. Auch wenn das Team möglicherweise weiterhin vom Wissenstransfer profitiert, sinkt die Motivation des Entwicklers, Codeüberprüfungen durchzuführen, und der Nutzen von Codeüberprüfungen, wenn sie kein wertvolles Feedback erhalten.

Es gibt mehrere Gründe, warum Rezensenten kein aufschlussreiches Feedback geben oder nicht geben können. Es kann sein, dass der Code-Prüfer nicht über das richtige Fachwissen verfügt. Ein weiterer häufiger Grund ist, dass der Prüfer nicht genügend Zeit hatte, um die Änderung gründlich durchzuarbeiten.

Möglicherweise versteht der Code-Prüfer den Code nicht. Es kann auch sein, dass der Code-Prüfer nicht weiß, nach welchen Problemen er suchen muss. Wenn Sie verstehen, was für Sie wertvolles Feedback zur Codeüberprüfung ist, und Best Practices implementieren, können Sie diese Gefahr mindern.

Sobald es in der Hauptdiskussion um Styling geht, müssen Sie handeln

Ein weiteres Problem, das bei einer Codeüberprüfung auftreten kann, ist das sogenannte Bikeshedding. Bikeshedding bedeutet, dass Entwickler sich auf kleinere Probleme konzentrieren und anfangen, kleinere Probleme zu diskutieren und die schwerwiegenden zu übersehen.

Die Gründe dafür sind vielfältig. Hinter den Kulissen gibt es häufig Probleme, die zu einem Bikeshedding führen: Entwickler verstehen die Codeänderung nicht oder sie haben nicht genügend Zeit für die Codeüberprüfung. Manchmal kann Bikeshedding ein Zeichen dafür sein, dass es Probleme mit der Teamdynamik gibt.

Wenn sich die Leute während der Codeüberprüfung über kleinere Probleme streiten, müssen Sie sich das zugrunde liegende Problem ansehen. Zeitdruck, zu große Bewertungen, Rivalität? Klicken Sie auf Twittern

Ein Konsens könnte eine persönliche Diskussion erfordern

Manchmal kann es vorkommen, dass es schwierig ist, einen Konsens zu erzielen. Dies kann zwischen Code-Reviewer und Code-Autor oder auch zwischen mehreren Code-Reviewern direkt auftreten. Solche Situationen müssen sorgfältig behandelt werden, da die Teamdynamik eng mit diesen Ereignissen verbunden ist. Die Kommunikation über Tools und in schriftlicher Form kann dieses Problem verschlimmern. Wenn es Spannungen zu geben scheint oder strittige Themen zu erörtern sind, ist es möglicherweise eine gute Idee, persönlich oder per Videoanruf zu einem persönlichen Gespräch zu wechseln.

Die Vorteile der Codeüberprüfung überwiegen den Aufwand

Ich hoffe, diese Liste der Fallstricke bei der Codeüberprüfung hat Ihre Meinung zu Codeüberprüfungen nicht geändert. Denn die gute Nachricht ist, dass, wenn Sie die Fallstricke der Codeüberprüfung kennen und ihnen entgegenwirken, Codeüberprüfungen eine sehr vorteilhafte Technik sind. Und es gibt noch mehr bewährte Möglichkeiten, um effektiv mit Codeüberprüfungen zu arbeiten.

Bewährte Methoden zur Codeüberprüfung

Im nächsten Blogeintrag in dieser Codeüberprüfungsserie zeige ich Best Practices, um die Fallstricke und Herausforderungen bei der Codeüberprüfung zu minimieren und sicherzustellen, dass Ihr Team das Beste aus der Codeüberprüfungspraxis herausholt. Also lies weiter. Um benachrichtigt zu werden, wenn ich den nächsten Beitrag veröffentliche, folge mir auf Medium.

Stellen Sie sicher, dass Sie meine E-Mail-Liste abonnieren, damit Sie keinen meiner Posts verpassen.

Ursprünglich veröffentlicht unter https://www.michaelagreiler.com am 6. April 2019.