ブログBlog
ウォータフォール開発とアジャイル開発
投稿日:2022年04月28日 ビジネス
こんにちは、江宮です!
今日はウォータフォール開発とアジャイル開発を比較してみました。
ウォータフォール開発は、従来から使われている手法で、システムの全機能を工程単位で上から順番に遂行していきます。
逆にアジャイル開発は、全工程を機能単位で遂行していきます。
下図はウォータフォール型とアジャイル型の比較です。
ウォータフォール型
要件定義(全機能)
↓
設計(全機能)
↓
実装(全機能)
↓
テスト(全機能)
↓
リリース(全機能)
アジャイル型
リリース計画
↓
【機能1】設計・実装・テスト・リリース(バグや変更依頼があれば繰り返し)
↓
【機能2】設計・実装・テスト・リリース(バグや変更依頼があれば繰り返し)
↓
【機能3】設計・実装・テスト・リリース(バグや変更依頼があれば繰り返し)
↓
・・・
↓
【機能10】設計・実装・テスト・リリース(バグや変更依頼があれば繰り返し)
ウォータフォール開発のメリット
完成品の仕様が明確である
最初に全ての機能要件や詳細な仕様を明確化してから開発に入るので、完成品の仕様がブレにくいです。
見積もりしすい
スタート段階で全体の作業量が見えるので、必要人員や工数が把握しやすく、コスト面でもブレにくいです。
ウォータフォール開発のデメリット
仕様変更がしにくい
前提として後戻りせずに開発を進めていくので、途中でユーザーからの仕様変更依頼やバグ発生による仕様変更に対応しづらい面があります。
開発期間が長期化する
各工程で成果物を作成してから次の工程に進むので、書類作成量が膨大になります。
反対にアジャイル開発では書類作成は省かれたり簡易化される傾向にあります。
アジャイル開発のメリット
最初のリリースが早い
メイン機能のみ先にリリースが可能なので、競合他社よりもサービスインまでの時間が大幅に短縮でき、時間的優位性を得られます。
仕様変更に強い
小さな機能単位で設計~リリースしていくので、開発時に仕様変更が必要な場合、他の機能への影響が少なくて済みます。
また、リリース後のバグ発生時にも迅速に対応できます。
アジャイル開発のデメリット
仕様がブレやすい
顧客からの頻繁な仕様変更の要望などによって、当初の見積もりよりもコストが上回りやすいとも言えます。
長期計画が立てづらい
頻繁な仕様変更や追加があるので、全機能の完成までの長期的なスケジュール・見積もりが必要なケースでは採用されません。
まとめ
一般に顧客の要求や仕様が明確な、大規模システムや銀行・医療などの堅牢なシステムにはウォータフォール開発が採用されています。
反対に顧客の要望が流動的な、小規模システムやウェブ系/モバイルアプリではアジャイル開発が多く採用されています。
どちらの開発手法がベストかはプロジェクトの性質によって違いますが、最近では基本設計までをウォータフォール開発、それ以降の工程をアジャイル開発といったハイブリッド型も増えてきているようです。