コードレビューはどのように行うかの議論
課題
レビュー期間が長い。3次レビューまで行うが、2:2:1
の割合で時間がかかる。
(単純に1次に2日かかる計算だと、全てのレビューが完了するまで、5日掛かる。)
確認
1次レビューワー、2次レビューワーは確認レベル(or範囲)は同等になるのか? もし同じスコープの認識でしたら担当範囲は分けた方が良さそう。
提案
フェーズ毎に範囲を切り分ける
- 1次では文法的な誤り、処理改善の指摘を主とする。
- 2次では仕様に沿った実装されているかの指摘を主とする。(文法もほどほどみる)
※例外的に過去に実装した方を1次レビュワーに設定する場合は、仕様に問題がないかも確認する必要もありそう。
意見
- レビュー期間が長くなるようなPRの場合はレビュー会(※1)開くなりして対応するとかでも良さそう。
- 1次で仕様に沿った実装になっているかは最低限確認しないと、仕様に沿っていないコードの文法を指摘してもあまり意味がなさそう。
- 1次、2次で同レベルのレビューをするのであれば、
1次レビューのコメント数 >> 2次レビューのコメント数
としたい。 - レビュースキル・マインド向上の取り組みをしたい。
- レビュー時間は短縮できませんが、レビュー最優先にすることでレビュー期間を短縮(※2)することができそう。
補足
(※1)・・・仕様の把握のみに30分以上かかることが予想されるような機能(単純に開発規模が大きい、新規機能や周辺機能までの把握が必要な場合、難解なビジネスロジックがある場合など)の場合、仕様や実装の意図などを確認する場を設定する
メリット
- レビュワー
- 品質を落とさず、工数削減できる可能性がある
- レビュイー
- 学びの場になる
- レビュー期間が長い場合、branchや頭の切り替えをしてやり取りをしないといけなくなるため、その分の無駄な工数が削減できる
(※2)・・・https://x.com/koh110/status/1731625310641344839?s=46&t=sdPeIXd9qvNy2X7_NGZPEA
今までの開発チームの中で一番生産性があがったルール「PRのレビューは割り込みであってもすべてのタスクより優先でやる」ってやつだった。 最初は自分のタスク中断されて「うっ……」てなってたけど、他人のタスクを止めないし、結果的に自分の時も待ち時間が発生せず、チーム全体の空気もよくなった