http://www.martinfowler.com/bliki/UseCasesAndStories.html

ユースケースとXPのストーリーとの違いは?

これはよくある質問だが、なかなか答えがまとまらない質問でもある。XPコミュニティの人々は、ストーリーはユースケースを簡単にしたものだと捉えている。私も以前はそう思っていたが、今は別の見方をしている。

ユースケースとストーリーは、どちらも要求をまとめる(organize)方法という意味で一致している。違うのは、まとめる「目的」である。 ユースケースは要求をまとめ、ユーザーがシステムにどう携わるか、システムをどう使うかといった物語(narrative)を形作っていく。したがってユースケースは、ユーザーのゴールとシステムとの相互作用がどれだけそのゴールを満たすかに焦点を当てる。 一方、XPのストーリー(同じようなものにフィーチャーと呼ばれるものがある)では、計画を作るために要求を小さく刻んでいく。ストーリーはXPのリリース計画プロセスの一部として見積もれる程度に、ブレイクダウンされるのだ。 要求の使い方が違うために、ユースケースの試行錯誤とストーリーの試行錯誤は、まったく違ったものとなる。

この2つには複雑な相関関係がある。 ストーリーのほうが粒度が小さい(fine-grained)。なぜなら、1回のイテレーション(XPでは1,2週間)の中で作り上げられなければならないからだ。小さなユースケースだとストーリーとまったく同じ大きさになることもあるが、1つのストーリーは1つのユースケースの中の1つまたはそれ以上のシナリオ、もしくは1つまたはそれ以上のステップに相当する可能性がある。1つのストーリーは、ユースケースナレーティヴ(use case narrative)(訳注:ナレーティブとは、ユースケースシナリオに任意の設定を入れたもの。具体例。なハズだが……。–kdmsnr)の中にすら現れないこともある。ナレーティブとは、例えば新たな資産償却法をポップアップリストに追加するようなケースのことを指す。(訳注:イメージとしては、ストーリは1つのユースケースナレーティブの中に現れないようなこともストーリとして扱われます。例えばポップアップリストのちょっとした変更のようなケースなんかではないでしょうか?(ユーザーにとっては見た目などは関心ごとだが、ユースケースのシナリオには普通そんなことを書かないから)–うしお)。

ユースケースとストーリー両方を使う必要はあるだろうか? 理論的には可能であっても、実際に両方使うことはほとんどない。チームによっては、初期の段階でユースケースを利用して物語のイメージ(narrative picture)を構築し、 その後ストーリーに分解して計画を立てることもある。また、直接ストーリーを作るチームもある。さらに、ユースケースを作成し、ユースケーステキストに注釈をつけて、どのような機能がいつ実行されるかを示すチームもある。


  • うしおさんにご指摘いただきました。ありがとうございます。–[[kdmsnr]]