FDD開発とは「Feature Driven Development」の略であり、日本語だと「ユーザー機能駆動開発」と呼ばれています。アジャイル開発手法の一つで、ユーザー目線で価値ある機能を中心に開発を進める手法です。
FDD開発はユーザーから見て価値がある機能を中心に開発が進められるため、その前提となる「価値ある機能」が何かを認識しておく必要があります。そのためユーザーが最終的に何を求めているのかを明確化しておくことが必要です。
前述の要因もさることながら、実際に動作するシステムを反復して開発を行うのもFDD開発の特徴です。そのためユーザーにとって適切な感覚で提供するためにも、ユーザーとのコミュニケーション環境を整えておくことが必要です。
実際に動作するシステムの反復を行うにあたっても、適切な感覚で反復を行うにあたっても重要なのが「マイルストーン」です。モデルに対してしっかりとマイルストーンを設置することで、プロジェクトを円滑に進めることができるようになります。
FDD開発では機能ごとに開発が進められるだけでなく、その順番が「ユーザーにとって価値のあるものから中心に」とされています。そのため重要な機能から実装が可能になるため、プロジェクトの分割化が可能になります。
FDD開発では大前提としてビジネスモデルの把握が必要になります。そのため他の開発手法に比べると利用場面やビジネスの内容が把握・想定しやすいため、各機能のクオリティを高められる可能性があります。
FDD開発は他のアジャイル開発手法と同様、遡っての修正や変更に対応しやすいという特徴があります。工程が細かく区切られているため、万が一不具合が発生した場合にも大幅なスケジュール変更などが必要ありません。
FDD開発では事前の計画段階で細かい部分までを決定しないため、全体像が見えづらいという特徴もあります。機能の変更や修正などを繰り返すことになるため、開発コンセプトや方向性が当初想定からブレてしまうこともあります。
他のアジャイル開発手法にも言えることですが、綿密な計画を作成しないこと、そして変更や修正にも柔軟な対応をすることから、最終的な納期が定めにくくなります。あくまでも変更・修正があるという前提の開発手法であることを理解しておくことが必要です。
綿密に計画を作り、それに従って進められるプロジェクトであれば予定と実績の対比から進捗管理が容易にできるでしょう。しかしFDD開発では後戻りすることを視野に入れていますので、プロジェクトの進捗管理が難しくなっています。
FDD開発はアジャイル開発手法の一つですから、反復を行って開発を進める点においてはその他の手法と同じです。しかしながらFDD開発の特徴である「顧客目線で価値ある機能を中心に開発する」という性質上、機能を開発する前段階においてユーザー側のビジネスモデルを理解しておく必要があるのです。そのうえでログイン機能やユーザー登録機能など機能単位への細分化を行い、設計や開発、テストという通常の流れに結び付けていきます。
他のアジャイル開発手法にもいえますが、開発手順としては仕様の大枠を完成させてからその仕様の優先順位に沿って機能を順次実装していくイメージになります。このような手順で開発を進めることにより、短期間での開発や各機能の満足度が高い開発、さらには修正・変更・更新が行いやすいアプリ開発を行うことが可能になります。
FDD開発はアジャイル開発手法の一つであり、アジャイル開発は「仕様に変更・修正が出ることを前提として工程の後戻りを許容する」という特徴があります。一方、対になるウォーターフォール開発では事前にしっかりと開発計画を作り込み、計画に沿って進めていく形になり、工程の後戻りを想定していません。それぞれにメリット・デメリットがありますが、大きく分けるとそのような違いがあります。
また、アジャイル開発手法の中でもFDD開発は「顧客目線で価値ある機能を中心に開発を進める」という特徴があるのに対し、メンバー間のコミュニケーションやチームワークを重視して進めるスクラム開発や、変化する顧客のニーズを反映させながら開発を進めるXP開発などがあります。それぞれの開発手法は一長一短ですから、特徴やメリット・デメリットを把握したうえで開発手法の選定を行うことがよいでしょう。
アプリ開発にはさまざまな開発手法があり、ここではFDD開発について解説しました。どの開発手法を採用するかは自社や開発プロジェクトに合わせて検討することが必要ですから、しっかりと検討するようにしましょう。また、迷ったときにはプロに相談するという選択肢も視野に入れておきましょう。