Empfohlenes Webinar: MISRA C++ 2023: Alles, was Sie wissen müssen | Zum Video

Beseitigen Sie diese 7 schlechten Gewohnheiten für effektivere Peer-Code-Überprüfungen

Kopfschuss von Arthur Hicken, Evangelist bei Parasoft
12. Oktober 2023
6 min lesen

Eine gute Peer-Code-Review-Technik steigert nachweislich die Softwarequalität. Hier sind einige Tipps, um schädliche Praktiken zu verhindern, die Ihre Codeüberprüfungen nutzlos machen könnten.

Einführung in die Peer-Code-Überprüfung

Software in ihren vielfältigen Formen treibt unsere moderne Welt an, von den Apps auf unseren Smartphones bis hin zu den komplexen Systemen, die im Hintergrund kritischer Infrastrukturen in verschiedenen Branchen laufen. Damit diese Softwaresysteme effizient bleiben, müssen die darin ausgeführten Codes fehlerfrei sein, über die richtige Logik verfügen und den Sicherheits- und Sicherheitsstandards der Branche entsprechen. Eine Möglichkeit, dies zu erreichen, sind Peer-Code-Reviews.

Peer-Code-Reviews sind eine grundlegende Praxis in der Softwareentwicklung, bei der Codeänderungen systematisch von anderen Teammitgliedern untersucht werden. Es ist ein wesentlicher Bestandteil des Qualitätssicherungsprozesses, der auf die Verbesserung des gesamten Softwareentwicklungslebenszyklus abzielt. Mit Peer-Code-Reviews können Unternehmen die Zusammenarbeit und den Wissensaustausch zwischen Entwicklern erleichtern, die Integrität der Codebasis wahren, die Codequalität verbessern und die Einhaltung von Codierungsstandards sicherstellen.

Peer-Code-Reviews spielen eine entscheidende Rolle bei der Verbesserung der Softwarequalität an mehreren Fronten. Es fungiert beispielsweise als proaktive Qualitätskontrollmaßnahme, indem es Probleme erkennt und behebt, bevor sie eskalieren, wodurch die Wahrscheinlichkeit verringert wird, dass Fehler in die Produktion gelangen. Je früher ein Problem entdeckt wird, desto weniger Geld kostet die Behebung. Peer-Code-Reviews dienen nicht nur als Qualitätskontrollmaßnahme, sondern fördern auch die Lesbarkeit, Zuverlässigkeit, Portabilität, Konsistenz und Einhaltung von Codierungsstandards, was zu einer wartbareren und verständlicheren Codebasis führt. Sie ermutigen Entwickler außerdem, ihren Code zu dokumentieren und aussagekräftige Kommentare hinzuzufügen, wodurch die Codebasis selbsterklärender und für andere Entwickler zugänglicher wird.

Wir empfehlen Peer-Code-Reviews in Kombination mit herkömmlichen oder automatisierten Testmethoden wie z Unit-Test, Funktionstests, Sicherheitstests, API-Tests, Leistungstestund Systemtests. Peer-Code-Reviews ergänzen diese Testtechniken und bieten eine andere Perspektive auf die Codequalität. Automatisierte Tests eignen sich beispielsweise hervorragend dazu, funktionale Aspekte und spezifische Testfälle abzudecken, die in Testskripten beschrieben sind, und eine hohe Testabdeckung zu erreichen. Peer-Code-Reviews hingegen nutzen menschliches Fachwissen und Intuition, um Designfehler, Wartbarkeitsprobleme und die Einhaltung von Codierungsstandards zu identifizieren, deren Erfassung mit automatisierten Mitteln möglicherweise schwierig ist.

Es ist bekannt, dass eine starke Peer-Code-Überprüfungspraxis die Softwarequalität verbessert. Hier sind einige Möglichkeiten, um die schlechten Gewohnheiten zu vermeiden, die Ihre Codeüberprüfungen unwirksam machen könnten.

Es ist allgemein bekannt, dass Peer Review mehr Wert bietet, als man erwarten könnte. Wie in Steve McConnells ausgezeichnetem Buch angegeben, Code abgeschlossenbeträgt die durchschnittliche Fehlererkennungsrate nur:

  • 25% für Unit-Tests
  • 35% für Funktionstests
  • 45% für Integrationstests

Im Gegensatz dazu liegt die durchschnittliche Effektivität von Design- und Codeinspektionen bei 55 % bzw. 60 % – eine wirklich beeindruckende Statistik. Natürlich funktioniert es nur dann, wenn das, was Sie im Peer-Review tun, effektiv und effizient ist.

Im Laufe der Jahre habe ich die vielen Fallstricke erlebt, die zu ineffektiven Peer-Reviews führen. Das Vermeiden dieser schlechten Gewohnheiten kann genauso effektiv sein wie das Annehmen guter neuer Gewohnheiten! Beseitigen Sie die unten aufgeführten schlechten Gewohnheiten, um ineffektive Peer-Reviews zu vermeiden.

7 schlechte Angewohnheiten, die Sie für erfolgreiche Peer-Code-Reviews vermeiden sollten

Trotz der entscheidenden Rolle von Peer-Code-Reviews in der Softwareentwicklung können sie sich nur dann lohnen, wenn sie effektiv und effizient durchgeführt werden. Eine schlecht durchgeführte Peer-Review kann dazu führen, dass Zeit verschwendet wird, ohne dass sinnvolles Feedback zur Codeverbesserung gegeben wird. Um den Erfolg Ihrer Codeüberprüfung sicherzustellen, sollten Sie die folgenden wichtigen Gewohnheiten vermeiden.

1. Tools bei Peer-Code-Reviews werden nicht ausreichend genutzt

Zu Beginn sollten Sie nichts überprüfen oder suchen, was durch statische Analyse möglich ist. Dies kann Branding-Probleme, Stilprobleme wie die Platzierung von Locken umfassen {
Lass mich nicht anfangen;
},
oder unter Verwendung eines bestimmten Verschlüsselungsalgorithmus. Wenn ein Werkzeug es für Sie finden kann, lassen Sie es. Geben Sie sich die Möglichkeit, die Algorithmen, Sicherheits- und Leistungsmerkmale des Codes genauer zu untersuchen. Kluge Arbeit statt mühsamer Arbeit hat auch den Nebeneffekt, dass die Teilnahme an der Überprüfung interessanter wird, was sie wiederum ansprechender und effektiver macht.

2. Überprüfung von unvollendetem Code

Dies ist ein klassisches Problem, das vor allem kalenderzentrierte Organisationen betrifft. Wenn Sie eine Veröffentlichung auf der Grundlage eines Datums vornehmen, ist die Wahrscheinlichkeit groß, dass Sie auch eine Überprüfung auf der Grundlage eines Datums vornehmen. Die Logik lautet wie folgt: „Ich bin noch nicht fertig, aber wir haben bereits eine Überprüfung geplant, also schauen wir uns zumindest an, was wir haben.“ Sie wissen es genauso gut wie ich – es ist keine gute Möglichkeit, eine effektive Überprüfung durchzuführen, also hören Sie damit auf. Stellen Sie sicher, dass der Codeautor fertig ist. Wenn er noch nicht bereit ist, verschieben Sie ihn, bis er fertig ist.

3. Überdehnung der Peer-Code-Review-Sitzungen

Langwierige Codeüberprüfungssitzungen können kontraproduktiv sein. Es ist wichtig, den Umfang und die Dauer jeder Überprüfung angemessen zu begrenzen, um den Fokus und die Produktivität aufrechtzuerhalten. Lange, ausführliche Überprüfungen können zu Ermüdung, verminderter Liebe zum Detail und einem langsameren Entwicklungsprozess führen.

Wenn die Überprüfung zu viel Zeit in Anspruch nimmt, müssen Sie etwas überdenken. Zu viel könnten in diesem Fall entweder Review-Sitzungen sein, die mehr als eine Stunde dauern, oder Sitzungen, die einen zu großen Teil des gesamten Entwicklungsplans in Anspruch nehmen. Wenn Rezensionen länger als eine Stunde dauern, versuchen Sie wahrscheinlich, zu viel auf einmal zu rezensieren. Oder der Autor war nicht bereit für die Rezension. Nach einer Stunde Überprüfung nimmt die potenzielle Wirksamkeit schnell ab, insbesondere für die Code-Autoren. Auch wenn der Kommentar anfangs nicht persönlich war, kann sich die Kritik nach einer unnötig langen Rezension verschärfen und schmerzhafter wirken.

4. Personalisierung des Peer-Code-Review-Feedbacks

Bei einem Peer-Review geht es um den Code, nicht um die Personen. Stellen Sie sicher, dass Sie über den Code sprechen und nicht über den Entwickler. Eine Aussage wie „Dieser Code lässt sich nicht so gut skalieren, wie wir es brauchen“ ist weniger anstößig als „Sie haben das schlecht geschrieben.“ Umgekehrt gilt: Seien Sie ein guter Sportler, wenn Sie Kritik ausgesetzt sind. Erkennen Sie, dass jeder Code verbessert werden kann und Sie aus den erhaltenen Daten lernen können. Unabhängig davon, an welchem ​​Ende der Rezension Sie sich befinden, können Sie wahrscheinlich eleganter vorgehen und eine reibungslose, angenehme und schnelle Rezension ermöglichen. Betrachten Sie das Bewerten als eine großartige Möglichkeit, einen kostenlosen Mentor zu finden. Jeder möchte einen Mentor haben, aber wir betrachten den Überprüfungsprozess selten als Mentoring-Prozess. Die Wertschätzung der Mentorschaft kann Ihnen helfen, sie nicht persönlich zu nehmen.

5. Peer-Code-Reviews aufschieben

Es ist nicht nur eine Metapher für Neujahrsvorsätze. Ich bin wirklich der festen Überzeugung, dass die meisten Softwarequalitätspraktiken wie Übungen behandelt werden sollten. Wenn Sie versuchen, sie im letzten Moment zu überhäufen, werden sie nicht effektiv sein. Sie können am Abend vor einem Marathon nicht auf dem Laufband laufen und Sie können am Abend vor Ihrer Entlassung kein Peer-Review durchführen.

6. Inkonsistente Nachverfolgung in Peer-Code-Review-Prozessen

Wie eine Bewertung weiterverfolgt wird, kann großen Einfluss auf den Wert der Bewertung haben. Wenn Sie während einer Überprüfung Elemente finden und nicht überprüfen, ob diese behoben sind, verschwenden Sie wahrscheinlich Ihre Zeit. Der größte Nutzen liegt in einem konsistenten Prozess, der die Verantwortlichkeit einschließt. Stellen Sie sicher, dass jeder weiß, was von ihm erwartet wird, und stellen Sie sicher, dass Korrekturen vorgenommen werden.

Wenn in der Rezension nichts gefunden wird, seien Sie kritisch. Obwohl dies von Zeit zu Zeit passieren kann, sollte es Sie auf jeden Fall misstrauisch machen. Dies kann ein Zeichen dafür sein, dass zwischen Entwicklern gegenseitige Überprüfungen stattfinden, oder ein Zeichen dafür, dass Ihre Entwicklung den Wert von Codeüberprüfungen nicht versteht und nicht weiß, wie diese ordnungsgemäß durchgeführt werden.

7. Inkonsistente Kriterien für Peer-Code-Reviews

Wenn nicht jeder Rezensent nach den gleichen Dingen sucht, haben Sie keine Ahnung, ob Ihre Bewertungen effektiv sind. Der Umfang des Peer-Reviews muss auf einer eindeutigen Richtlinie basieren, die klar niedergeschrieben ist und auf die verwiesen werden kann. Eine Checkliste mag auf den ersten Blick einengend wirken, aber sie hilft dabei, die Überprüfung auf Kurs zu halten und erfüllt eine doppelte Aufgabe, wenn Sie in einer Compliance-Branche wie der Automobil- oder Medizinbranche tätig sind und nachweisen müssen, dass Sie eine effektive Überprüfung durchgeführt haben.

Die Beseitigung von Unklarheiten erfordert mehr Disziplin als nur das Aufschreiben der Richtlinie, obwohl dies ein guter erster Schritt ist. Im Idealfall würden Sie ein paar Szenarien basierend auf Ihrer Richtlinie konkretisieren und verschiedene Personen fragen, wie sie es tun würden. Es ist nicht ungewöhnlich, dass Unternehmen einen Status Quo akzeptieren, bei dem verschiedene Gruppen die Dinge unterschiedlich machen und beide denken, dass die andere Gruppe es falsch macht, aber beide werden im Rahmen der unklaren Richtlinie zugelassen. Das kannst du besser.

Bringen Sie alle auf den gleichen Stand. Es verbessert Ihre Qualität, bietet die für die Beurteilung und Verbesserung erforderliche Konsistenz und schützt Sie, wenn etwas schief geht. Wenn Sie sich in einer Compliance-Umgebung wie ISO 26262 oder FDA befinden, werden einheitliche Kriterien Ihre Audits rationalisieren.

Ich habe Peer-Reviews bei einer Vielzahl von Organisationen miterlebt und gesehen, wo es sich unglaublich lohnen kann, aber auch völlige Zeitverschwendung ist. Der Einbau der richtigen Tools in die richtigen Prozesse trägt dazu bei, dass Sie einen Mehrwert aus dem Prozess ziehen. Unterstützen Sie Ihr Peer-Review-System ohne schlechte Angewohnheiten mit einem statischen Analysetool, auf das Sie sich bei der Durchsetzung von Standards und Best Practices verlassen können, und konzentrieren Sie sich auf die interessanten Mängel, die Sie zu einem besseren Ingenieur machen.

Fazit: Den Wert von Peer-Code-Reviews maximieren

Zusammenfassend lässt sich sagen, dass Peer-Code-Reviews ein enormes Potenzial zur Verbesserung des Softwareentwicklungsprozesses und zur Sicherstellung der Bereitstellung qualitativ hochwertiger Software bergen. Für Entwickler bietet die Teilnahme an effektiven Peer-Code-Reviews mehrere wichtige Vorteile, z. B. die Bereitstellung einer wertvollen Lernmöglichkeit, die sie mit verschiedenen Codierungsstilen, Best Practices und verschiedenen Problemlösungsansätzen innerhalb ihres Teams vertraut macht. Dieser Wissensaustausch fördert das berufliche Wachstum und die Kompetenzentwicklung. Darüber hinaus helfen Peer-Code-Reviews Entwicklern, Fehler frühzeitig zu erkennen und zu beheben und tragen zur Konsistenz und Wartbarkeit der Codebasis bei.

Zur Unterstützung erfolgreicher Codeüberprüfungsprozesse kann der Einsatz statischer Analysetools von unschätzbarem Wert sein. Diese Tools analysieren den Code automatisch auf potenzielle Probleme, z. B. Verstöße gegen Codierungsstandards, Sicherheitslücken und Code-Smells. Für C, C++, Java, C# und VB.NET bietet Parasoft statische Code-Analysetools wie Parasoft C / C ++ test, Parasoft Jtest und Parasoft dotTEST, die alle über KI- und ML-Funktionen verfügen und für unterschiedliche Entwicklungsumgebungen konzipiert sind. Durch die Integration statischer Analysetools in den Code-Review-Workflow können Teams die Effizienz und Effektivität ihrer Reviews steigern. Die Kombination des menschlichen Fachwissens von Peer-Reviewern mit der Automatisierung statischer Analysetools optimiert den Wert und die Wirkung von Peer-Code-Reviews im Softwareentwicklungslebenszyklus.

Machen Sie Unit-Tests richtig: Top-Tipps für Java-Entwickler