なぜコードレビューを行うのか
個人的には責任分散、正確さの向上、知識共有の3つの為だと思っている
レビューには時間がかかるので、この3つが不要な状況ならレビューしなくても良いとも思っている
合意を取る
レビューがない場合
私が作りました→bugで顧客に損害が出ました→全て私の責任です
これはつらいので避けたい
個人の心に大ダメージが残る
チームで合意をとってリリースすると
顧客に損害がでてもチーム全体の責任になる
個人の心が守られる
正確さの向上
2人のチェック範囲が重なっていないと無意味
だからpull requestには動作確認方法が必要
「自分が何をチェックしているか」を相手にチェックしてもらう
「実装できました。私なりにチェックしました。何をチェックしたかは秘密だけどレビューお願いします」
これをやられると「こういう境界条件もきっと実装者が確認してるだろうな、まあいいやLGTM」になる
知識共有
ソースコード内のあるコンポーネントについて、中身を知っている人が複数いる状況にしておく
bugがでた時に修正できる人が増える
そのコンポーネントに関わる新機能を作れる人が増える
将来的な開発効率が上がる
レビューがないと、何もわからん他人のコードをまず調査する事からはじめなければならなくなる
実装上のテクニックの共有
レビューのついでに新しいプログラム言語の仕様や、設計手法にキャッチアップしていける
一生OJTし続ける
増井俊之.icon
知識共有
責任共有
一体感
テスト内容のチェックとテストもコードレビューと同時にやればもっとXPぽくなるかも