FDDのフィーチャって?

アジャイル開発手法FDD―ユーザ機能駆動によるアジャイル開発 (ボーランドオフィシャルブック)

アジャイル開発手法FDD―ユーザ機能駆動によるアジャイル開発 (ボーランドオフィシャルブック)

  • 作者: スティーブン・R.パルマー,ジョン・M.フェルシング,Stephen R. Palmer,John M. Felsing,今野睦,長瀬嘉秀,飯塚富雄,デュオシステムズ
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/03
  • メディア: 単行本
  • 購入: 1人 クリック: 13回
  • この商品を含むブログ (15件) を見る

仕事でフィーチャが〜と言われても、説明されてもいまいちよくわからない。フィーチャとユースケースって何が違うの?というか相対的にどういう位置づけなの?と疑問ばかりなので、FDD本を読んでみた。

FDDのユーザ機能(フィーチャ)
・位置づけ
開発手法、方法論は数あれど(ユーザ機能駆動、ユースケース駆動、ドメイン駆動etc)それらの目的は、"システムが行う必要がある抽象度の高い要件を、管理可能な問題に分割する。"こと。⇒FDDでは、ユーザ機能(フィーチャ)単位で管理する。
・ユーザ機能とは?
顧客にとって価値のある機能。
ビジネスシステム:ビジネスプロセス内の任意のアクティビティへ対応付けられる。
ビジネスシステム以外:顧客が実施しているタスク内のステップあるいは選択肢と同等。
例:販売の合計を計算する。ユーザのパスワードを検証する。
※インフラストラクチャ(ユーザインタフェース、データ記憶装置、ネットワークの信頼機能)の完成は開発にとって重要だが、顧客にとって重要ではない。それらはビジネス上の本質的な価値を持たないから。
ユースケース単位では駄目な(難しい)理由
粒度、書式、詳細化の程度が曖昧であるため。
ユースケースとの差別化
ユーザ機能は下記の形式で表現される。<オブジェクト><結果><アクション>
ユーザ機能は小さく、2週間以内で実装できるもの。かつアクセサ以上のもの。2週間以内で実装するには複雑すぎる機能は、下位の問題がユーザ機能と呼べるほど小さくなるまで、分解する。※このように粒度を指定して差別化する。

例えば、ユースケースを2週間で実装できるものにしたら、ユーザ機能と同等になるかもしれないが、ユースケースの概念を理解している人に混乱をもたらすので、別の言葉としてユーザ機能(フィーチャ)を用いているらしい。