ウォーターフォール開発とは
ウォーターフォール開発とは、ソフトウェアやシステム開発の手法の一つで、「要件定義→設計→実装→テスト→運用」という工程を順番に、一方向(前へだけ)に進めていく方法です。
名称の「ウォーターフォール(滝)」は、上流から下流へ“水が流れる”ように、工程を戻らずに進むイメージから来ています。
この手法では、あらかじめ仕様を固め、計画を立てて、その通りに作業を進めることが前提となっています。
なぜ従来使われてきたのか
ウォーターフォール開発がかつて主流となった背景には、次のような理由があります。
~豆知識~
ウォーターフォール開発は、段階的に開発工程を進めていく伝統的な開発手法であり、その流れをモデル化していることから、IT業界では一般的に「ウォーターフォールモデル」と呼ばれています。
ウォーターフォール開発の代表的な工程
以下は、ウォーターフォール開発における典型的な工程(フェーズ)です。
初心者の方でもイメージしやすいように整理しました。
- 要件定義
開発するシステムやソフトウェアが「何をするか」「誰が使うか」「どんな機能が必要か」を明らかにします。
要件を曖昧にすると後工程で手戻りが発生しやすいです。 - 基本設計/外部設計
ユーザーから見た機能や画面、操作の流れなどを設計します。
いわゆる“何を作るか”から“どう使えるか”を決める段階です。 - 詳細設計/内部設計
プログラムどう実装するか、システム構成、データベース、モジュール分割など、開発者向けに“どう作るか”を設計します。 - 実装(プログラミング)
設計書をもとにプログラムを書き、機能を開発します。
設計通りに作ることが前提です。 - テスト
プログラムが仕様どおりに動くか、バグがないかを確認します。
単体テスト、結合テスト、システムテストなど複数レベルで行われることが一般的です。 - 運用・保守
実際にシステムを稼働させ、ユーザーが使えるようにします。
運用中の障害対応・保守・改修も含まれます。
ウォーターフォール開発のメリット
ウォーターフォール開発の特徴・強みとして、以下のメリットが挙げられます。
ウォーターフォール開発のデメリット・注意点
一方で、次のようなデメリットや注意すべき点もあります。
どんなプロジェクトに向いているか/向かないか
向いているプロジェクト
向かない/慎重に検討すべきプロジェクト
ニュース・近年の視点(初心者として押さえておきたい)
- ウォーターフォール型開発は、従来の主流だったモデルではありますが、変化の多い開発環境では「柔軟性が低い」などの指摘も増えています。
- そのため、「ウォーターフォール」+「アジャイル」など、ハイブリッド型の手法を採るプロジェクトも増えています。
まとめ
ウォーターフォール開発とは、システム開発を要件定義から設計・実装・テスト・運用へと一方向(上流から下流)で進めていく伝統的な開発手法です。
初心者の方でも押さえておきたいポイントは以下の通りです。
ウォーターフォール開発は古典的ではありますが、開発手法を理解する上での基礎となるモデルです。
これを理解しておくことで、他の手法(アジャイルなど)との違いや、自社プロジェクトにどの手法が合うか判断する力も養えます。


