COLUMN
2021年10月22日
#ウォータフォール – 知ったかテックワード!君もIT博士
カテゴリー:知ったかテックワード
タグ:システム開発, プロジェクト管理, 基本用語
「ウォータフォール(WaterFall Model)」は、システムなどの開発管理手法のひとつ。正式には、ウォータフォール型開発モデルという。滝のように上流から下流工程に進めていくため、滝(Waterfall)という名前になっている。
ウォータフォール型のシステム開発では、要件定義から基本設計・詳細設計・実装・単体テスト・統合テストという工程で進める。その際に、作るシステムや計画を最初から明確にしてから開発をはじめる。そして、工程ごとに評価して完了させて、その成果物を次の工程で利用する。そのため、品質レベルを統一しやすいが、開発期間は長くなる。
ウォーターフォール開発には次のメリットがある。
- 人的・時間的コストがあらかじめ把握しやすい
- 進捗状況が分かりやすい
- 品質レベルを統一しやすい
一方で、次のようなデメリットがあると言われている。
- あらかじめ仕様を明確にする必要がある
- 開発の途中で、改善も含めた仕様変更がやりにくい
- 仕様変更があると、開発期間の遅延・開発費用の増大などが起こりやすい
- システムが使えるようになるまで時間がかかる
どこにウォータフォール開発を使うのか
ウォータフォールは、システムの仕様をあらかじめ明確にしやすい既存業務のシステム化などに向いていると言われているよ。
例えば、ERPパッケージを利用した業務システム開発はウォーターフォール型が向いている。ERPは、販売管理や生産管理のためのシステムに利用されるけれど、対象の業務があらかじめ決まっていて、どのように業務をシステム化するのか事前に決めることができるからだ。何をどうしたいかをそれぞれの部署から綿密に聞き取って、要件定義していく必要があるけれど、システムコンサルタントに参加してもらって十分な時間と手間をかければいい。
また、金融機関の勘定系システムなども、ウォータフォール型開発が向いている分野だ。銀行の取引業務は、システムを作りながら仕組みやルールを考えていくなんてことはないからね。
もちろん、ウォータフォールにも先述のようにいくつかのデメリットがある。それらに対しても、十分な時間と工数をかけることができれば対応可能になる。
一方で、ウォータフォール型開発が不得意な領域もある。お客様向けサービスのためのシステムは、何が喜ばれるか試してみないと分からないことが多く、短期間で流行が変化することもある。だから、あらかじめ要件定義するウォーターフォールは向いていないんだ。
—
関連ページ
おまけのコント
ウサギ:僕はウォータフォールって聞くと、山奥で人知れず落ちる滝の姿が思い浮かぶねぇ。
カエル:なんだか風流だな。
ウサギ:『滝の音は 絶えて久しく なりぬれど 名こそ流れて なほ聞こえけれ』
カエル:百人一首だね。滝の音は聞こえなくなったけど、その名声は今も知れ渡っている、って意味なんだってね。
ウサギ:ちがうよ。ウォータフォール開発で、デスマーチの阿鼻叫喚がようやく聞こえなくなったけど、あの時の苦しみが忘れられない。っていうトラウマポエムだよ。
カエル:おそろしい。
ウサギ:『千早ぶる 神代もきかず 龍田川 からくれなゐに 水くくるとは』
カエル:これは分るよ。神様の時代にもなかったほど、龍田川が紅葉で染まって美しい、って和歌だろ。
ウサギ:いやいや。素早く開発するアジャイル開発やりたいって言っても、神様みたいなチーフエンジニアが聞いてくれないもんだから、連日徹夜で首くくりたい、っていう恨み節だよ。
カエル:もうやめて。