Unser Team hat kürzlich damit begonnen, Code-Überprüfungen für jeden Check-in durchzuführen.
Als Teamleiter versuche ich, ein Gleichgewicht zwischen zu vielen Vorschlägen, ärgerlichen Entwicklern und einer geringeren Teamleistung und dem Loslassen von Code zu finden, den ich anders geschrieben hätte.
Gibt es Hinweise, Studien oder Anleitungen aus bekannten Quellen, die auf einen hilfreichen Ansatz hindeuten?
Antworten:
Beachten Sie die übergeordneten Ziele: Am Ende zählt nur funktionierende Software
Peer Review und Check-in Code Review haben das Ziel, die Qualität zu verbessern . Aber für die Qualität gibt es nichts Schlimmeres als einen demotivierten Entwickler. Als Teamleiter besteht Ihre Aufgabe nicht darin, den Code als etwas zu unterstützen, das Sie selbst hätten schreiben können, sondern die Teamarbeit zu fördern und das Gesamtergebnis sicherzustellen.
Legen Sie einen klaren Rahmen für Ihre Überprüfung fest
Denken Sie daran: Es ist nicht Ihr Code, sondern der Code des Teams. Konzentrieren Sie sich also auf Dinge, die zu falschen Ergebnissen führen können.
Fordern Sie die Art und Weise, wie Ihr Entwickler die Anforderungen erfüllt, nicht heraus, es sei denn, Sie sind sicher, dass dies nicht funktioniert (aber die Tests hätten bereits fehlschlagen müssen, oder?).
Fordern Sie keine schlechte Leistung heraus, es sei denn, es gibt eine Messgröße, die zeigt, wo das Problem liegt. Vorzeitige Optimierung ist die Wurzel allen Übels ;-)
Wenn Sie ein Design oder eine Softwarestruktur finden, die Sie herausfordern können, fragen Sie sich, warum dies nicht im Vorfeld erkannt wurde! Bereits geschriebener Code ist teuer umzuschreiben. In diesem Fall ist es an der Zeit, Ihre Softwareentwicklung und Teamarbeitspraktiken mindestens so genau wie den Code zu überprüfen.
die Einhaltung der festgelegten Kodierungsstandards ansprechen. Es ist das nervigste Thema, das sowohl für den Rezensenten als auch für den Rezensenten diskutiert werden muss. Wenn sich alle darauf geeinigt haben, großgeschriebene Klassennamen in Ihrem Team zu verwenden und einer eine Klasse ohne hat, ist das dann Geschmackssache? Oder von Teamwork, Effektivität und Risiko?
Übrigens, wenn Sie der Meinung sind, dass ein Kodierungsstandard es nicht wert ist, erörtert zu werden, entfernen Sie ihn aus Ihren Standards und verschwenden Sie keine Zeit und Energie damit.
Führung entwickeln: die menschliche Seite der Überprüfung
Als Teamleiter finden Sie hier möglicherweise die Möglichkeit, sich und Ihr Team über die Formalitäten einer Qualitätskontrolle hinaus weiterzuentwickeln:
Nutzen Sie andere Praktiken
Es gibt einige Dinge, die Sie bei der Codeüberprüfung vermeiden können:
quelle
Als Entwickler sollten wir immer offen und skeptisch zugleich sein.
Offen, weil wir nicht wissen, wann ein Entwickler uns überraschen kann, und skeptisch gegenüber unseren eigenen Ideen, weil wir oft vergessen, dass es in der Software-Engineery keinen einzigen richtigen Weg gibt, eine Lösung zu implementieren. Die Gründe für unsere Lösungen könnten für uns sinnvoll sein und für andere keine. Hinter einem Codegeruch könnte eine großartige Idee stecken. Vielleicht hat der Entwickler den Weg nicht gefunden, es richtig auszudrücken.
Da wir (Menschen) in der Kommunikation schrecklich sind, machen Sie keine falschen Annahmen und fragen Sie den Code-Besitzer nach dem Code, den Sie überprüfen. Wenn er / sie es versäumt hat, die Idee unter den Standards des Unternehmens zu kodieren, ist er / sie als leitender Entwickler bereit, ihn / sie ebenfalls anzuleiten.
Hier der subjektive Ansatz. Der objektive Ansatz, IMO, wird in dieser Frage sehr gut erklärt .
Zusätzlich zu dem obigen Link sind die zu erreichenden Ziele (Wartbarkeit, Lesbarkeit, Portabilität, hohe Kohäsion, lose Kopplung usw.) nicht unbedingt die Zehn Gebote. Sie (das Team) sollten in der Lage sein, diese Ziele an einen Punkt anzupassen, an dem das Gleichgewicht zwischen Qualität und Produktivität die Arbeit für Entwickler komfortabel und "bewohnbar" macht.
Ich würde die Verwendung statischer Code-Analysetools vorschlagen, um den Fortschritt der Qualität gemäß diesen Zielen zu messen. Mit Tools wie SonarQube erhalten wir Quality Gates und Quality Profiles, die gemäß unseren Prioritäten angepasst werden können. Es stellt uns auch einen Issue-Tracker zur Verfügung, mit dem Entwickler auf Probleme im Zusammenhang mit Codegerüchen, Fehlern, zweifelhaften Praktiken usw. angesprochen werden können.
Diese Art von Werkzeugen kann ein guter Ausgangspunkt sein, aber wie gesagt, bleiben Sie skeptisch. Einige Regeln in Sonar sind möglicherweise für Sie bedeutungslos. Sie können sie ignorieren oder aus Ihrem Qualitätsprofil entfernen.
quelle
Wenn Sie sich in den Entwicklercode für kosmetische Änderungen einmischen, wird der Entwickler demotiviert, aber unter absoluten Umständen muss dies getan werden. Der Lead muss das Gleichgewicht zwischen nützlicher Codeüberprüfung und dem Erlernen finden, kleinere Mängel loszulassen . https://blog.smartbear.com/sqc/for-the-new-team-lead-the-first-six-things-you-should-know/
quelle
Einige Dinge zu beachten:
quelle
Es gibt nur zwei Dinge, die wichtig sind.
Alles andere ist kosmetisch und sollte über Bier diskutiert werden, anstatt als Tor durchgesetzt zu werden.
Wenn Sie dieser Ansicht folgen, werden Sie auf einen engen Fokusbereich beschränkt.
Sind die Voraussetzungen gut? Was Sie idealerweise wissen sollten, bevor Sie mit der Aufgabe beginnen, dh Leistung, Sicherheit usw., sollten alle vorhanden sein
Sind die Tests gute Tests? Verpasste Randfälle, testen sie die Anforderung gut usw. Letztendlich: Können Sie einen Test schreiben, der für eine vorhandene Anforderung gilt, der jedoch fehlschlägt?
quelle