この記事は、AI はコードレビューを時代遅れにしたのではなく、立証責任を明示的にしたのだと論じる。冒頭の主張は、動くという証拠のないプルリクエストは速く出荷しているのではなく、作業を下流に押しやっているだけだというものである。そこから記事は、AI の速度によって一緒くたにされがちな 2 つのこと、すなわち変更を生み出すことと、その変更が意図したとおりに動くことを確かめることを切り分ける。Osmani は、以前にも述べたという規則、すなわち「コードが正しく動くのを自分の目で見ていないなら、それは動かない」を改めて述べ、AI はこの規則の言い訳になるのではなく、むしろこの規則を増幅すると論じる。
記事はこの問いを作業の文脈ごとに分けて扱う。記事によれば、個人の開発者はますます「推論の速度」で出荷するようになっており、重要な部分だけをレビューし、自動テストを最後の砦として頼りにしている。一方、ミスのコストが高く、コードの寿命も長いチームでは、最初のパスには AI のレビューボットを使いつつも、人間による承認を維持している。記事の説明では、どちらのパターンも AI をアクセラレーターとして扱っており、両者を分けるのは検証、すなわち誰が行うか、何を対象とするか、いつ行うかである。
記事の実践的な成果は、作成者がレビュアーに対して負うものについての短いフレームワークである PR コントラクト と、人間のレビューと AI のレビューで作業をどう分担するかについての一連の原則である。締めくくりの枠組みは、ボトルネックはコードを書くことから、それが動くことを証明することへと移っており、AI が何を届けたとしても、その責任は人間が負い続けるというものである。
要点
- 記事の中心的な主張は、AI はコードレビューをなくしたのではなく、立証責任を明示的にしたというものである。したがって変更は、テストの合格や手動での検証といった証拠とともに出荷されるべきであり、レビューはそのうえでリスク、意図、説明責任に費やされるべきである。
- Osmani は、レビューを省略しても作業がなくなるわけではなく先送りされるだけであり、AI を使って高速に成功している開発者は、まず検証の仕組みを構築した人たちだと論じる。
- 個人の開発者に対して、記事は次のことを推奨している。セーフティネットとしての充実した自動テスト、エージェントがどの言語でも実装を構築・修正しながら検証を進められるような、言語に依存しないデータ駆動のテスト、そして完成した成果物に対する手動テストと批判的な思考の継続である。Osmani は自身のループを、AI とともに spec.md を起草し、それを承認したうえで、書く → テストする → 直すを繰り返すものだと説明している。
- チームについての記事の主張は、実際の問題はスタイル上の問題の見落としではなく量だというものである。AI は検証能力よりも速く出力を増やすため、レビューが律速段階になる。したがってチームは漸進主義を徹底し、エージェントの出力を消化しやすいコミットに分割すべきである。
- セキュリティは、人間による監督が譲れない領域として挙げられている。記事の規則では、認証、支払い、シークレット、信頼できない入力に関わるコードは、マージ前に人間による脅威モデルのレビューとセキュリティツールによるチェックの両方を必要とする。
- コードレビューは知識移転の仕組みとして示されている。作成者が自分の提出した AI 生成コードを説明できない場合、チームはオンコールでのデバッグを可能にする共有コンテキストを失うと記事は論じる。
- 記事は、AI レビューツールの使用経験はまちまちであり、調整されていれば価値があるが、そうでなければ「テキストのノイズ」として退けられると報告し、そうしたツールには感度、コメントの種類、オプトインの方針を意図的に設定する必要があると結論づけている。
- 人間の説明責任は譲れない一線として述べられている。AI がどれだけ貢献したとしても、変更の責任は人間が負わなければならない。
背景
この記事は、実践者としての Osmani 自身の立場から書かれており、いくつかの種類の外部資料に依拠しているが、それらは再掲するのではなくリンクで示されている。シニア開発者が AI 生成コードをどれだけ出荷しているかについての調査の数値、AI 生成コードにおけるエラーやセキュリティ上の欠陥の割合についての報告、AI 導入下でのプルリクエストのサイズと変更失敗率の測定、そして他の実践者が公表している立場である。そのうち 2 つは直接引用されており、記事ではなくそれぞれの発言者に帰属するものである。1 つは、もうあまりコードを読まず、ストリームを眺めて重要な部分だけを見ているという Peter Steinberger の説明、もう 1 つは、AI エージェントがプルリクエストを承認する人間のエンジニアの代わりになるとは思わないという Graphite の Greg Foster の発言である。記事はまた、OCaml のメンテナーが 13,000 行の AI 生成プルリクエストを却下したことを取り上げ、AI 生成コードのレビューは人間のコードのレビューよりも負担が大きく、量そのものがチームの管理すべき問題であることの例としている。
今後について、記事は大規模な組織で AI ガバナンスがますます重視されるようになると予想している。AI による貢献についての正式な方針、従業員がコードをレビューしたことの承認、「AI コード監査人」のような役割、そして複数リポジトリにまたがるコンテキストや独自の方針の強制を提供するエンタープライズ向けプラットフォームである。記事の見解は、これらはレビューがどのように行われるかの変化であって、レビューが何のためにあるかの変化ではないというものである。