「ウォーターフォール型開発について知りたい」
「ウォーターフォール型開発について理解してプロジェクトの運営に活かしたい」
ウォーターフォール型開発は日本でも幅広く取り入れられている開発手法です。
興味をもつ方も少なくありません。
IPAの「ソフトウェア開発データ白書2018-2019」によると、日本の開発の内97.4%とほとんどがウォーターフォール型開発で実施されているという調査結果もあります。
この記事では、開発手法の中でも広く使用されるウォーターフォール型開発について焦点を当てて説明します。
開発のPM(プロジェクトマネージャー)を任されている方は、ぜひ最後までご覧ください。
ウォーターフォール型開発とは
ウォーターフォール型開発とは、プロジェクトの立ち上げから開発完了までを複数の工程に分け、上流工程から下流工程に順番に開発を進めていく開発手法です。
1970年代に情報工学博士のロイスの論文に記載された「大規模ソフトウェア開発には、製品製造過程のようにいくつかの工程に分けたトップダウンアプローチが必要」という内容が起源といわれています。
論文はアメリカの国防省などから評価を受け、現在では国際的な地位を確立しています。
比較的古い歴史をもつウォーターフォール型開発ですが、今でも広く使用されている開発手法です
ウォーターフォール型開発の工程順
具体的なウォーターフォール型開発の工程を順番にみていきましょう。
①要件定義を決める
まずは要件定義します。
要件定義とは、何をしたいかを明確にした上で、それらを実現するために必要な機能やスペック、その他条件を決めることです。
例えば、ランサムウェアに感染してもすぐに復元できるシステムを構築したいのであれば、感染しないネットワーク経路でのバックアップの取得を条件とすることが考えられます。
このフェーズでは、要件定義書やシステム仕様書が成果物として作成されます。
②設計を行う
続いて、要件定義で決めたことを基に設計します。
まず、顧客目線からのソフトウェアやシステムの仕様を設計します。
ソフトウェア開発の場合は、サブシステムにどのようなものが必要か設計していきましょう。
その後の詳細設計では、実際にプログラムが動く内容など具体的な内部動作を設計していきます。
例えばプログラム開発であれば、実装の観点からコーディングするための指針を設計します。
設計を行うフェーズの成果物は、データベース設計書や基本設計書、詳細設計書などです。
③コーディングを行う
設計が終われば、実際に開発したいシステムやソフトウェアの作成に取り掛かります。
ソフトウェアであれば、設計工程で作成された設計書を基に専門知識をもつプログラマーがプログラミングを実施します。
④テストを実行する
システムやソフトウェアが完成したらテストを実施します。
テストは、以下の順番で実施されます。
-
- 単体テスト
- システムテスト
- 運用テスト
設計通り動いているかや、顧客の要望を満たす仕様となっているかなどを入念にテストしましょう。
⑤導入する
テストで問題がなければ、開発したソフトやシステムを顧客の環境に導入します。
新規で導入する場合は早く進みますが、リプレースの場合は導入に比較的長い時間が割かれます。
作業量が多くなる場合は、タイムスケジュールを作成してそれぞれのタスクを確実にこなしていくことが大切です。
⑥運用する
導入後、一定期間は運用にも気を配る必要があります。
導入してみて若干顧客が思い描いていたものと違う場合は、修正が必要になります。
場合によっては、安定稼働しない場合もあるため保守の継続が必要です。
ウォーターフォール型開発のメリット
ウォーターフォール型開発のメリットを紹介します。
管理がしやすい
ウォーターフォール型開発では、はじめに全行程を決めて開発に取り掛かるため、進捗率が把握しやすくなります。
つまり、プロジェクト開始時に上述の「①要件定義を決める」~「⑤導入する」(或いは「⑥運用する」)までの一式の計画を立案する必要がある、ということです。
これにより、計画と比較して進捗が進んでいるか、遅れているかが把握できるようになり、遅延の検知に対する柔軟な対応へとつなげられるでしょう。
品質が保たれやすい
ウォーターフォール型開発では要件を明確に決め、それに沿って必要な工程をこなすことから品質が維持されやすいメリットがあります。
各工程で実施すべき設計・コーディング・テストを計画的に実施することで品質を維持できます。
ただし、要件定義では限られた時間での実装方針決めに終始することが多く、顧客が対象のシステムに触れるタイミングは納品前後になることが多いため、思っていたものと違う、というクレームが発生しがちです。
これに対しては、設計以降の期間においても、顧客視点で画面仕様や処理の流れを継続して顧客に説明します。
労力を惜しまずにこういった認識合わせの活動を実施していくことで、顧客視点での品質も担保していくことが重要となります。
こういった活動を実施していくことを前提として、品質低下が許容できない開発には非常に向いているといえます。
即戦力となる人材の育成が容易にできる
ウォーターフォール型開発では、前もって計画を立てるため事前に必要な技術力が明確です。
ウォーターフォール開発では工程や作業を細分化します。
新人が対応可能な作業や、プロジェクトの進捗に影響しない作業を担当することで実際のプロジェクト作業を経験することが可能となります。
これにより、以降のプロジェクトにおける同様の技術や、作業に対して、経験したことのある作業メンバーとして担当することも可能となるでしょう。
合わせて読みたい
ウォーターフォール開発は伝統的な手法!コツやツール、アジャイル開発との違いを徹底解説
ウォーターフォール開発の特徴を知っていますか。本記事では、ウォーターフォール開発のメリットやデメリットを解説します。開発を進める際のコツやおすすめのツールについ.....
ウォーターフォール型開発のデメリット
ウォーターフォール型開発のデメリットを紹介します。
開発の柔軟性に乏しい
最初にきちんと計画を立ててから開発が進むため、途中からの仕様変更には多大な手戻りが発生します。
例えばテスト後に設計の不備が見つかった場合、設計のやり直しや、最悪要件定義までさかのぼってやり直しになる可能性もあるでしょう。
もし、やり直しが生じる場合は、着手している工程の手を一度止めて、要件定義を見直しを行い、改善箇所の着手を進めましょう。
サービスのリリースまでに時間を要する
ウォーターフォール型開発の場合、企画や要件定義がじっくりおこなわれ、後の設計やコーディングが実施されてはじめてプロダクトが完成するため、
アジャイル開発に比べるとプロダクトの作成に時間がかかりやすい傾向があります。
各工程の成果物が作成された後、顧客や技術担当者の承認を得ないと次の工程に進められないのも、サービスのリリースまで時間がかかる要因となります。
ウォーターフォール型開発に向いているケース
ウォーターフォール型開発に向いているケースを紹介します。
一定の品質が求められる場合
高い品質を求められる開発には、ウォーターフォール型開発が向いています。
ウォーターフォール型開発は、各フェーズの完了時に作業の質や成果物の質が精査されるため、ミスが発生しにくい手法です。
例えば、金融システムはミスが許されないため、開発期間が長くかかったとしても高品質を担保できるウォーターフォール型開発がよいでしょう。
要件や仕様が具体的に決まっている場合
要件や仕様が明らかに決まっている場合は、ウォーターフォール型開発の柔軟性に欠ける部分のデメリットが打ち消されます。
また、要件定義や設計がスムーズに進みやすいため開発期間が長くなりやすいというデメリットもあまり考慮する必要がなくなるでしょう。
大規模なプロジェクトの場合
プロジェクトの規模が大きくなるにつれ、考慮点が増加します。
こういった場合、ウォーターフォール型開発を採用することで、要件定義や設計工程でプロダクトの最終形を見越した形でしっかり設計し、リスク要素を減らして、コーディングを開始することが可能となります。
工程に沿って、順序通りに進行することで、大規模なプロジェクトにおいてもウォーターフォール開発のメリットである、品質を維持することにつなげられるでしょう。
ウォーターフォール型開発と他の開発手法の違いとは?
ここでは、ウォーターフォール型開発と他の開発手法の違いを紹介します。
アジャイル開発との違い
アジャイル開発は、近年急速に広まっている開発手法です。
ウォーターフォール型開発と比べて、進め方に違いがあります。
アジャイル開発ではウォーターフォール型開発と違い、要件定義や設計を開発しながら詰めていきます。
そのため、仕様変更に対し柔軟な対応が可能です。
合わせて読みたい
ウォーターフォール開発とは?アジャイル開発との違いや特徴を解説!
開発手法の一種であるウォーターフォール開発について紹介します。アジャイル開発と対比させながら説明しています。開発現場のマネジメントにお困りのPM(プロジェクトマ.....
プロトタイプ型開発との違い
プロトタイプ型開発は、ウォーターフォール型開発を改良してできた開発手法です。
開発の前に試作品を作成するため、ウォーターフォール型開発と比べ認識のズレを早い段階で調整できます。
スパイラル型開発との違い
スパイラル型開発は、アジャイル開発と似て小さな開発を繰り返します。
ですがアジャイル型とは異なり、機能別に開発が終わる度に顧客からのレビューを受けるため、クオリティの担保が期待できます。
ウォーターフォール型開発にも使えるLychee Redmine
ウォーターフォール型開発を推し進めたいなら、Lychee Redmineがおすすめです。
操作性に優れており、PM初心者も容易に使用できます。
以下のように、ウォーターフォール型開発に役立つプラグインも用意されています。
- ガントチャート
- カンバン
- ダッシュボード
- タイムマネジメント
- リソースマネジメント など
フリープランは基本機能(ワークフロー・通知設定・ファイル共有・Wiki)とカンバン機能の限定された機能しか利用できませんが、有料プランはガントチャートをはじめすべての機能が利用できます。
有料プランは30日間の無料トライアル期間を提供しています。無料期間終了後も自動課金されることもないためリスクなく始められ、その価値を実感できるはずです。
プラン | 月額料金 | 利用機能 |
フリー | 無料 |
|
スタンダード | 900円 |
|
プレミアム | 1,400円 |
|
ビジネス[無料トライアルはこちらをお試しできます] | 2,100円 |
|
ウォーターフォール型開発を含め、正しい手法を選択しよう!
ウォーターフォール型開発について解説しました。
- 日本で実施されている開発手法の内、ウォーターフォール型開発が大部分を占める
- ウォーターフォール型開発では工程順を守る必要がある
- ウォーターフォール型開発は品質重視のプロジェクトに向いている
- 比較的大規模なプロジェクトにウォーターフォール型開発が向いている
開発手法にはさまざまなものがありますが、中でもウォーターフォール型開発は広く浸透しています。
ウォーターフォール型開発を推進するのに活用できるツールも、Lychee Redmineを含めさまざまなものが提供されています。
自社に合ったツールを選んで、ウォーターフォール型開発を効率よく進めてみましょう。
合わせて読みたい
Lychee Redmineとは?機能やメリットについて詳しくご紹介
作業の効率化を行うことができる「Lychee Redmine」ツールの詳細についてご紹介します。機能やメリット・デメリットまで紹介するので、自社に必要なツールな.....