RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

PRレビュー自動化から始まった!私たちのチームのAI駆動開発の取り組み紹介

はじめに

こんにちは。フロントエンド開発課でチームリーダーをしています、北嶋です。

私が所属する開発部では、開発の「スピードUP」と「生産性の向上」を今年度の大きなテーマとして掲げています。
そこに向けて、私のチームでは開発プロセスの中でAI活用を実践していく「AI駆動開発」を推進することに、積極的に取り組んでいます。

本記事では、今年度から本格的にAI活用に取り組み始めた私たちが、どのようにAI活用を進めて、どのような成果や学びを得たのか、具体的な事例を交えながらご紹介できればと思います。
まだまだ発展途上ではありますが、私たちが実践してきた取り組みが、開発業務でAI活用をしていきたい方への、何かヒントになれば幸いです。

どのようにAI駆動開発を進めてきたか

AI駆動開発と聞くと、何か特別なノウハウや技術が必要だと思われるかもしれませんが、私たちのチームでは比較的シンプルに、以下のステップで取り組んできました。

ステップ1:KPIの設定

はじめに、通期でチームとしてどのような状態を目指すかの、KPIの設定を行いました。
最低限でもAI活用方法がチーム内で共有されている状態、更には開発フローに組み込まれている状態をイメージし、以下のようにKPIを設定しました。
チームとして共通のKPIを設定したことで、AI活用の方針にブレが生じにくくなり、取り組むべきアクションも明確になったため、AI活用するに当たってこのようなKPI設定は非常に重要なステップであると感じました。

①AIツールによる開発効率化で以下の時間短縮を実現していること
・詳細設計:30%以上短縮
・実装:30%以上短縮
・単体テスト:40%以上短縮

②マージされたプルリクエストの50%がAIエージェントが開発したものになっていること

③AI活用のノウハウを標準化して以下の開発フローにプロセス組み込みできていること
・詳細設計:API仕様書作成、画面仕様書作成
・実装:コードレビュー
・単体テスト:Unitテスト, Integrationテストのテストコード作成
・結合テスト:E2Eのテストコード作成

ステップ2:個人での利用とアイデアの共有

次に、開発業務でチームメンバーが個々で様々なAIツールを実際に試すことから始めました。
利用した生成AIやAIツールは、ChatGPT, Gemini, Github Copilot, Codex, Devin, 最近だとClaude Codeなど。

その中で「こんなことができた」「このツールは〇〇が得意そうだ」「こういうことができたら嬉しい」といった実例や意見、アイディアが次々に出てきたので、それらをカジュアルに共有する場(チャットツール上にチャンネル作成や、対面でのミーティング)を設けて、積極的に情報交換を行うようにしました。
変化の早いAIの流れについていくために大切なのは、いきなり完璧な活用法を求めるのではなく、「まずは使ってみる」「それを共有してみる」という文化を醸成することなのかな思いました。

ちなみに私のチームでは、情報共有する際には以下の共通フォーマットで記載してもらうようにしています。
フォーマットを作っておくことで、人によって情報をブレなく共有できるので、これも効果的な取り組みの一つだと実感しています。

■試してみたこと
①概要

②利用したAIエージェント(モデル)は何か

③入力(資料やルール等)は何か

④プロンプトは何か

■結果
①出力結果はどうか

②実用的か

■工夫した点

■標準化検討

■参考記事(あれば)

ステップ3:チームでの標準化

個人の試行錯誤から有益なアイデアが生まれてくると、次にそれをチームとして「標準化」して運用に載せたいよね、という話が出てきました。
現時点で、実際に運用されている事例はいくつかあるのですが、ここでは2つを取り上げて紹介したいと思います。

例①:DevinのAPIを活用したプルリクエストの自動レビュー

私たちのチームで最初に大きな成功を収めたのが、DevinのAPIを活用したプルリクエストの自動レビューです。
GithubのPR上にUserScriptで「PRレビューを依頼する」のボタンを配置し、このボタンを押下するだけで、Devin APIを発火させてコードレビューを依頼できるというものです。
(ボタンを画面上に設置してしまう辺りがフロントエンドチームらしいなと思ったりしました笑)

実際にDevinがレビューコメントを付けてくれた一例が、以下の画像です。
プロンプトを工夫することで、インラインでコメントしてくれたり、imo,mustなどの接頭語も適宜付与してくれたり、修正の提案(suggestion)をしてくれたりと、非常に分かりやすく指摘してくれていることが分かるかと思います。
運用としては、実装者が人にコードレビューを依頼する前に、Devinへのコードレビューを一度挟むことで、実際に人がレビューする工数は大幅に削減できたと感じています。

こちらが上手くいった背景には、もともと「レビュー観点」や「コメントルール」がある程度明文化されていたことが大きく影響していると、個人的には考えています。
AIは自然言語化された明確なルールや指示があれば、その能力を最大限に発揮してくれるのだなと実感する、良いきっかけになりました。

また、開発フローの1つの作業を標準化がすることができたという成功体験が生まれたことで、チームとしてAI駆動開発に取り組もうとする姿勢がより一層高まったように思います。
AI活用によって「こんなに便利になるんだ」という体験を実際にすることが、メンバーのAI活用への積極性を駆り立てる原動力になるのだな、身を持って実感しました。

例②:Github Projectsによるプロジェクト管理の効率化

こちらは私が主導して検証を行い、最近運用に乗せたばかりの、GitHub ProjectsとAIを連携させたプロジェクト管理の効率化についての紹介です。

背景

これまでは、Googleのスプレッドシートでプロジェクト管理を実施していましたが、タスク分割や工数計算などで、多くの手作業が発生していました。
セルの計算式が気付かない内に壊れていることも多く「これをAI活用で楽にできないかな」と考えたのが、この取り組みのきっかけです。

Github Projectsでプロジェクト管理を行う方法は様々あると思いますが、まず作りたい機能の詳細を書いておく親のissueの作成を行い、それを実際に必要な作業ごとに子のsub-issueへと分割し、sub-issueを元に実際の作業を進めるというイメージで考えました。

  1. 機能issueの作成
  2. タスクsub-issueへの分割
  3. 工数の見積もり入力
  4. 実装から単体テストの実施

これらの作業をAIにある程度任せられないかと考え、検証を行っていました。

AI連携方法

この頃には、チームではClaude Codeの活用が進められており、「標準化できそうな作業が見つかれば、カスタムスラッシュコマンドを作成して共有する」という流れがありました。
ここでも作業をほとんど、カスタムスラッシュコマンド化しています。コマンドの中身の詳細については、社内の情報もあるため載せられないのですが、以下のような流れで実作業を行なっています。

1. 機能issueの作成
以下のコマンドを実施すると、GitHubプロジェクトに新しい機能issueを作成されます。必要なカスタムフィールドについてもAIが自動で設定を行います。
※ただし、機能の内容については、今は人の手でissueに詳細に記入を行なっています(ここもいずれAI活用をしたい部分です)

/create-main-empty-issue <機能名>

2. タスクsub-issueへの分割
以下のコマンドで、作成した機能issueを元に、調査・実装・テストコード作成といった、具体的な作業タスクをsub-issueとしてAIが自動で切り出します。 この時に、AIが判断した「タスク種別」や「重み」を、カスタムフィールドを自動で設定します。

/create-sub-issues <機能IssueのURL>

コマンドを実行すると、機能issueの下にタスクsub-issueが分割されて登録され、以下のような状態となります。

3. 工数見積もり
各sub-issueの「タスク種別」や「重み」を元に、あらかじめ定義したルールに従って作業工数・レビュー工数・総工数を算出し、カスタムフィールドに自動で設定します。

/estimate <機能issueのURL>

コマンドを実行すると、以下のように見積もり工数に数字が入力されます。これを利用して、今は人がガントチャートの作成を行なっています。

4. 実装〜単体テスト
最後にissueのURLをAIに渡して、実装と単体テストを実施させるという流れになっています。
(ここのやり方は個々に任せている段階なのですが、今後標準化に向けて動いていきたい部分です)

AI連携を試してみた結果

結論から言うと、Github ProjectsとのAI連携は、非常に実用的でした。
手作業でissueを作成したり、ラベルを付けたり、工数を見積り入力する手間は確実に削減できました。

ただし、改善点はまだまだ山積みという状態です。

  • 人の目の介入は不可欠
    特に実装フェーズでは、AIが途中で意図しない方向に進んでしまうことがあります。
    現状では、大きなタスクを丸投げするのではなく、sub-issue単位で一つずつ実行を依頼し、都度人間が確認する必要がある状態です。
  • インプット(ルール)の質がアウトプットの質を決める
    タスク分割や見積もりの精度は、まだまだ粗削りなものでした。これは、私たちがAIに渡しているルールや定義がまだ曖昧だからという要因が正直大きいです。
    逆に言えば、ルールが明確に自然言語化・整備されているチームほど、AI活用の恩恵をスムーズに受けられるのだろうなと感じています。

検証が終わって実運用を始めたばかりの段階なので、改善点は多くありますが、プロジェクト管理をAIと連携しやすいGitHub Projectsに移行し、運用するための土台は作れた状態となりました。

得られた学び

これらの取り組みを通じて、技術的な知見以上に、チームや文化に関する大きな学びがありました。

  • AI活用の士気を高めるのは「実用的な成功例」
    机上の空論ではなく、「これ、便利だよね」と誰もが実感できる実用的な成功例が一つ生まれると、チーム全体のAI活用に対する士気が一気に高まります。
    私のチームでは、PRの自動レビューは、まさにその大きなきっかけとなりました。
  • AI活用は「ルールを明文化する」絶好の機会
    AIにタスクを任せるためには、これまで「暗黙の了解」で済ませていた作業手順や判断基準を、誰もが理解できる自然言語で明文化する必要があります。
    このプロセスは、チームの属人性を排除し、開発プロセスそのものを洗練させる良い機会になっていると感じます。
  • AIはあくまで作業者、判断は人がするべき
    AIに全てを任せようとするのは時期尚早です。AIが出したアウトプットを鵜呑みにせず、要所要所で人間がレビューし、方向性を修正することが極めて重要です。
    AIを便利な「作業者」として活用する姿勢が、現時点では賢明かなと、個人的には考えています。

おわりに

私のチームでのAI駆動開発の推進は、正直まだまだ始まったばかりの段階です。

刺激的なアイデアを次々と試す若手メンバーを見ていると、「AIネイティブ世代」の台頭を肌で感じ、私自身も大いに刺激を受けています。
AIの分野は情報の変化が非常に早いので、「まず使ってみる」という探究心と、「こんなことに使えるかも」というアイデアが勝負の世界なのかもしれない、とも個人的には感じていました。

この記事が、皆さんのチームでAI活用を始めるための一歩を踏み出すきっかけになればと思います!

Copyright © RAKUS Co., Ltd. All rights reserved.