Upgrade to Pro — share decks privately, control downloads, hide ads and more …

『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
GO Inc. dev
September 29, 2026

『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発

GO TechTalk #34 データサイエンティストの生成AI活用で発表した資料です。

■ YouTube
https://www.youtube.com/watch?v=7t9fIeBU2MQ
■ connpass
https://jtx.connpass.com/event/370877/

GO Inc. dev

September 29, 2026

Transcript

31 slides
  1. サービスを支えるアルゴリズムサーバー ここ開発してます バックエンド API ユーザー アプリ アルゴリズム サーバー ▪ ▪

    ▪ コールバック 配車 プラットフォーム 情報取得 リアルタイムETA サービス (予約/運行管理) アルゴリズムサーバーの役割 ▪ 予約・運行管理 ▪ APIリクエスト駆動で検索・提案・ キャンセルなど ユーザーや運行の状態管理や配車依頼 ▪ 一定周期のバッチ処理(運行最適化) ▪ 経路データ、提供エリア関連のデータ生成 ▪ 車両配置最適化など ▪ 探車・配車依頼 ML予測 サービス 相乗りマッチング MySQL データ生成 BigQuery / S3 配給計画 役割が多岐にわたり複雑 & 「相乗り」という特殊なドメイン (※) ETA (Estimated Time of Arrival): 到着時間予測 © GO Inc. 6
  2. バイブコーディングの限界 バイブコーディングは「部分的に動くものを作る」ことはすごく得意 ◦◦機能追加して </> 開発者 AI 部分的な実装 一見動作する ただし、規模が大きくなると Context

    Drift チャット履歴が流 れ初期要件を忘却 他の機能との不整合 機能追加のたび に別の場所が壊れる 統一性のない開発 実装方針がバラバラ で一貫性が失われる 収拾がつかないことに。。。 © GO Inc. 10
  3. バイブコーディングの限界 『GOエコノミー』のアルゴリズムサーバーは非常に複雑 複雑なアルゴリズム 非同期処理・外部連携 • 経路生成 • 相乗りのマッチング • 運行最適化

    • 運行・ユーザー状態管理 • 機械学習・統計処理 etc. • 車両探索依頼 etc. このような複雑性を持つ開発では特に、 対話ベースの場当たり的な実装では全体の整合性を保てない © GO Inc. 11
  4. スペック駆動開発とは スペック駆動開発(SDD: Spec-Driven Development) ▪ コードを書き始める前に、「仕様(Spec)」を明文化 ▪ 仕様書を「唯一の正解 (Source of

    Truth)」として、AIエージェント に参照させながら実装させる ▪ AIエージェントがシステムの全体仕様を把握できる ▪ → 整合性が保たれた開発が可能 ▪ 仕様書という前提知識が残るため、会話の文脈が切れてもAIがコン テキストを保ったまま実装を進められる © GO Inc. 14
  5. SDDの基本サイクル 代表的なSDD開発ツール ▪ GitHub Spec Kit ▪ ▪ SDD実践のためのCLIツール (内部はエージェントスキル)

    ▪ SDDを前提にしたAI IDE Amazon Kiro GitHub Spec Kitの主要サイクル 1. Specify : 要件整理 → 成果物 spec.md 2. Plan : 技術設計 → 成果物 plan.md 3. Tasks : 実装タスクへの分解 → 成果物 tasks.md 4. Implement : AIエージェントが実装 5. converge : 仕様を満たしているか検査 © GO Inc. 15
  6. Claude Codeの自作SKILL群として導入 SDD導入する上での検討事項 ▪ Spec Kit や Kiro は有用な実践例 ▪

    ▪ 一方で、プロセスや成果物が固定化されやすい 導入初期は試行錯誤しながら運用を確立したい → Claude Codeの自作SKILL群でSDDプロセスを実装 SDDの思想を取り入れつつ、運用はチームに合わせて柔軟に © GO Inc. 16
  7. SKILL構成 ▪ /idea ▪ /specify ▪ ▪ ▪ .steering/YYYYMMDD-<name>/idea.mdを新規作成 「背景・目的・実現したいことを記載」(対話ベースで書かせてる)

    ▪ ▪ idea.mdを読み込み、仕様書を新規作成・更新 仕様書の種別に応じて、以下サブスキルを呼び分ける ▪ /uc-design, /entity-design, /algorithm-design, /grpc-log-spec ▪ 仕様書の種別と管理に関しては後述 変更箇所のユーザー承認を得たら、workplan.mdを作成(何を実装するか合意) ▪ /implement ▪ workplan.mdを読み込んで、どのタスクまとめて実装するかユーザーに確認してから実装 仕様書を唯一の正解とし、仕様書にない挙動は実装しない ▪ 内容に応じてAIが判断するが、大体全タスクまとめて実装することが多い デフォルトはTDD(テスト駆動)で実装。完了後はテスト結果を通知して承認を得る ▪ ▪ 実装内容と仕様書の整合性を確認し、ズレがあれば仕様書を修正 仕様書↔実装ファイルの相互参照を追記 ▪ ▪ ▪ /finalize © GO Inc. 17
  8. AIが迷わない仕様書体系 仕様書はAIエージェントが作成・更新 (/specifyで実行)する (人間ではなくAIが編集する → AIが迷わないような仕様書管理が大事) 「まず全体を理解してから詳細を見る」 導線を提供することが重要 ▪ 階層的に管理

    ▪ ▪ ▪ ▪ L1 : Project Context ▪ 全体ルール ▪ 機能の振る舞い ▪ 複雑なロジック、外部連携詳細 L2 : Use Case Spec L3 : Tech Detail 概要 → 詳細の順で理解可能なように下階層への参照を記載 © GO Inc. 21
  9. 仕様と実装の整合性を保つ仕組み /finalize フェーズ ▪ 実装が仕様書通りかを確認 (仕様書と実装の相互参照) GitHubでコードと一緒に管理 ▪ Pull Requestで仕様変更をレビュー

    ▪ コードと仕様の乖離を防ぐ [重要!] 組織として取り組む ▪ 『GOエコノミー』のアルゴリズム開発では、基本的な開発はSDDで 行うことが前提 (更新されなくなったら陳腐化する) ▪ 「普段の開発フロー」として定着させることで更新が継続 ▪ ▪ 仕様書の差分が増えるため、PRの説明文を整えるSKILLなども整備され た チームでのAIとの向き合い方のアップデートも重要 © GO Inc. 22
  10. まとめ ↓ ▪ 課題:複雑なドメインではバイブコーディングが機能しなかった ▪ スペック駆動開発と仕様書の管理により解決 (コードを書くことはほぼ無くなった) ▪ 仕様書は「人間が読むもの」→「AIエージェントが読んで動くもの」に。 それに合わせた管理方法が重要

    ▪ 仕様書がコードとセットで管理されることで、副次的な効果も ▪ 不具合調査、分析、仕様検索にも生成AIが活用可能に これからの働き方 AIエージェントと協業することを前提とした開発フローの設計が重要 © GO Inc. 31

More Decks by GO Inc. dev

Other Decks in Technology