この記事は、Sansan Data Intelligence 開発Unit ブログリレーの第8弾です!!

こんにちは。技術本部Data Intelligence Engineering Unit Data Hubグループの秋田です。今回のブログリレーでは、新プロダクトSansan Data Intelligence(SDI)の立ち上げメンバーが、多種多様な観点から立ち上げにどう関わったのかを取り上げています。
私はSDI開発ではコアドメインのバックエンド実装やAIの導入推進を担当しています。今回はSDI開発立ち上げ期においてAI活用をどのように進めたかについて話したいと思います。
速度より質 〜どこからAI活用していくかを見定める〜

開発工程にはAIで自動化しやすい部分とそうでない部分があります。鍵となるのは「質と量ともに十分なコンテキストをAIに与えられるか」であり、"garbage in garbage out"なのはもちろん、コンテキスト不足も品質や速度の低下を招きます。したがってGitHub上の情報で完結する部分、すなわちプログラミング、コードレビュー、単体テストなどからAI導入を進めていくのが吉です。SDIでは設計以降のプロセスにて、ADRや設計ドキュメントをGitHubに残す方針としており、これらをベースに作業できる領域はAI導入しやすいと判断しました。
また、新規プロダクトは開発プロセス自体も手探りでした。SDIでは新たな設計を採用したこともあり*1、設計手順やレビュー体制など検討事項が多くありました。プログラムのパフォーマンス最適化で「早すぎる最適化を避けなさい*2」とよく言われるのと同じように、開発プロセスが固まっていない段階で無理にAIによる効率化を狙っても、無駄な最適化になるばかりか、AIの運用保守コストも増大します。「速くなるはずが、かえって遅くなった」という事態を避けるため、敢えて速度を後回しにする判断が重要です。そのため、要件定義・設計・結合テスト・QAテストなどプロセス改善余地のある工程については、チーム全体への本格的なAI導入を慎重に見極めながら進めることにしました。
AI活用方針を考えるうえで重要なのは「あくまでも最初は質を求めること」です。AIのアウトプット品質が低いとレビュー・保守コストが増大するリスクを招きますが、逆に質さえ担保できれば速度は後からついてきます。
開発初期から1stリリースまでに何をしたか
開発初期 〜AIに慣れ、限界を知る〜
開発初期(昨年の夏頃)はAgent Skillsなどの仕組みが登場する前で、複雑なコンテキストを要するタスクで精度を出すのは難しく、主に小規模なタスクでどこまでやれるかを検証していました。
AIに慣れるための取り組み
- Devin、Claude Codeなどにメンバー全員で触れる「AI Week」を実施
Claude Code Actionの活用
- 会話ログからのドキュメント自動作成
- 自動コードレビュー
今後を見据えた人間によるドキュメント整備
- ADRなどAIに役立つ資料をGitHubに蓄積
特にドキュメンテーションやレビューには強く手応えがありました。コンテキストが会話ログやコード差分に限定されるため、完璧とはいかないまでも十分実用可能な水準のアウトプットを得られました。うまくいったものはClaude Code Actionなどの「チーム全体が自動的に恩恵を受けられる仕組み」として取り入れていきました。
1stリリースまで 〜速度より質を高めるためのAI活用〜
立ち上げ期で一定の質が確保できたものを中心に、AI活用をチームにさらに浸透させました。
ClaudeやClaude Code Actionの活用
- ADRを参照したコードレビュー強化
- Issue・PR・Docs自動翻訳機能
- SlackからのIssue自動作成機能
- ドキュメントとコードを比較し、ドキュメント修正が必要な箇所を洗い出す機能
Agent Skillsの活用
- AIによるADRの読み書き・検索をAgent Skillsで強化
AIコードレビューではワークフローからレビュー用のSubAgent*3を呼び出してレビューをさせています。SubAgentはADR違反の指摘だけでなく、PRにADRに記載すべき事項が含まれる場合に、書くべき内容を提案してくれる機能も備えています。これによりコード品質の向上だけでなく、ドキュメントを常に最新の状態に保てるようになっています。

Issue・PR・Docs翻訳機能ではGitHubのIssueやPR、ADRなどのドキュメントを自動翻訳します。SDI開発チームには英語話者のチームもいるため、自動翻訳はスムーズなコミュニケーションに欠かせません。IssueやPRへのコメントはClaudeによって自動翻訳され、「------」でオリジナルコメントと分離されるため、コメント編集時の再翻訳にも対応しています。ADRについてはPRへのpush時に日英の差分を検出し、差分があれば翻訳版のドキュメントをcommit & pushする仕組みになっています。

AIがADRを参照する機会も増えているため、ADR検索用のSkillも用意しています。ADRはディレクトリ構造とファイルの命名規則が厳密に定められているため、全文を読まずとも効率的な検索が可能です。

これらの取り組みはあくまでも人間による開発プロセスを補強する位置付けであり、どちらかというと速度よりは質を重視したものになっています。特にドキュメント周りはAIによるフォローを手厚く入れたことによって、鮮度の高いドキュメントが自然に蓄積される状態になったと考えています。
これからの展望
開発開始から蓄積したGitHub上のADRは140件に上り、Agent Skillsの登場などAIの急速な進化も相まって、AIに任せられる場面は増え続けています。現在は敢えて後回しにしていた要件定義・設計へのAI本格導入に着手しており、Spec-Driven Developmentをベースに、「質が高く手戻りの少ない仕様」をAIと共に作る手法を開発中です。質の高い仕様が揃えば、その後のフェーズは一気にAIで自動化できると考えています。
おわりに
SDI開発のAI活用はこれまで質を重視し、ドキュメントや SkillsなどAIに必要なコンテキストを時間をかけて整えてきました。ここからはいよいよ質から速度へと転換させていくフェーズなので、どこまでやれるかとても楽しみです。
Sansan Data IntelligenceはAIコーディング登場後にできた新しいプロダクトです。AIフレンドリーなボイラープレートベースの開発やGitHubへのドキュメント集約など、初めからAIを強く意識した構成にしており、幅広くAI活用しやすい環境になっています。質も速度も重視したAI活用を突き詰めたい方は、ぜひ一緒に働きましょう!
Sansan技術本部ではカジュアル面談を実施しています
Sansan技術本部では中途の方向けにカジュアル面談を実施しています。Sansan技術本部での働き方、仕事の魅力について、現役エンジニアの視点からお話しします。「実際に働く人の話を直接聞きたい」「どんな人が働いているのかを事前に知っておきたい」とお考えの方は、ぜひエントリーをご検討ください。
採用説明会を開催します

3月31日(火)に採用説明会を行います。 Sansan Data IntelligenceのProduct Ownerやエンジニアから「どんなメンバーが、どのような役割で開発に関わっているのか」「どんな課題に挑戦できるのか」という話を聞けるチャンスです。興味のある方は以下のリンクよりエントリーの上、ぜひご参加ください。
*1:Vol.02 リアーキテクチャだと思っていたら新規プロダクトを作っていた話 - Sansan Tech Blogを参照。SDIではSansan Data Hubのリアーキテクチャで構築したアーキテクチャをそのまま使用しています
*2:Premature Optimization is the Root of All Evil. 計算機科学者Donald Ervin Knuthの言葉。
*3:特定のタスクに特化したAIアシスタント。カスタムサブエージェントの作成 - Claude Code Docsを参照。