コードレビューを成功させる10の心得

いくつかの事に気をつけてコードレビューを実施するだけで、効率的にコードの品質を高めることができる。効果的なコードレビュー方法をまとめてみた。


(1)複数の有識者でレビューを実施する
レビューアも人間なのでレビューが面倒になってしまうときもある。複数のレビューアが一緒にレビューすることによって、一人だけ「指摘なし」と言うわけにもいかず手抜きし辛くなる。


(2)事前に指摘事項をまとめておく
ソースコードを読む速度はレビューアのスキルによって異なるため、レビュー時に読み合わせするのは時間がもったいない。調査が必要となることもあるし、じっくりと考えたいこともある。レビューは前もって行っておく。指摘箇所のフィードバックだけは対面で行うのがよい。


(3)印刷してレビューする
エコではないが、指摘箇所を気軽に書き込めるのがよい。書き込み量をみるだけでレビューアがどれだけ丹念にレビューしてくれたのかが一目でわかる。


(4)コードの重複がないか確認する
担当している箇所では重複がないとしても、他の機能と重複している可能性もある。レビューアとして複数の開発者がひとつのコードに係わることによって、これらの重複を避けることができる。


(5)読みやすいコードになっているか確認する
クラス名、メソッド名、変数名は適切に付与されているか?メソッドの長さが長すぎないか?複雑さはどうか?などコードの可読性が保たれているかを確認しよう。
これはテストでは検出できないことであり、コードレビューでしっかりと可読不能コードを検出したい。


(6)細部に拘らない
限られた時間で効果的にレビューを行うには細部には拘らないほうがよい。Javaであれば、FindBugsCheckStyleといった静的チェックツールを実施することによって、些細な過ちをレビュー実施前に少なくすることができる。同じ指摘を繰り返さないためにも、コードレビューの観点についてあらかじめチェックリストにまとめておく。


(7)レビュー結果を数値化する
レビュー時間や指摘件数などコードレビューのメトリクスを記録し、すべての機能において正しくレビューが実施されているかを確認する。


(8)情報共有を図る
コードレビューの目的は、もちろん実装の品質を向上させることが目的だが、情報共有するという目的も忘れてはならない。


(9)全部ダメとはしない
すべてを否定してしまうのは開発者のモチベーションを下げてしまう。誤った方向に進みがちな開発者には早めのレビュー実施を心がける。
もし、モチベーションを下げるほど指摘が入るようであれば、開発者が悪いのではなくレビューのタイミングが遅すぎたと言ってよい。


(10)ほめる
コードレビューに限らず優れた仕事には賞賛を。優れたコードを見つけたならばほめるべきだがなかなか難しい。


下記のCode Completeはコードレビューに関しても参考になる。

CODE COMPLETE 第2版 上 完全なプログラミングを目指して CODE COMPLETE 第2版 下 完全なプログラミングを目指して


オンラインのコードレビューツールもあるのでついでに紹介しておく。
Python製レビューツールReview Board
Take the pain out of code review | Review Board


Ruby on Railsによるソースコードレビューツール宍道湖
Google Code Archive - Long-term storage for Google Code Project Hosting.