$30 off During Our Annual Pro Sale. View Details »

非エンジニアがAIで継続的に運用できる配送システムを作った話

 非エンジニアがAIで継続的に運用できる配送システムを作った話

2025/11/26 STORES Tech Conf 2025 での発表資料です。
https://storesinc.tech/conf/2025

Avatar for STORES Tech

STORES Tech

November 26, 2025
Tweet

More Decks by STORES Tech

Other Decks in Technology

Transcript

  1. 内田 友里絵
 • 2016年 STORES(旧Coiney)入社
 ◦ CS→マーケティング→広報→採用部門を経 て、2024年1月にオペレーション部門
 ロジチームに配属
 ◦

    現在はBPR本部 BPR推進グループ所属
 
 • プログラミング経験
 ◦ CS時代にステップメールのリスト抽出をする 目的で、SQLを少し・・・
 自己紹介

  2. STORES のオペレーション部門は、現場と開発をつなぐ役割を担うチーム
 ロジチーム
 STORES 決済端末の配送・在庫管理・倉庫連携などの物流業務を担 当
 アカウントマネジメントチー ム
 STORES 決済・STORES

    ネットショップの審査とアカウント管理(登 録〜開通〜情報変更〜解約)を担当 
 アドミニストレーションチー ム
 振込業務や経理関連業務(請求書・領収書発行、入金確認など)を 担当
 全チームがオペレーション負債という共通の課題を抱えている
 なぜ配送システムを作ろうと思ったか①:オペレーション負債の蓄積

  3. 端末配送
 STORES 決済 利用開始までの流れ
 なぜ配送システムを作ろうと思ったか①:オペレーション負債の蓄積
 申込み
 加盟店
 審査
 STORES 決済


    アプリ接続
 キャッシュレス決 済
 利用開始
 ユーザー
 STORES
 ユーザー
 ユーザー
 STORES
 配送先リスト作 成
 梱包・出荷
 作業
 STORES ロジチーム
 提携先倉庫
 配送
 配送業者

  4. 端末配送
 STORES 決済 利用開始までの流れ
 なぜ配送システムを作ろうと思ったか①:オペレーション負債の蓄積
 申込み
 加盟店
 審査
 STORES 決済


    アプリ接続
 キャッシュレス決 済
 利用開始
 ユーザー
 STORES
 ユーザー
 ユーザー
 STORES
 配送先リスト作 成
 梱包・出荷
 作業
 STORES ロジチーム
 提携先倉庫
 配送
 配送業者
 ココ!!
  5. 業務システム
 
 配送機能
 業務システム内の配送機能でファイル作成が完結
 
 キャンペーンや営業案件等、
 現場からの配送要望が多様化し、
 スプレッドシート併用が必須に
 
 追加の開発要望をあげるも、


    プロダクト開発との並びでは
 なかなか優先順位が上がらず
 配送データ
 Spread
 sheet
 配送ファイル作成における課題 
 なぜ配送システムを作ろうと思ったか①:オペレーション負債の蓄積

  6. 業務システム 配送機能 業務システム内の配送機能でファイル作成が完結
 
 キャンペーンや営業案件等、
 現場からの配送要望が多様化し、
 スプレッドシート併用が必須に
 
 追加の開発要望をあげるも、
 プロダクト開発との並びでは


    なかなか優先順位が上がらず
 配送データ
 Spread
 sheet
 配送ファイル作成における課題 
 スプレッドシート運用の限界
 なぜ配送システムを作ろうと思ったか①:オペレーション負債の蓄積

  7. 生成AIによるGAS
 (GoogleAppScript)コード 生成で、
 複雑な仕組みを自動化でき ることに気づく
 当時のマネージャーに
 kintoneのリンクを
 渡され、生成AIで
 どんなことができるかを深堀 り


    「Rails Girls Tokyo」に
 参加し、後日生成AIで VScodeやGitHubの
 使い方について
 理解を深める
 なぜ配送システムを作ろうと思ったか②:生成AIの登場

  8. 💡データをkintoneにかき集めてJavaScriptコードを使えば、
 配送ファイル作成を自動化できるのでは
 課題と方法が線でつながり、実現までの道のりが見えた 生成AIによるGAS
 (GoogleAppScript)コード 生成で、
 複雑な仕組みを自動化でき ることに気づく
 当時のマネージャーに
 kintoneのリンクを


    渡され、生成AIで
 どんなことができるかを深堀 り
 「Rails Girls Tokyo」に
 参加し、後日生成AIで VScodeやGitHubの
 使い方について
 理解を深める
 なぜ配送システムを作ろうと思ったか②:生成AIの登場

  9. ツール
 用途
 kintone
 認証/API機能を標準搭載。JSカスタマイズで複雑な処理も実装可能。
 ChatGPT
 要件整理やコード生成に活用。
 VScode
 ChatGPTで生成したコードを整理・保存。GitHub連携
 GitHub
 リポジトリでコードを保管・共有し、履歴を一元管理。


    要件整理・
 設計
 (スプシ)
 kintone
 アプリ構築
 ChatGPTで
 JSコード
 生成
 VSCodeに
 コード貼り付け
 GitHub
 連携
 GitHub
 リポジトリで ファイル管理
 kintoneをベースに、コード共有・保管方法をどうするか等考えを広げていった
 今は Cursor
 ツール構成

  10. コード生成・テス ト 設計反映 論点議論 1. Miroとスプレッドシートで業務フローを可視化し徹底議論 2. コード生成・テストを並行実施して実現可否を検証 3. 全体設計に落とし込む

    議論が「できる/できない」から「どう実現するか」へ変化 このサイクルを ひたすら高速で実施 生成AIを活用した開発サイクル

  11. • チームで設計を理解する
 ◦ 自動化は導入後が本番。設計理解が属人化すると運用は続かない ◦ 初期段階から細かい設計と背景をすべてチームで共有し、「なぜこの仕組 みなのか」を全員が説明できる状態をつくった • コードが読めない分テストで補う ◦

    オペレーションは独自ルール・例外処理が常に変化する領域。 ◦ AIはコード生成できても、事業変化の意図は理解できない ◦ 意図した仕様になっているか、コードが理解できない分、テストで検証・改 善を繰り返した AIは補助ツール、設計責任は私たちで

  12. →全てのファイルを「全レコードを対象」にする処理へ修正
 →ファイル分割して1から作り直し
 • ページ概念の誤認識
 ◦ kintone の JavaScript カスタマイズは「表示中のレコードに対してのみ イベントが発火する」仕様を理解しておらず、


    一括処理を実装したつもりが画面にロードされたレコードだけが処理対 象になっていた
 
 
 • ファイルの巨大化でデバッグ不能に
 ◦ 10個ほどある処理を 1 ファイルにどんどん書き足していった結果、全体 構造が複雑になり、エラー原因を特定できなくなった 数々の失敗と手戻り

  13. Spreadsheet 配送データ アプリ Big Query Spreadsheet BigQuery 決済基盤 Spreadsheet 配送データ

    アプリ Before データチーム After Spreadsheet 決済基盤 データチーム ロジチーム GAS GAS 転換点:自分たちの領域を見極める
 • 当初は配送データをスプレッドシートとBigQueryから並行取得で設計
 • データ基盤チームと相談し、BigQuery集約→kintone一括連携に変更したこ とで全体の保守性を向上。

  14. BigQuery 購入データ 初回配送リスト 配送データ アプリ データチーム ロジチーム 特別配送リスト 再送リスト アラート検知

    住所/宛名 文字数確認 配送方法変更 配送ID採番 配送データ 完成 ・ ・ ・ ・ ・ ・ 各種配送データのアプリ連携をデータチー ムに一任できたことで 、 ロジチームはアプリ内データの処理に集中して取り組むことができた 転換点:自分たちの領域を見極める