🧠

Luup Serverチームの開発スケールのためのAI活用事例

に公開

はじめに

こんにちは!株式会社Luupで、Software部 Platformグループ Technology Enabling チームに所属している安元(やっすー)です。

一ヶ月ほど前とはなりますが、「AI活用Meetup」というイベントに「開発スケールのためのAI活用」というタイトルで登壇したので、内容をご紹介します。

https://lapras.connpass.com/event/361288/

Luup開発チームのAI活用

Luupでは、マイクロモビリティシェアのサービスを通して、人々の移動をより豊かにすることを目指しています。サービスが成長し、開発規模が拡大する中で、私たちは「いかにして少人数で開発をスケールさせ、同時に品質を確保するか」という大きな挑戦に直面しています。

alt text

この挑戦に対する我々の答えの1つが、AIの積極的な活用です。ここ半年で、私たちの開発スタイルは単なるAIアシスタントの利用から、AIが自律的にコーディングを行う「Agentic Coding」へと大きくシフトしました。現在、コミット数のインサイトとしても Devinがトップコントリビュータ となっています。

本記事では、私たちがAIと共に開発を進める上で直面した課題と、それらを乗り越えるための具体的な取り組みについてご紹介します。

AI活用における2つの大きな壁

開発規模の拡大に伴い、AIを活用する上で2つの大きな課題が浮上しました。

課題①:AIコードの品質低下

開発規模が大きくなるほど、AIに渡す情報(コンテキスト)が増え、複雑化します。その結果、AIが生成するコードの品質が安定しない、という問題が発生しやすくなります。

Luupが直面した課題

課題②:コードレビューのボトルネック化

AIの導入によってプルリクエスト(PR)の数が約倍以上と格段に増加しました。これは生産性向上の証である一方、人間のレビュアーによるコードレビューが追いつかず、開発プロセス全体のボトルネックとなってしまいました。

課題

課題解決へのアプローチ:Serverチームの事例

Serverチームは現在、正社員 8名 + 業務委託 6名程度の人員で開発を行っています。

比較的少人数ながら、上記の課題を解決するため、特にServerチームでは以下の3つの工夫を実践しています。

1. コンテキストエンジニアリング (DDDの活用)

AIに正確なコンテキストを伝え、高品質なコードを生成させるため、私たちはドメイン駆動設計(DDD)のプラクティスを導入しました。ドメインモデルやコンテキストマップを整備することで、AIがドメインの境界や依存関係、ユビキタス言語を正確に理解し、迷わずにコードを生成できる土壌を整えました。

コンテキストマップ

2. モジュールベースのアーキテクチャ

コードベース全体を一度にコンテキストとして与えるのではなく、関心事を分離した「モジュラーモノリス」アーキテクチャを採用しました。これにより、各モジュールは高い凝集度を保ちつつ、他のモジュールとは疎結合な関係になります。AIは特定のモジュールに集中して開発を行えるため、コンテキストが限定され、より精度の高いコーディングが可能になりました。

フォルダ構成

3. レビュー負荷の軽減

コードレビューのボトルネックを解消するため、AIの力を最大限に活用しています。

  • Claude Codeによる自動レビュー: 定型的なチェックや簡単な修正案の提示を自動化。
  • Devin Knowledgeの活用: 過去のレビューでの指摘事項をナレッジとして蓄積し、同じ指摘を繰り返すことを防ぐ。
  • 開発プロセスの工夫: PRを細かく作成し、外部依存のないドメインレイヤーから実装を進めることで、レビューの単位を小さく、シンプルに保つ。

コードレビューのボトルネック解消

Luupの開発チームAI活用マップ

現在、私たちの開発フローはAIエージェントであるDevinClaude Codeを中心に回っています。

各開発チームの活用マップ

図のように、Devinが中心となりコーディング支援やリファクタリングではClaudeと連携しつつ、機能開発からタスク管理、テストケース作成、インフラ運用まで、開発のあらゆるプロセスに関与しています。PdM、SRE、QAといった各チームとDevinが直接やり取りをすることで、開発サイクルが高速化されています。

例えばこれまでは PdM や QA チームが実装仕様を確認する際、都度サーバーチームへの確認が必要でしたが、現在は Devin Search を利用することで直接使用を確認することが可能となり、全体効率性が図られました。

まとめ

AIを開発に本格導入して見えてきたのは、AIエージェントが活躍するための土壌(アーキテクチャ)とコンテキストの基盤がいかに重要かということです。

コーディングの速度においてAIが人間を上回ることは明らかです。今後の私たちの挑戦は、「AIにどうやって仕事を委譲し、そのアウトプットを管理し、責任を負うか」という点に集約されると考えています。

私たちはこれからも、AIという強力なパートナーと共に、ソフトウェア開発を通じて新しい交通インフラづくりに挑戦していきます!💪❤️‍🔥

おまけ:Devinをチームへ浸透させるための遊び心ある取り組み事例です 🤖

おまけ

最後に

Luup では、一緒に開発してくださるソフトウェアエンジニアを積極的に募集しています。

カジュアル面談も実施しておりますのでぜひお気軽にお声掛けください!
https://recruit.luup.sc/

Luup Developers Blog

Discussion