ウォーターフォールモデルとは
まずは、ウォーターフォールモデルがどのようなものか見ていきましょう。
段階的に進めていくシステム開発手法
開発の工程は「要件定義」「基本設計」「詳細設計」「システム実装」「テスト」という流れが基本です。ウォーターフォールモデルでは、この一つひとつの工程を順番に進めていきます。
ウォーターフォールを日本語にすると「水が落ちる」という意味で、段階ごとに開発を完了させるので前の工程に後戻りはできません。より確実に開発を進めるために、工程ごとにレビュー(成果物の確認)を行うのが特徴です。しかし、要件定義が甘く「開発したかった成果と全く異なっていた」ということも起こり得ます。
ウォーターフォールモデルが誕生したのは1970年ごろと古いですが、今でも広く使われています。なお、ウォーターフォールモデルはV字モデルとの関わりが深く、V字モデルとは開発工程とテスト工程をリンクさせた考えのことです。V字の左側に開発工程、右側にテスト工程が配置され、工程ごとにテストを行うウォーターフォールモデルとの相性が良いです。これが、ウォーターフォールモデルの上位互換として活用されています。
大規模開発案件に向いている
規模が大きい開発プロジェクトの場合、動員できる人数が限られているためスケジュール管理の難易度が高くなります。特に規模が大きい開発案件であれば開発期間も長くなりやすく、少しのズレが大きな遅延に繋がってしまうでしょう。
ウォーターフォールモデルでは、仕様変更をせずに済むように入念な要件定義をしなければなりません。要件定義どおりにプロジェクトを進めれば、開発途中のリソースなどの管理もしやすいため、スケジュールのズレも生じにくくなります。
したがって、適切な予定を組んで人員を割り当てることができるため、大規模案件に向いています。また、同じ理由から高い品質が求められるプロジェクトにも向いているでしょう。
ウォーターフォールモデルのメリット
つづいて、ウォーターフォールモデルのメリットを見ていきましょう。
プロジェクト全体の計画が立てやすい
ウォーターフォールモデルは、上流工程(要件定義)から確実に開発を進めていく手法です。そのため、要件定義を終えた段階で、開発スケジュールの全容を把握できます。開発する内容やスケジュールをしっかりと決めてからプロジェクトが進むため、計画を実行しやすいでしょう。
予算や人員の手配がしやすい
より詳細な計画を作れると人員の確保もしやすくなり、プロジェクトの最初の段階で「開発には何が必要で」「何が足りないのか」が分かります。また、工程ごとに取り組むべきことがはっきりするため、開発者の入れ替わりが発生しても引き継ぎが簡単です。これにより、プロジェクトをストップせずに進められるでしょう。
進捗管理がしやすい
ウォーターフォールモデルは、全ての工程を把握した状態で開発が進んでいきます。工程ごとに仕様書やタスクが決まっているため、進捗率を管理・把握しやすく、無理がないようにタスクを割り振ることが可能です。進捗管理を適切に行っていれば、トラブルが発生した際にも柔軟に対応できます。
ウォーターフォールモデルのデメリット
ウォーターフォールモデルはメリットが多く、多くの開発現場で使われていますが、デメリットもあります。
手戻りが発生すると工数が増える
ウォーターフォールモデルでは後戻りをせずに開発を進めるのが前提です。しかし、綿密に立てられた計画でも、手戻りが発生する可能性はゼロではありません。
最大のデメリットは、仕様が変更になり手戻りが発生すると全体的な予定が狂ってしまう可能性があることです。そうすれば、開発の工程はやり直しになるため、かえって必要な工数が増えてしまいます。
このように、ウォーターフォールモデルの計画は柔軟性がないため、手戻りしないように進めなければなりません。
ユーザーの意見を取り入れにくい
実際の開発が始まってからは仕様の変更を行いにくいため、途中でユーザーの意見を取り入れることが難しいことがあります。
特にシステム開発を発注したユーザーのイメージがアバウトな場合、実際にできあがった物がイメージとズレることもあります。そのため、せっかく完成したとしても、ユーザーの求めるものでなければやり直しになるかもしれません。
ウォーターフォールモデルで開発を進めるときは、要件定義の段階でユーザーの意見を把握し、要件漏れがないようにすることが大切です。
各工程の進捗や成果を評価しながら進めるために役に立つのが、工程管理システムです。上手な使い方や製品情報は、以下のボタンより資料請求をしてみましょう。
\ 工程管理システム の製品を調べて比較 /
製品をまとめて資料請求!
資料請求フォームはこちら
アジャイル開発との違い
アジャイル開発とは、短期間でリリースを目指す開発手法です。ユーザーの要求を優先し、仕様が変更になることを前提に開発を進め、小規模な実装とテストを繰り返します。
ウォーターフォールモデルとの違いは、ミスと修正を繰り返して品質を高める点です。そのため、仕様書は詳細まで決まっていません。その分、仕様が変更になっても柔軟に対応できます。
アジャイル開発では、1週間から4週間を目途に1つの機能を完成させることを目指します。ウォーターフォールモデルと相反する手法なので、どちらが適しているかよく検討してください。システムの仕様変更が発生しそうな場合や、短期間でリリースしてユーザーの反応を見たい場合などはアジャイル開発が良いでしょう。
なお、アジャイル開発とよく似た反復型の開発手法として、スパイラル開発があります。スパイラル開発はひと通り必要な機能を実装し、開発を繰り返して品質を高める方法です。あまり普及していませんが、方法の1つとして検討してみるのも良いでしょう。
ウォーターフォールモデルやアジャイル開発を活用しよう
ウォーターフォールモデルは、綿密に計画を立てる分、大規模な開発案件でもスケジュール通りに進めやすい開発手法です。しかし、要件がきちんと把握できていなかった場合、やり直しが難しいというデメリットがあります。
また、途中からユーザーの意見を取り入れにくいため、要件定義の段階で入念な仕様の確認が求められます。ユーザーの意見を取り入れやすいアジャイル開発も検討してみるのもおすすめです。納期を守り、進行の管理に困らないようにするため、工程管理システムの検討もしてみましょう。