こんにちは!
現在、株式会社キカガクでソフトウェアエンジニアをしています。 中村です。
株式会社キカガクでは AI コードレビューを導入し数ヶ月が経過しました。
今回は、弊社の AI コードレビューの取り組みの内容を共有すると共に、AI コードレビューにより「生産性は上がったのか」についても触れていきたいと考えています。
本記事は「ソフトウェアエンジニア」「開発マネージャー」の方々を対象読者として想定しています。
AI コードレビューとは
文字通り AI がコードレビューを行う事です。
実装したコードを AI が分析し、人間がレビューコメントをするのと同じように、 AI が PR 上にてレビューを行ってくれます。
人間がレビューをする前に AI にレビューをしてもらうという流れを踏むことで、人間側のレビュー工数が減るだけではなく、より本質的な実装部分のレビューに工数を使えるというメリットもあります。
今回は導入方法などに関しては以下に記載の他のブログにお任せして、「弊社の実際の取り組み内容」の紹介に進みたいと思います。
※ AI コードレビューの導入方法については下記のブログを参考に弊社でも設定しましたのでご興味のある方はこちらもご覧ください。
弊社の AI コードレビューの取り組み
弊社では AI コードレビューのツールに Code Rabbit を採用しています。
採用した背景は下記のとおりです。
- PR 上で AI にコードレビューをお願いできる
- プロンプトなど細かい設定ができそう
- 導入コストも高くなさそう
運用の流れ
PR のラベルに 「Review Awaiting」というラベルを設定したタイミングで GitHub Actions が動き Code Rabbit によるレビューが行われるように設定しています。
ラベルを設定したあとは PR 上で CI が走り、レビューコメントと共に PR で変更した箇所についてのサマリー的なものも投稿されます。
実装者はレビューを出す前に、一度 Code Rabbit にレビューをしてもらいその内容を確認&修正したうえで、チームメンバーにレビューを依頼するようにしています。
※ 先に AI にレビューをしてもらうことで、凡ミスなどを防ぐためです。
レビュー内容の実例
実際にどんなことを Code Rabbit がレビューしてくれるのか紹介します。
- 命名が適切でないことに関してのレビュー
- ランタイムエラー発生の可能性についてのレビュー
上記のように実用的なレビューもある一方で、あまり参考にならないレビューも少なからずあります。
例えば、特に問題がない変更の箇所でも「この変更には問題ありません」というようなコメントですね。
※ PR のコメント欄が圧迫され見辛くなる事が多いです・・・。
不要なコメントが入らないようにプロンプトに「変更について問題の無い場合はコメントしないでください。」と指示をしてもなかなかコメントが減らないので悩ましいところです。
ただ自動生成されるファイルや、そもそもレビューが必要ないファイルに関しては下記のような設定で Code Rabbit のレビュー対象から外すこともできます。
with: path_filters: | !**/*.ts !**/*.tsx
不要なコメントを完全に無くすことは難しそうですが、このような地道なチューニングを続けることでより実用的なものになるようにしていきたいですね。
AI コードレビューによって生産性は上がるのか
客観的なデータで説明することは難しいですが AI コードレビューによってチームの生産性はわずかながら上がっているなと実感しています。
- メンバーにレビューを出す前に Code Rabbit にレビューしてもらうことで凡ミスに気づけるためレビュー工数の削減になる
- ある一定の品質が担保された状態でレビューに出せるので、レビュワーも本質的なビジネスロジック等のレビューに注力できる
- 新しい技術や初めて使うライブラリに関して、知らなかった使い方や注意点をレビューで教えてくれる
Code Rabbit のドキュメントを読むと、ファイル単位でプロンプトの命令を変えることができたり、よりプロダクトルールに沿ったレビューにカスタマイズすることもできそうなので今後も少しづつチューニングを続けたいと思っています。
終わりに
最後まで読んでいただきありがとうございました!
本ブログが、AI コードレビュー採用への一助になれば幸いです。
また、弊社では他にもChatGPT for teams, Github Copilot なども採用しております。
AI を用いた快適な開発環境に興味関心のある方は、ぜひカジュアル面談からでもお話出来ることを楽しみにしています。