発注ラウンジは、システム開発の発注に必要な様々なノウハウや発注ナビで実際に開発された発注者様のインタビューなど、発注担当者様のための情報発信サイトです。

ウォーターフォール型開発とは?アジャイル型開発との違いは?

システム開発においては、要件定義からリリースに至るまで、様々な工程を経てシステムやソフトウェアが完成します。
ですが、「どのような手順で開発をするか」に関しては、企業や案件によって大きく異なります。
この開発手法の中でも、古くからシステム開発の分野で使用される「ウォーターフォール型開発」という方法をご存知でしょうか。
今回は、ウォーターフォール型開発の基本情報や、メリット・デメリットについて詳しく紹介します。

 

目次

システム開発会社選びはプロにお任せ完全無料で全国2000社以上からご提案

200x200b

・ベストマッチな発注先が見つかる
・たった1日のスピード紹介
・ITに詳しいコンシェルジュがサポート
・ご相談~ご紹介まで完全無料

 

ウォーターフォール型開発とは

ウォーターフォール型開発とは、システムやソフトウェア開発で用いられる開発手法の一種です。ウォーターフォールという名が示す通り、「滝(Waterfall)のように落下するが如く開発が進む」ことから、その名が付けられています。

ウォーターフォール型開発の流れ
工程 詳細
➀要件定義 システムの機能や、開発に必要となる予算や人員を決める。
➁外部設計 ユーザーインターフェース(外見的な見た目のこと)を設計する。
③内部設計 システム内部の動作や機能、物理データ部分を設計する。
④コーディング 外部と内部設計に基づき、実際にプログラムを作成する。
⑤単体テスト 作成したプログラムが、正しく機能するかテストをする。
⑥結合テスト 複数のプログラムを組み合わせ、正しく機能するかテストをする。
⑦運用テスト 完成したシステムが、実際の業務に使用できるかテストをする。
⑧リリース テストが完了したシステムをリリースする。

 

ウォーターフォール型の具体的な開発手順とは

ウォーターフォール型開発は、「開発手順が極めてシンプルで分かりやすい」という特徴があります。上図の通り、システムやソフトウェア開発には多くの工程(プロセス)が存在しますが、この工程を「上から順番に行う」のが、ウォーターフォール型開発なのです。

ウォーターフォール型開発の大まかな手順としては、システムに搭載する機能や細かな仕様をすべて決めてから開発がスタートします。その後、1つひとつの工程をしっかりと完了させながら行う、という流れです。「前の工程には戻らないこと」を前提に開発が進行するのも、ウォーターフォール型開発の特徴と言えるでしょう。すべての工程が完了した後、晴れてシステムやソフトウェアがリリースされる仕組みです。

 

ウォーターフォール型開発におけるメリット

●品質を担保したシステム開発を行いやすい

先に挙げた通り、ウォーターフォール型開発は「何を作りたいか」を明確にしたうえで、事前に決められた手順通りに開発が進みます。そのため、ウォーターフォール型のシステム開発は「完成品の品質を担保しやすい」というメリットがあります。仕様に沿った物が予定通りに作られる分、クライアントに安心感を与えやすいのもウォーターフォール型開発の利点と言えるでしょう。

 

●スケジュールや進捗管理がしやすい

計画的にシステム開発を進めやすいウォーターフォール型開発は、開発にかかわるエンジニアやスタッフの管理がしやすいのもメリットです。開発のスタート段階で作業量が分かる分、必要な人員だけを確保できて、コスト面においても無駄がありません。また、各々の工程で「いつまでに完了するのか」、「どのように仕上がるのか」が分かりやすく、業務の引き継ぎも円滑に行いやすいという特徴があります。

 

ウォーターフォール型開発におけるデメリット

●開発期間が長期化しやすい

ウォーターフォール型開発は、企画や要件定義をじっくりと行ってから開発を開始する分、開発期間が長期化しやすいという欠点があります。そのため、スタートアップのビジネスで使用するシステムやソフトウェアのように、スピードが重視されるに開発案件では不向きです。品質の高さや安定性と引き換えに、時間が犠牲になりやすい開発方法と言えるでしょう。

 

●仕様や計画の変更がしにくい

システム開発に限った話ではありませんが、すべての業務が計画通りに進行することは稀です。開発の途中で「どうも使いにくそうだ」、「やっぱりこの機能は要らない」と思っても、最初に全体像が完成している分、仕様や計画を簡単に変更できません。万が一、開発途中で仕様の変更をする場合は、甚大なコストと労力が発生してしまいます。コストや労力を捻出できず、「そのまま後戻りできずにシステムが完成する」というケースもあるほどです。

 

ウォーターフォール型に最適な開発業務って?

ウォーターフォール型開発でシステムを作る際は、メリットとデメリットをしっかり把握したうえで、「ウォーターフォールに適したシステム開発」を行いましょう。品質の安定性に定評のあるウォーターフォール型開発は、「仕様変更を前提としないシステム」を開発するのに適しています。例えば、家電や自動車に搭載する組み込みソフトウェアや、携帯キャリアの通信システムなど、障害の発生によって甚大な被害が生じる開発案件などが挙げられるでしょう。また、ウォーターフォール型開発は、スケジュール管理が行いやすいことから、コンピューターのOSといった規模の大きな開発でも対応可能です。

 

ウォーターフォール型以外の開発方法はあるの?

このウォーターフォール以外にも、「〇〇型」と呼ばれる開発方法は数多く存在します。中でも、ウォーターフォール型開発としばしば比較をされる、「アジャイル型開発」と「スパイラル型開発」についても見ていきましょう。

 

●アジャイル型開発

アジャイル型開発の流れ
工程 詳細
➀企画 「どんなシステムやソフトウェアを作りたいのか」を具体的に決める。
➁イテレーション 計画、設計、実装、テストのサイクルを回す。
③リリース 完成したシステムをリリースする。
➁~③の工程を繰り返し行う。

 

俊敏(アジャイル)の名を冠したアジャイル型開発は、文字通り「素早いシステム開発」を可能とした開発方法です。作りたいシステムを大まかに決めた後は「計画、設計、実装、テストの反復(イテレーション)」を繰り返し、一気に開発を完了させます。システムのリリース後は、ユーザーやクライアントからのフィードバックをもとに、システムの改良を繰り返して行う流れです。

ウォーターフォール型とは反対に、「前の工程に戻ること」を前提に開発を行うのが、アジャイル型の特徴と言えるでしょう。短期間でシステム開発ができるうえ、臨機応変に計画を変更ができる分、「柔軟にシステム開発が行いやすい」という点も、ウォーターフォール型とは真逆のメリットです。「仕様変更を前提としたWebサービス」や「速度の求められるスタートアップのシステム開発」においては、アジャイル型開発に向いています。

ただし、ウォーターフォールと真逆の特性を備えているのは、デメリットについても同じです。ことアジャイル型開発は、工程を分けずに細かなサイクルを繰り返す分、スケジュールや進捗管理が難しいという欠点があります。そのため、アジャイル型開発を円滑に進めるには、管理能力に長けたプロジェクトマネージャーの存在が不可欠となるでしょう。

 

●スパイラル型開発

スパイラル型開発の流れ
工程 詳細
➀企画 「どんなシステムやソフトウェアを作りたいのか」を具体的に決める。
➁イテレーション 計画、設計、実装、テストのサイクルを回す。
③評価・レビュー 完成したプロトタイプ(試作機)の評価やレビューを受ける。
➁~③の工程を繰り返し行う。
④リリース 完成したシステムをリリースする。

 

スパイラル型開発とは、先に挙げたアジャイル型開発とよく似た開発方法です。アジャイル型と異なる点として、システムのプロトタイプ(試作機)を完成させたうえで、ユーザーやクライアントからのフィードバックを受けるという違いが挙げられます。フィードバックによって、改善すべき点を明らかにしてから、段階的にシステムの完成に近づけていくという流れです。晴れてシステムが完成した後に、リリースが行われます。

同じ手順をぐるぐると繰り返しつつ完成を目指すことから、スパイラル(螺旋)型開発の名が付けられているのです。

スパイラル型開発は、臨機応変に仕様変更がしやすいうえ、品質重視の案件にも対応しやすいことから、ウォーターフォールとアジャイル型の「良いとこ取り」の開発方法と言えるでしょう。ですが、プロトタイプを完成させる分「開発コストが高騰しがち」という大きな欠点を抱えており、システム開発で採用されることは少なくなっています。

このほかにも、開発チームと運用チームが連携をして開発を行う「デブオプス」や、無駄の排除に重きを置いた「リーンソフトウェア開発」など、様々な開発手法が存在します。システムやソフトウェア開発を行う際に、それぞれ特徴を把握しておけば、余計なコストをかけずに開発効率の優れた開発を実現しやすくなるのです。

 

 

システム開発会社選びはプロにお任せ完全無料で全国2000社以上からご提案

200x200b

・ベストマッチな発注先が見つかる
・たった1日のスピード紹介
・ITに詳しいコンシェルジュがサポート
・ご相談~ご紹介まで完全無料

 

 

■システム開発の関連記事

アジャイル開発でおすすめのシステム開発会社10社【最新版】

 

 

システム開発の成功を左右する「要件定義」とは?必要な進め方のコツ

 

 

関連する記事

PAGETOP