「AIが書いたコードを人間が全部読む」時代は終わる
結論から言うと、今までと同じレビューをしていては意味がない。
AIで実装速度が10倍になっても、 レビューする人間が今まで通り全部読むなら、そこがボトルネックになる。
つまり、
- 実装 → AIで高速化
- レビュー → 人間が低速のまま
これだと、全体最適では大して速くならない。
しかも実際には、
- プロンプトを考える
- AIを誘導する
- 修正を指示する
- 再生成する
みたいなコストもある。
なので、
「AIで速くなった気がするけど、トータル生産性は微妙では?」
という意見が出るのもわかる。
でも、それは レビュー側の前提を変えていない からだと思う。
人間レビューをそのまま移植しても詰む
今のコードレビューって、
- 全ファイル読む
- 命名を見る
- ロジックを見る
- 責務分離を見る
- バグを探す
みたいな、人間が実装していた前提の文化で作られている。
でもAI時代にこれをそのまま続けると、 レビュー担当だけが地獄になる。
AIは疲れないので大量生成できる。 しかし人間のレビュー速度は変わらない。
結果、
「実装待ち」ではなく 「レビュー待ち」の組織になる。
実は昔も同じことが起きている
昔、アセンブラを人間が直接書いていた時代は、
「コンパイラが吐いたコードなんて信用できるのか?」
という議論があった。
でも今、誰もコンパイラの出力を1行ずつ見ない。
Cを書いたら、
- コンパイラ
- 最適化
- リンク
- バイナリ生成
までを「正しい前提」で進めている。
つまり、人類は過去にも、
「低レイヤを全部レビューする文化」
を捨ててきた。
もちろん、コンパイラとAIには大きな違いがある。 コンパイラは決定論的で、出力は形式的に保証されている。 一方、AIは確率的で、毎回違う出力を出す。
ここはまったく同じではない。
ただ、「出力を全部目視で確認する文化を、人類はいずれ捨てる」 という方向性自体は、おそらく同じだと思う。
AIにはAIでレビューさせる
じゃあレビューが不要かというと、もちろん違う。
ただし、人間が全部読むのではなく、 AIにAIをレビューさせる 方向にシフトしていく。
実装したAI自身に「どう?」と聞いても甘くなる。 AIは、自分のセッションに対しては甘い。
同じコンテキストで「これで大丈夫?」と聞くと、 自分が書いたものを正当化する方向に動きがちだ。
なので、Anthropicも公式に、 実装エージェントとは別の “辛口レビュアーエージェント” を立てることを推奨している。 (Claude Code のサブエージェントが分かりやすい例)
ポイントは、
- セッションを分ける
- コンテキストを分ける
- レビュー専用のプロンプトで人格を分ける
こと。
最近は、
- Generator → 実装
- Reviewer → 設計レビュー
- Evaluator → テスト・検証
- Critic → 厳しめにツッコミ
みたいに役割を分ける構成も増えてきている。
人間のチーム開発に近い。
人間の役割は「全体監査」にシフトする
ただ、現時点ではまだAIを完全には信用できない。
なので人間の役割は残る。 ただしそれは、
「毎回全部レビューする人」
ではなく、
「全体品質を監査する人」
に近くなると思う。
具体的には、定期的に(例:週1回、PR 10本ごと、リリース前など)、
- ディレクトリ構造
- 責務分離
- 依存関係
- 命名規則
- ADR
- テスト戦略
- DB変更方針
みたいな、“システム全体” を見る。
これは品質確認でもあるが、同時に、
「人間側がシステムを理解する」
ための作業でもある。
なぜこれが必要かというと、AIは高速でコードを増殖させるからだ。
放置すると、
- 一見動く
- でも構造が腐る
- 誰も理解してない
という状態になる。
AIは局所最適は得意だが、長期的アーキテクチャの整合性はまだ弱い。
だから人間は、
- 全体設計
- 品質基準
- 境界定義
- レビュー基準
を管理する方向へシフトしていく。
まとめ
AI時代に、
「人間が全部レビューする」
を続けると、レビューがボトルネックになる。
必要なのは、
- AIに実装させる
- AIにレビューさせる(別セッション・別人格の辛口エージェント)
- 人間は全体品質を監査する
という役割分離。
昔、人類がコンパイラを受け入れたように、 AIコード生成も最終的には「信用前提」の世界へ進む。
そして、その移行期にある今、 「どう監査するか」の設計こそが、AI時代のエンジニアリング組織の次の競争領域 になる。