【フィーチャーくどうかいはつ】

フィーチャー駆動開発(FDD) とは?

💡 機能というピースでパズルを組み立てる開発術
📌 このページのポイント
フィーチャー駆動開発(FDD)の5プロセス 1. 全体モデル 開発 2. 機能リスト 作成 3. 機能ごと 計画 4. 機能ごと 設計 5. 機能ごと 実装 機能ごとに繰り返し 機能リストの例 商品を検索する カートに追加する 注文を確定する レビューを投稿する 進捗管理 60% 完了 完了: 6機能 / 進行中: 2機能 / 未着手: 2機能 完了 進行中 未着手
フィーチャー駆動開発の5プロセスと進捗管理のイメージ
ひよこ ひよこ

フィーチャー駆動開発って、普通の開発と何が違うの?

ペンギン先生 ペンギン先生

普通の開発だと「画面を作る」「データベースを設計する」みたいに技術的な作業で分けがちだけど、FDDは「ユーザーが商品を検索できる」「注文履歴を表示する」みたいに、ユーザー視点の機能で区切るんだよ

ひよこ ひよこ

なるほど!でもどうやって進めるの?

ペンギン先生 ペンギン先生

まず全体のモデルを作って、次に機能リストを洗い出す。そのあと機能ごとに設計して実装するんだ。5つのプロセスがきっちり決まっているから、大人数のプロジェクトでも迷子にならないんだよ

ひよこ ひよこ

アジャイルとは違うの?

ペンギン先生 ペンギン先生

アジャイルの一種ではあるけど、スクラムほど自由度が高くなくて、最初にしっかり全体設計をするのが特徴だね。ウォーターフォールの計画性とアジャイルの柔軟性のいいとこ取りみたいな感じだよ

ひよこ ひよこ

どんなプロジェクトに向いてるの?

ペンギン先生 ペンギン先生

特に50人以上の大規模チームで威力を発揮するよ。機能単位で担当を割り振れるから、並行開発がしやすいんだ。進捗も「全100機能中、60機能完了」みたいに見える化しやすいんだよ

ひよこ ひよこ

機能リストを作るのが大変そう…

ペンギン先生 ペンギン先生

そこがFDDの肝だね。「<クライアント名>の<アクション>を<結果>する」という形式で書くルールがあって、これが曖昧さを排除してくれるんだ。実はこのフォーマットの厳密さが、大規模開発で混乱を防ぐ秘訣なんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フィーチャー駆動開発」って出てきたら「ユーザー向けの機能を単位にして計画・開発する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Feature-Driven Development」 = 機能駆動開発
💬 1990年代後半にジェフ・デ・ルカとピーター・コードが提唱した手法で、「Feature(機能)」を中心に開発を回すという考え方だよ
← 用語集にもどる