コードレビューの速度
コードレビューはなぜ速くすべきか?
Googleでは、個々の開発速度よりはチームの開発速度を最適化する。 コードレビューに時間がかかると、次のことが連鎖的に起こる。
- チーム全体の速度が減る。レビューをしなかった人は本人の仕事は終わったが、製品には新機能が追加されず、バグが修正されないまま時間が経つ。
- 開発者たちがコードレビュープロセスに抗議し始める。レビュアーが数日に一度のコメントを与えながら毎回大きな変化を求めてくると、作成者は不満が募り、レビューが面倒すぎると感じる。一方、コード修正直後にコメントをすばやく伝えてくれれば、ほとんどの不満は減る。
- コード品質に悪影響を及ぼす。レビューが遅いと、開発者は追加のコード整理、リファクタリング、最適化作業などを嫌がるようになる。
それでは、どれだけ速くすべきか?
あなたが現在没入している状態ではない場合は、レビュー要請を受け取るとすぐする。業務日基準1日を超えない。翌日出勤して最初に処理すべきことだと考える。私たちのガイドラインに従えば、1つのCLは1日に数回レビューを受けることができる。
速度 vs 妨害
チームの速度より個人の速度を優先する時もある。あなたが没入して開発しているなら、コードレビューをするために途中で仕事を中断してはいけない。開発者が邪魔されると、再び没入するまでにかかるコストが高くなる。業務が完了したり、すでに没入が終わった後である昼食時間や会議後、あるいは休憩室に行ってきた後にレビューをする。
迅速な応答
コードレビューの速度を決定する要因は、レビューが通過するまでにかかった合計時間ではなく、応答時間である。もちろん、速く通過されることが理想的ですが、レビューメッセージを速くやり取りすることがより重要だ。応答が速ければ、作成者の不満が減り、プロセスが遅くないと感じる。
今忙しい場合は、いつ頃にレビューを開始する予定かを簡単に返信するか、他のレビュアーをお勧めする。もう一度強調するが、没入して開発しているなら、このような返信を送るために仕事を中断してはいけない。応答が早ければ良いが、レビュー自体は十分な時間を使うことで、いつもコード品質を保証します。
時差コードレビュー
作成者が別の時間帯にいる場合は、なるべく彼が仕事中の時に応答を送信する。そうでなければ、翌日出勤するまで応答するようにする。
不完全なLGTM (LGTM with Comments)
コードレビューの速度を上げるために、いくつかの問題を残したままレビューを通過させることもある。 このような時は、(1)今後CLには反映をするのか、それとも(2)必須ではないので、あえて修正しなくても良いのかをコメントとして残しておく。異なる時間帯にある開発者同士でコードレビューをする時にも便利だ。要求仕様が反映されるまでに少なくとも一日がかかるからだ。
巨大なCL
CLが大きすぎてレビューをするのが難しい場合は、小さなCLに分割してもらう。作成者としては追加の作業を行う必要があるが、レビュアーにとっては大きな助けになり、ほとんどは分離が可能だ。もし分離することができないか、レビューが長くかかると思われる場合は、設計に対する意見でもすばやく送信する。作成者にできるだけ早くコード改善作業を開始させることが重要である。
ますます良くなるコードレビュー
ガイドを厳密に守れば、コードレビューが益々速くなることが感じられる。作成者はもう少し基準に適合するドラフトを作成することになり、レビュアーたちも迅速に応答し始める。ただ、どんな状況でも、コードレビューの大原則は必ず守り、一時的な速度向上のために品質をあきらめてはいけない。
緊急事態
コードレビュー基準を緩和して迅速に通過させる必要があるCLもある。緊急状況ガイドを参考にして、どのような場合に該当するかを確認する。