レビュー文化の構築
ストーリー
「ツールの使い方は分かった。でもな、レビュー文化が チームに根付いていないと、どんな良いツールも意味がない」
松本先輩が過去のプロジェクトの経験を話し始めた。
「以前いたチームでは、レビューが形骸化していた。 忙しいからとLGTMだけ付けてマージ。 結果、本番障害が月に3回。それで目が覚めたんだ」
「レビュー文化は一朝一夕にはできない。 でも、正しいルールと習慣を作れば、必ず定着する」
レビュー文化とは
レビュー文化とは、チーム全体がコードレビューを「面倒な作業」ではなく「価値ある投資」として捉え、日常的に実践している状態です。
健全なレビュー文化のチーム
┌─────────────────────────────────────┐
│ ・レビューは学習の機会 │
│ ・誰でもレビューを依頼できる │
│ ・誰でもレビューを担当できる │
│ ・フィードバックは建設的 │
│ ・レビュー時間がスケジュールに含まれる │
│ ・レビュー品質が評価される │
└─────────────────────────────────────┘
レビュー文化を築くためのルール
1. レスポンスタイムのルール
推奨ルール:
├── レビュー依頼から24時間以内に初回レビュー
├── 修正依頼から8時間以内に再レビュー
├── ブロッカーの場合は即座に対応
└── 不在時は代理レビュアーを指名
2. PRのサイズルール
| PRサイズ | 行数目安 | レビュー時間目安 | 推奨 |
|---|---|---|---|
| XS | 1-50行 | 5-10分 | 最適 |
| S | 51-200行 | 15-30分 | 良い |
| M | 201-400行 | 30-60分 | 許容範囲 |
| L | 401-800行 | 1-2時間 | 分割を検討 |
| XL | 800行超 | 2時間以上 | 必ず分割 |
3. 承認ルール
チームの承認ポリシー例:
通常の変更:
→ 1人以上のApproveでマージ可能
重要な変更(API変更、DB移行など):
→ 2人以上のApproveが必要
緊急のホットフィックス:
→ 事後レビューを条件に1人のApproveでマージ可能
→ ただし24時間以内に追加レビューを実施
レビュー文化を阻害する要因と対策
| 阻害要因 | 症状 | 対策 |
|---|---|---|
| 時間がない | レビューが後回しになる | スプリント計画にレビュー時間を含める |
| 心理的安全性の欠如 | 指摘を恐れてLGTMだけ出す | フィードバックの書き方をチームで統一 |
| スキル差 | 「自分がレビューしても......」と遠慮 | 全員がレビューに参加するルールを作る |
| 属人化 | 特定の人にレビューが集中 | CODEOWNERS とローテーションの併用 |
| 大きすぎるPR | レビューが追いつかない | PRサイズの上限を設定 |
レビュー文化を育てる施策
レビュー勉強会
月に1回、過去のPRを題材にしたレビュー勉強会を開催します。
勉強会の流れ(1時間):
1. 題材となるPRの紹介(10分)
2. 各自でレビュー(15分)
3. レビューポイントの共有(20分)
4. 振り返りとルール改善(15分)
レビュー指標の可視化
チームダッシュボード例:
指標 今月 先月 目標
──────────────────────────────────
平均レビュー時間 4h 8h <4h
PRの平均サイズ 180行 350行 <200行
レビュー回数/人/週 5.2 3.1 >5
マージまでの平均時間 12h 28h <24h
レビュー後のバグ発見率 2% 8% <3%
感謝の文化
良いレビューをしてくれたレビュアーに感謝を伝える仕組みを作りましょう。
例:
- SlackでのKudos(称賛)チャンネル
- 月間ベストレビュアー表彰
- レビューで学んだことの共有会
まとめ
| 項目 | ポイント |
|---|---|
| レビュー文化の本質 | レビューを「価値ある投資」として全員が認識すること |
| 基本ルール | レスポンスタイム、PRサイズ、承認ポリシー |
| 阻害要因への対策 | 時間確保、心理的安全性、スキル差の克服 |
| 育てる施策 | 勉強会、指標の可視化、感謝の文化 |
チェックリスト
- レビュー文化が健全なチームの特徴を説明できる
- レスポンスタイムとPRサイズのルールを理解した
- レビュー文化を阻害する要因と対策を説明できる
- レビュー文化を育てるための施策を提案できる
次のステップへ
Step 1 の最後は理解度チェックです。コードレビューの心得について、これまで学んだことを確認しましょう。
推定読了時間: 15分