質問には2つの注目すべき問題があります。それは、巧妙な部分と締め切りの部分です。これらは明確な問題です。最初の問題はコミュニケーションとチームダイナミクスの問題であり、2番目の問題は計画と優先順位付けの問題です。
巧みに。私はあなたがブラシをかけられた自我とレビューに対する否定的なプッシュバックを避けたいと思います。いくつかの提案:
- コーディング標準と設計原則について理解を共有します。
- 開発者を批判したりレビューしたりするのではなく、コードのみを確認してください。「あなた」や「あなたのコード」という言葉は避け、開発者から切り離されたレビュー対象のコードについて話してください。
- 完成したコードの品質に誇りを持ち、最終結果の改善に役立つレビューコメントを高く評価します。
- 要求ではなく改善を提案します。同意しない場合は、常に対話をしてください。同意しない場合は、他の視点を理解するようにしてください。
- レビューを双方向に行ってください。つまり、レビューした人に次にコードをレビューしてもらいます。「一方向」のレビューはありません。
2番目の部分は優先順位付けです。改善のための多くの提案がありますが、期限が近づいているため、いくつかを適用する時間しかありません。
まあ、まず最初にこれが起こるのを避けたいです!これを行うには、継続的な増分レビューを実行します。開発者に機能を数週間働かせて、最後にすべてをレビューさせないでください。第二に、コードのレビューとレビューの提案を実装する時間は、あらゆるタスクの定期的な計画と見積もりの一部である必要があります。適切にレビューするのに十分な時間がなかった場合、計画の中で何かがおかしくなりました。
しかし、プロセスで何かが間違っていると仮定すると、多くのレビューコメントに直面することになり、それらすべてを実装する時間がありません。優先順位を付ける必要があります。その後、延期した場合に後で変更するのが最も難しく、最もリスクの高い変更に進みます。
ソースコード内の識別子の命名は、可読性と保守性のために非常に重要である、しかしまた、将来的に変更することが非常に簡単かつ低リスクです。コードの書式設定と同じです。だから、そのようなことに集中しないでください。一方、公開されているインターフェイスの健全性は、将来変更するのが非常に難しいため、最優先事項です。永続データを変更するのは困難です。データベースに一貫性のないデータや不完全なデータを最初に保存し始めた場合、将来修正するのは本当に困難です。
単体テストでカバーされる領域は低リスクです。これらは後でいつでも修正できます。ありませんが、エリアができ、ユニットテストは、領域よりもリスクが低いですすることができないユニット・テストすること。
単体テストがなく、外部サービスへのハードコーディングされた依存関係を含む、あらゆる種類のコード品質の問題がある大きなコードの塊があるとします。代わりにこの依存関係を注入することにより、コードチャンクをテスト可能にします。これは、あなたが将来的にテストを追加し、できることを意味し、その後問題の残りの部分の修正に取り組んでいます。ハードコーディングされた依存関係では、テストを追加することさえできません。最初にこの修正に進みます。
しかし、そもそもこのシナリオで終わらないようにしてください!