【フィーチャーくどうかいはつ】
フィーチャー駆動開発(FDD) とは?
💡 機能というピースでパズルを組み立てる開発術
📌 このページのポイント
- ユーザー視点の「機能」を最小単位として開発を進める手法
- 全体モデリング → 機能リスト → 設計 → 実装の5つのプロセスで構成される
- 大規模チームでも機能単位で担当を分けやすく、進捗管理がしやすい
- アジャイルとウォーターフォールの中間的な位置づけで、計画性と柔軟性を両立する
フィーチャー駆動開発って、普通の開発と何が違うの?
普通の開発だと「画面を作る」「データベースを設計する」みたいに技術的な作業で分けがちだけど、FDDは「ユーザーが商品を検索できる」「注文履歴を表示する」みたいに、ユーザー視点の機能で区切るんだよ
なるほど!でもどうやって進めるの?
まず全体のモデルを作って、次に機能リストを洗い出す。そのあと機能ごとに設計して実装するんだ。5つのプロセスがきっちり決まっているから、大人数のプロジェクトでも迷子にならないんだよ
アジャイルとは違うの?
アジャイルの一種ではあるけど、スクラムほど自由度が高くなくて、最初にしっかり全体設計をするのが特徴だね。ウォーターフォールの計画性とアジャイルの柔軟性のいいとこ取りみたいな感じだよ
どんなプロジェクトに向いてるの?
特に50人以上の大規模チームで威力を発揮するよ。機能単位で担当を割り振れるから、並行開発がしやすいんだ。進捗も「全100機能中、60機能完了」みたいに見える化しやすいんだよ
機能リストを作るのが大変そう…
そこがFDDの肝だね。「<クライアント名>の<アクション>を<結果>する」という形式で書くルールがあって、これが曖昧さを排除してくれるんだ。実はこのフォーマットの厳密さが、大規模開発で混乱を防ぐ秘訣なんだよ
まとめ:ざっくりこれだけ覚えればOK!
「フィーチャー駆動開発」って出てきたら「ユーザー向けの機能を単位にして計画・開発する手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Feature-Driven Development」 = 機能駆動開発
💬 1990年代後半にジェフ・デ・ルカとピーター・コードが提唱した手法で、「Feature(機能)」を中心に開発を回すという考え方だよ