
「ウォーターフォール型開発について知りたい」
「ウォーターフォール型開発について理解してプロジェクトの運営に活かしたい」
ウォーターフォール型開発は日本でも幅広く取り入れられている開発手法です。
興味をもつ方も少なくありません。
IPAによると、日本の開発の内97.4%とほとんどがウォーターフォール型開発で実施されているという調査結果もあります。
この記事では、開発手法の中でも広く使用されるウォーターフォール型開発について焦点を当てて説明します。
開発のPM(プロジェクトマネージャー)を任されている方は、ぜひ最後までご覧ください。
ウォーターフォール型開発とは
1970年代に情報工学博士のロイスの論文に記載された「大規模ソフトウェア開発には、製品製造過程のようにいくつかの工程に分けたトップダウンアプローチが必要」という内容が起源といわれています。
論文はアメリカの国防省などから評価を受け、現在では国際的な地位を確立しています。
比較的古い歴史をもつウォーターフォール型開発ですが、今でも広く使用されている開発手法です
ウォーターフォール型開発の工程順
①要件定義を決める
まずは要件定義します。
要件定義とは、何をしたいかを明確にした上で、それらを実現するために必要な機能やスペック、その他条件を決めることです。
例えば、ランサムウェアに感染してもすぐに復元できるシステムを構築したいのであれば、感染しないネットワーク経路でのバックアップの取得を条件とすることが考えられます。
このフェーズでは、要件定義書やシステム仕様書が成果物として作成されます。
②設計をおこなう
続いて、要件定義で決めたことを基に設計します。
まず、顧客目線からのソフトウェアやシステムの仕様を設計します。
ソフトウェア開発の場合は、サブシステムにどのようなものが必要か設計していきましょう。
その後の詳細設計では、実際にプログラムが動く内容など具体的な内部動作を設計していきます。
例えばプログラム開発であれば、実装の観点からコーディングするための指針を設計します。
設計をおこなうフェーズの成果物は、詳細設計書やデータベース設計書、内部仕様書などです。
③コーディングを開始する
設計が終われば、実際に開発したいシステムやソフトウェアの作成に取り掛かります。
ソフトウェアであれば、設計工程で作成された設計書を基に専門知識をもつプログラマーがプログラミングを実施します。
④テストを実行する
システムやソフトウェアが完成したらテストを実施します。
テストは、以下の順番で実施されます。
- 単体テスト
- 結合テスト
- 運用テスト
設計通り動いているかや、顧客の要望を満たす仕様となっているかなどを入念にテストしましょう。
⑤導入する
テストで問題がなければ、開発したソフトやシステムを顧客の環境に導入します。
新規で導入する場合は早く進みますが、リプレースの場合は導入に比較的長い時間が割かれます。
作業量が多くなる場合は、タイムスケジュールを作成してそれぞれのタスクを確実にこなしていくことが大切です。
⑥運用する
導入後、一定期間は運用にも気を配る必要があります。
導入してみて若干顧客が思い描いていたものと違う場合は、修正が必要になります。
場合によっては、安定稼働しない場合もあるため保守の継続が必要です。
ウォーターフォール型開発のメリット
管理がしやすい
ウォーターフォール型開発では、はじめに全行程を決めて開発に取り掛かるため、進捗率が把握しやすくなります。
進捗がわかればプロジェクトが遅れているかどうかがすぐわかり、柔軟な対応へとつながるでしょう。
品質が保たれやすい
ウォーターフォール型開発では要件を明確に決め、それに沿って必要な工程をこなすことから品質が維持されやすいメリットがあります。
納品後に顧客から思っていたものと違うというクレームは生まれにくいでしょう。
品質の低下により大きな損害が出るような開発には非常に向いているといえます。
即戦力となる人材の育成が容易にできる
ウォーターフォール型開発では、前もって計画を立てるため事前に必要な技術力が明確です。
事前に計画を立てれば、あらかじめ採用する新人の人数を決めて計画的に技術を習得させることが可能です。
計画がないと、新人を採用しすぎてしまい育成にまで手が回らないという事態も起こり得ます。
また、ウォーターフォール型開発では一人の人材が一部の工程のみを担当する場合がほとんどです。
特定の技術さえあれば現場で働くことも可能なので即戦力にもなりやすいでしょう。
合わせて読みたい

ウォーターフォール開発は伝統的な手法!コツやツールを徹底解説
「アジャイル開発の経験しかないけど、ウォーターフォール開発ってどうなんだろう?」 「ウォーターフォール開発をもっと効率よくおこないたい」 上記のように考えている.....
ウォーターフォール型開発のデメリット
開発の柔軟性に乏しい
最初にきちんと計画を立ててから開発が進むため、途中からの仕様変更には多大な手戻りが発生します。
前工程があってこそ現在の作業も進められるので、今取り組んでいるフェーズだけやり直しは基本的に不可能です。
例えばテスト後に設計の不備が見つかった場合、設計のやり直しや、最悪要件定義までさかのぼってやり直しになる可能性もあるでしょう。
サービスのリリースまでに時間を要する
ウォーターフォール型開発の場合、企画や要件定義がじっくりおこなわれ、後の設計やコーディングが実施されてはじめてプロダクトを目にします。
アジャイル開発のように、一旦要件定義が曖昧のまま開発を進めることはありません。
ですが、実際プロダクトが作成されるまでに時間がかかりやすい傾向です。
各工程の成果物が作成された後、顧客や技術担当者の承認を得ないと次の工程に進められないのも、サービスのリリースまで時間がかかる要因となります。
ウォーターフォール型開発に向いているケース
一定の品質が求められる場合
高い品質を求められる開発には、ウォーターフォール型開発が向いています。
ウォーターフォール型開発は、各フェーズの完了時に作業の質や成果物の質が精査されるため、ミスが発生しにくい手法です。
例えば、金融システムはミスが許されないため、開発期間が長くかかったとしても高品質を担保できるウォーターフォール開発型がよいでしょう。
要件や仕様が具体的に決まっている場合
要件や仕様が明らかに決まっている場合は、柔軟性に欠けるウォーターフォール型開発のデメリットが打ち消されます。
また、要件定義や設計がスムーズに進みやすいため開発期間が長くなりやすいというデメリットもあまり考慮する必要がなくなるでしょう。
大規模なプロジェクトの場合
プロジェクトの規模が大きくなるにつれ、多くの工数や時間がかかり管理が煩雑になります。
しかしウォーターフォール型開発であれば、開発を始める前に綿密な計画を立てるので、作業量が事前に把握でき考慮すべき点が多くなってもコントロールしやすいでしょう。
ウォーターフォール型開発と他の開発手法の違いとは?
アジャイル開発との違い
アジャイル開発は、近年急速に広まっている開発手法です。
ウォーターフォール型開発と比べて、進め方に違いがあります。
アジャイル開発ではウォーターフォール型開発と違い、要件定義や設計を開発しながら詰めていきます。
そのため、仕様変更に対し柔軟な対応が可能です。
合わせて読みたい

ウォーターフォール開発とは?アジャイル開発との違いや特徴を解説!
「開発現場が忙しすぎる」 「いつも開発の納期に間に合わない」 このような悩みをお持ちではありませんか? 開発は目の前のタスクをこなしていくだけでは無駄が多く、き.....
プロトタイプ型開発との違い
プロトタイプ型開発は、ウォーターフォール型開発を改良してできた開発手法です。
開発の前に試作品を作成するため、ウォーターフォール型開発と比べ認識のズレを早い段階で調整できます。
スパイラル型開発との違い
スパイラル型開発は、アジャイル開発と似て小さな開発を繰り返します。
ですがアジャイル型とは異なり、機能別に開発が終わる度に顧客からのレビューを受けるため、クオリティの担保が期待できます。
ウォーターフォール型開発にも使えるLychee Redmine

ウォーターフォール型開発を推し進めたいなら、Lychee Redmineがおすすめです。
操作性に優れており、PM初心者も容易に使用できます。
以下のように、ウォーターフォール型開発に役立つプラグインも用意されています。
- ガントチャート
- カンバン
- ダッシュボード
- タイムマネジメント
- リソースマネジメント など
30日間のトライアル期間もあるので、まずは気軽にはじめてみてはいかがでしょうか。
プラン | 月額料金 | ユーザー数 | チケット数 | 機能 |
フリー | 0円 | 無制限 | 5,000件 | タスク管理 カンバン ファイル共有 |
スタンダード | 800円 | 無制限 | 無制限 | タスク管理 ガントチャート カンバン ファイル共有 |
プレミアム | 1,200円 | 無制限 | 無制限 | スタンダード+ 工数リソース管理 EVM コスト管理 CCPM |
ビジネスプラン | 1,800円 | 無制限 | 無制限 |
すべての機能 |
ウォーターフォール型開発を含め、正しい手法を選択しよう!
- 日本で実施されている開発手法の内ウォーターフォール型開発が大部分を占める
- ウォーターフォール型開発では工程順を守る必要がある
- ウォーターフォール型開発は品質重視のプロジェクトに向いている
- 比較的大規模なプロジェクトにウォーターフォール型開発が向いている
開発手法にはさまざまなものがありますが、中でもウォーターフォール型開発は広く浸透しています。
ウォーターフォール型開発を推進するのに活用できるツールも、Lychee Redmineを含めさまざまなものが提供されています。
自社に合ったツールを選んで、ウォーターフォール型開発を効率よく進めてみましょう。
合わせて読みたい

Lychee Redmineとは?機能やメリットについて詳しくご紹介
「仕事やプロジェクトが多くて管理が大変」 「管理が苦手で効率良く仕事ができない」 このような悩みでお困りではありませんか? 仕事やプロジェクトは納期が設定されて.....
