Es gibt zwei bemerkenswerte Punkte in der Frage, den taktvollen Teil und die bevorstehende Frist . Dies sind unterschiedliche Themen - das erste ist eine Frage der Kommunikation und der Teamdynamik, das zweite eine Frage der Planung und Priorisierung.
Taktvoll . Ich gehe davon aus, dass Sie gebürstete Egos und negative Rückschläge gegen die Bewertungen vermeiden möchten. Einige Vorschläge:
- Haben Sie ein gemeinsames Verständnis über Kodierungsstandards und Designprinzipien.
- Kritisieren oder überprüfen Sie niemals den Entwickler , sondern nur den Code . Vermeiden Sie das Wort "Sie" oder "Ihr Code". Sprechen Sie einfach über den zu überprüfenden Code, unabhängig von einem Entwickler.
- Setzen Sie Ihren Stolz auf die Qualität des vervollständigten Codes, sodass Kommentare, die zur Verbesserung des Endergebnisses beitragen, geschätzt werden.
- Vorschlagen Verbesserungen eher als die Nachfrage. Immer einen Dialog haben, wenn Sie nicht einverstanden sind. Versuchen Sie, den anderen Standpunkt zu verstehen, wenn Sie anderer Meinung sind.
- Lassen Sie die Bewertungen in beide Richtungen gehen. Das heißt, die Person, die Sie überprüft haben, überprüft Ihren Code als Nächstes. Keine "One-Way" -Bewertungen vorhanden.
Der zweite Teil ist die Priorisierung . Sie haben viele Verbesserungsvorschläge, aber da der Abgabetermin näher rückt, ist nur noch Zeit, einige davon zu übernehmen.
Nun, zuerst möchten Sie verhindern, dass dies überhaupt passiert! Hierzu führen Sie kontinuierliche, inkrementelle Überprüfungen durch. Lassen Sie einen Entwickler nicht wochenlang an einem Feature arbeiten und überprüfen Sie es im letzten Moment. Zweitens sollten Codeüberprüfungen und Zeit für die Implementierung von Überprüfungsvorschlägen Teil der regelmäßigen Planung und Schätzung für jede Aufgabe sein. Wenn nicht genügend Zeit für eine ordnungsgemäße Überprüfung vorhanden ist, ist bei der Planung ein Fehler aufgetreten.
Nehmen wir jedoch an, dass dabei ein Fehler aufgetreten ist und Sie nun mit einer Reihe von Überprüfungskommentaren konfrontiert sind, für deren Implementierung Sie keine Zeit haben. Sie müssen Prioritäten setzen. Nehmen Sie dann die Änderungen vor, die später am schwierigsten und riskantesten sind, wenn Sie sie verschieben.
Die Benennung von Bezeichnern im Quellcode ist für die Lesbarkeit und Wartbarkeit unglaublich wichtig, aber es ist auch ziemlich einfach und risikoarm, sie in Zukunft zu ändern. Gleiches gilt für die Code-Formatierung. Konzentriere dich also nicht auf das Zeug. Andererseits sollte die Vernunft öffentlich zugänglicher Schnittstellen höchste Priorität haben, da sie in Zukunft nur schwer zu ändern sind. Persistente Daten können nur schwer geändert werden - wenn Sie zum ersten Mal inkonsistente oder unvollständige Daten in einer Datenbank speichern, ist es wirklich schwierig, sie in Zukunft zu korrigieren.
Bereiche, die Gegenstand von Unit-Tests sind, weisen ein geringes Risiko auf. Sie können diese später jederzeit beheben. Bereiche, in denen dies nicht der Fall ist, die jedoch einer Prüfung unterzogen werden könnten , weisen ein geringeres Risiko auf als Bereiche, in denen keine Prüfung durchgeführt werden kann.
Angenommen, Sie haben eine große Menge Code ohne Komponententests und alle Arten von Problemen mit der Codequalität, einschließlich einer fest codierten Abhängigkeit von einem externen Dienst. Indem Sie diese Abhängigkeit einbauen, können Sie den Code-Chunk testbar machen. Dies bedeutet, dass Sie in Zukunft Tests hinzufügen und dann an der Behebung der restlichen Probleme arbeiten können. Mit der fest codierten Abhängigkeit können Sie nicht einmal Tests hinzufügen. Nehmen Sie also zuerst diesen Fix.
Aber bitte versuchen Sie zunächst zu vermeiden, dass Sie in dieses Szenario geraten!