レビューという前提が、静かに崩れている
AIが書いたコードを、人間がどこまでレビューすべきか。
これは「レビューをサボっていいか」という話ではない。AIが生成するコード量が、人間の目視で追えるスケールを完全に超えつつある、という構造的な問題だ。
Qiitaに投稿された記事「AIが書いたコードの品質をどう担保するか」(@umtt)は、この問いに正面から向き合っている。派手な技術論ではなく、「本番リリースしてよい、と判断する基準をどう作るか」という実務的な問いだ。読んで損はない。
従来のソフトウェア開発における品質担保は、記事の言葉を借りれば「二段構え」だった。コードレビューでバグを潰し、テストで残りを潰す。それでも本番でバグが出たらPMが責任を負う。この構造自体は今も変わっていないが、AI駆動開発の普及によって1段目のレビュー工程が成り立たなくなりつつある。「レビューがボトルネックになるか、形骸化するかの二択」という表現は、多くの現場で実感として共有されているはずだ。
4つの戦略を整理する
記事では、人間がどこまでレビューに関与するかを軸に、4つの戦略が提示されている。
- A案(全自動): AIがレビューとテストを実行し、全テストパスで本番リリース。現実的なのは個人開発に限る。
- B案(テスト中心): テスト計画・テスト設計はAIが作成し、テスト内容とテスト結果を人間がレビュー。コードレベルのレビューはAIに委譲。
- C案(設計+テスト): B案に加え、設計方針やアーキテクチャ粒度でもコードを確認。詳細実装には踏み込まない。
- D案(全コードレビュー): AIが生成した全コードを人間がレビュー。従来の文化をそのまま維持する形。
比較の軸として「安全性・スピード・個人開発・スタートアップ・高信頼性業界」が挙げられており、筆者の結論はB案(テスト中心レビュー)が現時点では最も現実的というものだ。
その理由として3点が挙げられている。A案は「人間によるテスト観点の妥当性確認なしに本番投入する勇気は出ない」として時期尚早。C・D案は「適切なプロンプトとガードレールがあればコードレベルでは十分な品質を出せる」現状では過剰。そして、「何が正しい挙動かを定義する作業は、ビジネス文脈を理解している人間にしかできない」として、テスト観点こそ人間の主戦場とすべき、という論旨だ。
ここからは見方だが——構造として読むと何が見えるか
この記事が面白いのは、「どのツールを使うか」ではなく「人間の関与をどこに集中させるか」を問うている点だ。
少し引いて見ると、これはAI時代におけるエンジニアの役割の再定義の議論でもある。コードを書く・読む・直す、という従来のサイクルから、「何をテストすべきかを決める」「何が正しい挙動かを言語化する」という上流の判断に人間の価値が移動しつつある。
言い換えれば、「コードを読む力」より「要件とテスト観点を結びつける力」のほうが、これからの現場で問われるということになる。
ただ、ここには一つの空白がある。テスト観点の設計自体の品質は、誰が担保するのか、という問いだ。B案では「テスト内容を人間がレビューする」とあるが、そのレビュアーがビジネス文脈を本当に理解しているかどうかは、組織によって大きく差がある。テスト中心レビューが機能するかどうかは、レビュアーの質に強く依存する。ここは記事が触れていない、だが重要な論点だ。
実務で考えるべきこと
プロダクト担当・開発リード向けに言うなら、今すぐやるべきことは一つだ。「自社の信頼性ラインはどこか」を明示的に決めること。
記事にも「信頼性の担保ラインは、企業や業種によって大きく異なる」とある。金融・医療のような高信頼性が求められる業界では、D案未満が許容されるかどうか「正直疑問」とまで書かれている。一方でスタートアップは、A案では信頼性が担保しきれず、D案では速度が出ない、としてB案が落としどころとされている。
重要なのは、この判断を暗黙知のままにしないことだ。「なんとなくレビューしている」「慣習でD案をやっている」という状態は、AIコード生成の量が増えるほど機能しなくなる。B案を選ぶにしても、それを意識的に選んだのかどうかで、障害発生時の対応と組織学習がまるで変わる。
もう一点。記事は「AIの進化スピードを踏まえれば、この最適解は数年単位で動く」と締めている。つまり今B案を選ぶことと、B案に固執することは別物だ。A案でも回る状態になったとき、フットワーク軽く移行できる組織が強い、という指摘は実務的に正しい。判断基準を「選んだ経緯ごと」記録しておく習慣が、将来の切り替えコストを下げる。
次に問題になること
近い将来、この議論は「テスト観点の品質をどう評価するか」へ移行すると見ている。
B案が普及した場合、人間のレビュー対象は「テストがちゃんと書かれているか」になる。だとすれば、テスト設計の善し悪しを判断できる人材が現場に必要になる。これは今のエンジニア採用・育成の軸とは少しずれている。
もう一つは責任の所在だ。AIが生成したコードに起因するバグが本番で発生したとき、「テストはパスしていた」「テスト観点は人間がレビューした」という状況で、誰がどのように説明責任を果たすのか。技術的な品質担保の議論は進んでいるが、組織的・法的な責任の設計はまだ追いついていない。
「AIコードを信用していいか」という問いに対して、今のところ「テスト観点は人間が握る」が最も堅実な現実解だ。その結論自体は妥当だと思う。ただ、それが機能するかどうかは、その「人間」の質と、判断基準を明示化できているかにかかっている。