ウォーターフォール型の誕生
歴史をたどりながら,主な開発プロセスの特徴や誕生の背景を紹介していこう。
1960年代後半,開発するシステムの大規模化に伴い,個人の能力や経験のみに頼った方法に限界が生じ,体系立った開発方法が求められるように なった。そんな中,1970年に米国のW.W.ロイスが,ソフトウエアの作成から廃棄までの「ライフサイクル・プロセス」の概念を提唱した。
ライフサイクル・プロセスでは,開発工程をいくつかのフェーズ(局面)に分割し,前フェーズの成果物を次のフェーズの入力とする。滝が上から下へと流れ落ちるように開発していくことから,「ウォーターフォール型開発プロセス」と呼ばれる(図1)。

ウォーターフォール型は,別名「V字型モデル」ともいう。「要件定義」フェーズを左上とし,「開発」フェーズで折り返して右上へと進むことで“V 字型”を形成する。V字型の前半部分は「品質を埋め込む段階」,後半は「品質を確認・検証する段階」と位置付けられ,左右のフェーズが対応付けられる(図2)。例えば,要件や仕様がすべて反映されていることは「システム・テスト」フェーズで検証し,「外部設計」フェーズの結果は「サブシステム間統合テスト」フェーズで,「内部設計」フェーズの結果は「コンポーネント間統合テスト」フェーズで検証する,という具合である。

建築物や工業製品の製造のほとんどは,ウォーターフォール型と同様に,前フェーズの結果を次フェーズの入力とする。この確実性,一般性ゆえに, ウォーターフォール型は長年多くのシステム開発プロジェクトに適用されてきた。しかし,その一方でいくつかの問題点が指摘されている。
主な問題点の1つは,システム化が初めてだったり,システムが複雑な場合,要件定義フェーズですべての要件を洗い出すことが困難なこと。ウォーターフォール型では要件定義フェーズでの漏れは想定していないので,当然リスクとして跳ね返る。
2つめは,テスト・フェーズがプロジェクト後半に設定されているため,要件定義フェーズや外部設計フェーズなどの上流工程に欠陥があっても,それ がプロジェクトの終盤まで発見できないケースが多いことだ。終盤で欠陥が発見された場合,手戻り(前のフェーズに戻ること)によるコストは極めて大きなも のになる。
※コメント投稿者のブログIDはブログ作成者のみに通知されます