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

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

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

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

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

両方やる必要あるだろうか? 理論的にはやっても、実際にはやらないことが多い。 物語の絵(narrative picture)をつくるためにユースケースを使い、その後、計画するためにストーリーにブレークダウンしていくチームもあるだろう。一気にストーリーに行くチームもあるだろう。ユースケースだけ使い、ユースケーステキストに注釈でどの機能をいつ get down するかを示すチームもあるだろう。


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