ゆとり日記

心にゆとりを持って生きたいプログラマーの雑記です。気が向いたら書きます。

コードレビューをAIと伴走する

概要

AIによるドキュメント駆動の開発、vibe-kanbanなどを利用したコーディングがメジャーになり、コード生成は凄まじいスピードで行えるようになりました。しかし、コード生成が高速になっても、人間のコードレビューの高速化には限界があるので、そこがボトルネックになってしまいます。なので、今回はコードレビューに対するスタンスを自分の中で言語化することにしました。

AIによるレビューはアリなのか?

結論からいうとアリだと思います。なので、自分は以下のようにコードレビューをしています。

  • コードを一通り読んで頭に入れる。
  • Claude Codeのレビュー機能でPull Requestをレビューしてもらう。
  • ここまでの手順を終えて違和感や不安を感じるなら、他のコーディングエージェントを利用してクロスレビューをしてもらう。

この手順を踏み、人間の目・AIの双方でコードレビューをするようにしています。

人間の目を通している理由はいくつかありますが、主な理由は以下の2つです。

  • 顧客に提供する製品のコードに対して責任を持ちたい
  • AIは既存コードを模倣してコードを生成する傾向があるので、量産されたくないコードを検知して修正する機会の逃したくない

私は内容を把握してないコードをリリースフローに載せるのは危険だと考えています。全てをAI任せにしていると、AIがたまに書く力任せなコード(例: テストコードに無理矢理なassertを書く)を見逃してしまいますし、コードの細かい部分が頭に残らないので脳内にインデックスを作ることもできません。また、インシデントが起きた場合に「AIがOKと言ったのでリリースしました」という説明しかできないならば、開発者としての責任を果たせていないとも感じます。

2つめの理由も個人的にはかなり気にしているところです。 Claude CodeでもCodexでもそうですが、AIはコードを生成する際に既存のコードを参考にする傾向にあります。長期間の運用を続けているプロダクトだと、「現時点の開発スタイルと食い違う」コードがどうしても出てきます。AIにレビューを任せきりだと、AIが避けたい書き方で書いたコードを出力した時に見逃してしまうリスクがあります。

ただし、PoC(Proof of Concept)で作っているプロトタイプ開発程度であれば、コードの詳細を事細かに把握する必要はない場合もありえます。開発の目的が価値検証ならば、中身の精密さよりも顧客にプロトタイプを触ってもらう事が最優先だからです。

PRを作る側で考える

自分がレビューを依頼する側にはなることも当然あるので、その際もAIを利用したクロスレビューはそれなりに有効だと考えています。

人間にはどうしてもバイアスがあるので、セルフレビューには限界があります。そうした時に複数のコーディングエージェントを活用したクロスレビューは存外に役に立ちます。 また、他のチームメンバーのレビュー前に自分の手前でクロスレビューをしておくことで周りの負担を減らすメリットもあります。

まとめ

ということでAIを任せきりにせずにコードレビューをAIと伴走する進め方について簡単に纏めてみました。

しかし、現状では従来の開発フローの効率化しかできていません。AIありきの新たな開発フローが今後出てきたら、今回のブログで書いた工夫も不要になるかもしれませんね。