ウォーターフォール開発 うぉーたーふぉーるかいはつ
ウォーターフォール工程管理要件定義設計フェーズシステム開発
ウォーターフォール開発について教えて
ウォーターフォール開発とは
ウォーターフォール開発(Waterfall Development) とは、プロジェクトを「要件定義 → 基本設計 → 詳細設計 → 開発・実装 → テスト → リリース・移行」という固定した工程順に進める開発手法です。各工程の成果物を確認・承認してから次の工程に進むため、前工程への手戻りが少ない ことを前提としています。
ウォーターフォールの最大の特徴は、スコープ・コスト・スケジュールをプロジェクト開始前に固定できる ことです。これにより請負契約が結びやすく、「〇〇万円・〇月完成」という形で発注できます。発注者がシステム要件を明確に定義できる場合に向いています。
一方で「要件変更への対応が難しい」という弱点があります。テスト工程で問題が発覚すると、設計・実装まで遡る手戻りが発生し、コスト・納期への影響が大きくなります。発注者としては、要件定義フェーズに十分な時間とリソースを投入する ことが成功の鍵です。
各工程の概要
| 工程 | 主な成果物 | 発注者の関与 |
|---|---|---|
| 要件定義 | 要件定義書・業務フロー図 | 最重要。業務要件を詳細に伝える |
| 基本設計(外部設計) | 画面設計書・DB設計書 | 画面・帳票イメージのレビューが必要 |
| 詳細設計(内部設計) | プログラム設計書 | 開発者寄りの作業。確認はサマリーで可 |
| 開発・実装 | ソースコード | 進捗確認と変更要求の管理 |
| テスト(結合・システム) | テスト仕様書・テスト結果報告 | 主要バグの確認と対応優先度の決定 |
| ユーザー受入テスト(UAT) | 受入テスト仕様書・議事録 | 発注者が実施。合否判定の責任あり |
| リリース・移行 | 移行計画書・操作マニュアル | 本番切替タイミングと周知の調整 |
歴史と背景
- 1956年: ハーバート・ベニントンがソフトウェア開発の工程分離を論文で発表(ウォーターフォールの原型)
- 1970年: ウィンストン・ロイスが論文「Managing the Development of Large Software Systems」でウォーターフォールモデルを記述。ただし論文内では「欠陥のあるモデル」として批判的に言及
- 1970〜80年代: 米国国防総省の開発標準(DOD-STD-2167)に採用され、大規模プロジェクトで主流に
- 1990年代: ウォーターフォールの限界(要件変更への弱さ)が顕在化し、アジャイルへの関心が高まる
- 2001年: アジャイルマニフェスト発表により、ウォーターフォールの代替として注目される
- 現在: 要件が明確な公共系・金融系システムや、ベンダー間での請負契約ではウォーターフォールが依然主流
ウォーターフォールとアジャイルの使い分け
関連する規格・RFC
| 規格・番号 | 内容 |
|---|---|
| DOD-STD-2167A(1988) | 米国国防総省のソフトウェア開発標準。ウォーターフォールを採用 |
| ISO/IEC/IEEE 12207 | ソフトウェアライフサイクルプロセスの国際標準 |
| PMBOK 第7版(PMI) | ウォーターフォール(予測型)とアジャイル(適応型)の両者を包含 |
関連用語
- アジャイル開発 — ウォーターフォールの課題を解消する反復型開発アプローチ
- フェーズゲートレビュー — ウォーターフォールの各工程を審査するレビューの仕組み
- プロジェクト計画書 — ウォーターフォールでプロジェクト開始前に作成するスコープ・スケジュール計画
- EVM(アーンドバリュー管理) — ウォーターフォールプロジェクトの進捗・コストを定量管理する手法
- バーンダウンチャート — アジャイルにおける進捗管理。ガントチャートと対比される
- WBS — ウォーターフォールで作業を分解して計画するための構造化手法