🙆

『タスク分割』から『価値分割』へ。ユーザーストーリー改善に取り組み始めた話

に公開

こんにちは!
ツクリンクでアソシエイトエンジニアリングマネージャーをしている八尾(@Tomoki____Y)です。

皆さま、開発を進めていく中で、こんな経験はありませんか?

「スプリントが終わっても、なかなか完了したと言えるものがない...」
「チケットは進んでいるはずなのに、ユーザーに価値を届けられている実感がない...」
「大きな機能開発が数ヶ月続いて、チームのモチベーションが下がりがち...」

私たちのチームも、まさにこのような課題を感じていました。そして、その根本的な原因が「ユーザーストーリーの作り方」にあるのではないかと考え行動しました。

この記事では、私たちが実際に取り組んでいる「タスク分割」から「価値分割」へのアプローチ転換について、具体的な事例とともにご紹介します。同じような悩みを抱えているチームの皆さんの参考になれば幸いです。

ユーザーストーリーとは?

まず、「ユーザーストーリー」について簡単にご説明します。ユーザーストーリーとは、アジャイル開発において「ユーザーの視点から見た機能要求」を表現する手法です。

「〇〇として、△△ したい。それは ×× だからだ」という形式で、ユーザーが何を求めているのか、なぜそれが必要なのかを明確にすることで、開発チーム全体がユーザー価値を共有しながら開発を進められるようになります。

私たちのチームでは、アジャイル開発を採用してプロダクト開発を行っています。今回は、その中で非常に重要視している「ユーザーストーリー」について、実際にチームで実践している具体的な改善プロセスやノウハウをご紹介したいと思います。

「ユーザーストーリーの作り方がわからない」「タスクに分割してしまって価値が見えない」といった悩みを抱えている方の参考になれば幸いです。

かつての課題:大きなユーザーストーリーが引き起こす問題

以前の私たちのチームでは、1 つの施策に対して 1 つの大きなユーザーストーリーを作成していました。一見、理にかなっているように思えるのですが、このやり方にはいくつかの課題がありました。

  • 進捗の不透明性: 1 つのチケットが数ヶ月にわたって進行するため、チームとして日々の進捗を正確に把握するのが困難でした。
  • リスク発見の遅延: 開発の終盤になって問題が発覚し、大きな手戻りが発生するリスクを常に抱えていました。
  • モチベーションの低下: スプリント内で開発が完了せず、チームの達成感が希薄になりがちでした。また、自分の作業がどのようにユーザー価値に結びついているのかが見えにくい状態でした。

発想の転換:「タスク分割」から「価値分割」へ

これらの課題を解決するため、私たちはユーザーストーリーの考え方を根本から見直しました。それは、1 つの大きな価値(施策)を技術的な「タスク」に分割するのではなく、ユーザーに届けられる複数の「価値」に分割するという思考の転換です。

すべてのユーザーストーリーは、以下の基本フォーマットに沿って作成します。

「〇〇として (Who)」、「△△ したい (What)」。それは「×× だからだ (Why)」

これにより、「何を作るか」だけでなく「なぜ作るのか」をチーム全員で常に共有し、開発を単なる作業から目的を持った価値創造へとシフトさせることを目指しています。

具体例:「ミッション機能」のストーリー分割

ここで、過去に実施した「新規会員に対して、ミッション機能を提供する」という施策を例に、具体的なストーリーの分割方法をご紹介します。

【以前のやり方】

以前は、以下のような 1 つの大きなストーリーと、それを実現するための技術的なサブタスクが存在していました。

  • ストーリー: 新規会員に対して、ミッション機能を提供する
    • サブタスク: UI コンポーネント作成
    • サブタスク: バックエンドロジック
    • サブタスク: DB 作成
    • ...など

以前のやり方:技術的なタスク分割

この方法では、すべてのサブタスクが完了するまで価値を提供できません。私たちは、このような技術レイヤーでの分割はアンチパターンだと考えています。

【新しいやり方】

これを「価値分割」の考え方で、以下のように複数のユーザーストーリーに分割します。

  • ストーリー 1: ユーザーは自分が行えるミッションの内容を確認できるようになる
  • ストーリー 2: ユーザーは自分が行えるミッションの進捗状況を確認できるようになる
  • ストーリー 3: お知らせにてミッション完了したことを知ることができる

新しいやり方:価値分割

さらに、これらを「Who, What, Why」のフォーマットで具体化します。

ユーザーストーリー 1: 新規会員として (Who)、ミッションページで挑戦できるミッションの一覧を確認したい (What)。それは、サービスを使いこなすために何をすれば良いのかを具体的に把握したいからだ (Why)。

このように、一つひとつが独立した価値を持つストーリーに分割することで、開発が完了したものから順次リリースし、継続的に価値を届けることを目指しています。

「良いストーリー」を保つための"INVEST"原則

私たちは、作成したストーリーの品質を担保するために、「INVEST」と呼ばれるガイドラインを用いています。

INVEST は、良いユーザーストーリーの条件をまとめた 6 つのチェックポイントです。この原則に従うことで、チームが迷いなく開発を進められ、確実に価値を届けられるストーリーを作成することができます。

また、ストーリー作成時だけでなく、レビュー時にも「このストーリーは INVEST を満たしているか?」という共通の判断基準として活用でき、チーム全体での品質向上に繋がります。

  • Independent (独立性): 他のストーリーに依存せず、単独で開発・リリースが可能。
  • Negotiable (交渉可能): 詳細を固定せず、チームで議論・調整できる。
  • Valuable (価値): ユーザーやビジネスにとって明確な価値がある。
  • Estimable (見積可能): チームが規模を見積もれる。
  • Small (小さい): 1 スプリント(数日〜2 週間)で完了できるサイズである。
  • Testable (テスト可能): 完了を客観的に判定できる。

「価値分割」で期待できる変化

この新しいアプローチを導入することで、チームに以下のような変化が期待できると考えています。

  • 達成感と生産性の向上: スプリント内で価値を積み上げることで、チームが毎週「完了」を経験できる機会が増えることが期待できます。
  • 進捗の可視化: 週単位で進捗が見えやすくなり、チーム全体の状況把握がより容易になると考えています。
  • リスクの早期発見: 小さな単位で開発とテストを繰り返すことで、問題点をより早期に発見・修正できるようになると想定されます。
  • ビジネスへの柔軟な対応: 価値の高いストーリーから優先的に取り組むなど、より柔軟な意思決定ができるようになることが期待されます。

私たちの目指す「価値創造」

私たちにとって、この取り組みは単なるチケット管理方法の変更ではありません。チームの働き方を「タスクの消化」から「価値の創造」へとシフトさせるための、大きな文化的な一歩として位置づけています。
それは、ツクリンクのコーポレートアイデンティティにあるOriginという価値観のひとつである「顧客思考」を、開発プロセスにおいて具体的に実践するための取り組みでもあります。

私たちの「顧客思考」では、「問いや課題を市場から定義し、ヒントを顧客からもらい、解を自分たちで導き出し、市場から評価を受ける」というサイクルを重視しています。ユーザーストーリーの「価値分割」は、まさにこのサイクルを高速化する手法です。小さな価値単位で開発することで、より早く、より多くのフィードバックを得られ、「数多くのトライアル・アンド・エラーを繰り返しながらチャレンジし続ける」ことが可能になります。

「ストーリーを小さくする」ことは「価値を小さくする」ことではありません。むしろ、顧客との接点を増やし、学習を速めることで、最終的に「市場に対して今まで以上の期待値を超える新たな価値を提供」するための土壌を作ることだと考えています。

ただし、まだ完璧とは言えない状況で、日々のレトロスペクティブを通じて継続的な改善に取り組んでいます。特に、チーム全体でのユーザー価値への意識統一や、ストーリー分割のスキル向上については、今後も磨き続けていく必要があると感じています。

明日から始められる 3 つのステップ

もし「価値分割」のアプローチに興味を持っていただけたら、以下のステップから始めてみてください。

  1. 現在のストーリーを INVEST 原則でチェック
    既存のユーザーストーリーが 6 つの原則(独立性、交渉可能、価値、見積可能、小さい、テスト可能)を満たしているか確認してみてください。

  2. 1 つの大きなストーリーを複数の価値に分割してみる
    「UI を作る」「DB を設計する」ではなく、「ユーザーが ○○ を確認できる」「ユーザーが △△ を実行できる」のように、ユーザーが実際に得られる価値ごとに分割してみてください。

  3. 「Who, What, Why」のフォーマットを試す
    新しく作成するストーリーで、「〇〇として、△△ したい。それは ×× だからだ」の形式を使ってみてください。

私たちもまだ改善途中ですが、この記事が皆さんの開発チームで「価値分割」に取り組むきっかけになれば幸いです。一緒により良いユーザーストーリー作成を目指していきましょう!

Discussion