CodingAgent時代のスクラム開発:ユーザーストーリーマッピングがAI実装の精度を高める理由
株式会社Hacobuのテクノロジー本部に所属しているtuskhsと申します。
昨年から今年にかけて開発現場ではCodingAgentが急速に浸透し、また個人的にはスクラムマスターをやらせていただくことになったりと振り返ると環境の変化が激しい1年でした。
今回は上記の個人的2大イベントをひと纏めに、スクラム開発において試したこととCodingAgent時代だからこそ感じた効果について書かせていただこうと思います。
自チーム上の課題について
私たちのチームのロードマップ開発では、プロジェクトがチームに降りてきた時点で要件を整理すれば開発できる状態になっていました。
また、次々と解決したい新しい課題も出てくるため並行して開発することが多く、リソース効率を重視したチーム運営を行っていました。
その結果、開発メンバーは自分のタスクだけに焦点が当たりやすい状態になっており、次のような課題が生まれていました。
- ユーザーにもたらせるより良い解決策を開発チームで考えにくい
- 開発が進むにつれてメンバー間の認識のズレが生じ、想定外のタスクが追加で発生しやすい
また、CodingAgentの浸透によって開発スピードは向上しましたが、その結果QAのテスト負荷が高まるという新しい課題も見えてきました。

ユーザーストーリーマッピングとの出会い
あるときチームの方々と1on1をやっていたときにメンバーの方がJeff Patton氏の著書である「ユーザーストーリーマッピング」を読もうとしているという話を伺いました。
私も開発フローに対して同じイメージを持ちたいと考え購入し、また他のメンバーの方の提案もあり読書会の形で読み進めることにしました。
ユーザーストーリーマッピングを簡単に紹介すると
- 機能ではなく、ユーザーの行動(アクティビティ→タスク→ストーリー)を時系列に並べて全体像を可視化する。これによってMVPや段階的リリースの判断を容易にする
- チーム全員でマップを作ることで、認識のズレを減らし、顧客価値に基づいた意思決定を行う
という開発フレームワークです。
開発前にユーザー行動を可視化し、チーム全員でレビューすることで、より良い解決策を探ることができるという点や、マッピング中の会話を通じてメンバー間の認識のズレを減らせる点が現在抱えているチームの課題解決に機能しそうと考え、自チームのスクラム開発の軸として採用することにしました。

実際に試してみたところ、チーム内での振り返りにおいても
- ロードマップ開発のようなスコープの大きいテーマを扱うときには有効に感じた
- 頭の中が整理されてよかった
- 深く理解している人とそうでない人の差がうまった
- ユーザーともたらす価値を意識するので作るもののゴールがぶれにくい
というようなフィードバックをいただけたので試してみて良かったと感じています。
CodingAgentとの思わぬ親和性について
また、ユーザーストーリーマッピングはCodingAgentとの親和性も高いと考えています。
その理由は、最近CodingAgentを使う上で主流となっている考え方の一つ、スペック駆動開発(以下SDD)にあります。
SDDとは、伝えた仕様をベースに、要件定義、詳細設計、タスクをCodingAgentで作成し、それを用いて実装を進めることで、開発の舵取りを容易にする手法です。
私もSDDによる開発を行っていましたが
- 他のメンバーにとっては、生成されるSpecですら指し示す「実装の背景や意図」の理解に時間がかかる
- 実装したい内容に応じてCodingAgentに与えるコンテキストの形式がバラバラになり、その結果生成されるSpecやコードの品質も不安定になる
というモヤモヤを抱えていました。
一方でユーザーストーリーマッピングではチーム全体でユーザーの行動とその解決策を話し合い、実装の受け入れ条件について合意を取ります。
そのためSDDのドキュメント作成時にCodingAgentに伝える内容は、すでにチームでの認識のズレが最小限に抑えられた状態になっています。

その結果、
- メンバーは共有しているイメージ、受け入れ条件に基づいて生成されたドキュメント及び実装をレビューすることができる(経緯の理解に割く時間が減る)
- 受け入れ条件の体裁さえ守ればチームで生成されるSpecの質が一定になりやすい
- ユーザー行動に基づいた内容を元にSDDを行うため過剰設計が起きづらい
というメリットを無理なく享受できているように感じました。
これから
とはいえ、私たちのチームでもこの手法を取り入れてから日が浅く以下の課題を感じています。
- 共通理解の深さによっては、ユーザーストーリーマッピングは時間がかかりすぎる
- 共通理解を築くプロセスでは、AIによる生産性向上の恩恵を十分に受けられていない
今後は、これらの課題を解決するために、徐々に自分たちのスタイルを確立しながら
より速く、よりユーザーの目線に立った機能をリリースするチームを目指していきたいと考えています。
Discussion