BUSINESS TIPS発注担当者の方へ、発注成功の為のお役立ち情報

【どちらで依頼?】ウォーターフォールとアジャイルの違いを解説

目次

【どちらで依頼?】ウォーターフォールとアジャイルの違いを解説

システム開発を行う際、最初の方で議論になるのが開発手法です。
最近はアジャイル開発が主流になりつつありますが、改めてウォーターフォールモデルとアジャイル開発について手法の違いを見直してみましょう。

以前は主流であったウォーターフォールモデルは、今は古いから使えないのかというとそうではありません。どのような開発手法が最適なのかは、開発内容と現場、規模感などによって変わってくるものです。

ここでは、ウォーターフォールモデルとアジャイル型の開発の特徴や、それぞれのメリット・デメリット、何をしたいときにどちらを選択すべきかなどのポイントを説明します。より良い開発手法の選択にお役立てください。

また、開発手法など相談ができる開発会社一覧を見たい方は、「見積依頼が可能なソフトウェア・業務システム開発の会社一覧」をご覧ください。

システム開発の依頼先探しならリカイゼンにお任せください!

リカイゼンでは、ウォーターフォールモデルやアジャイルモデルなどシステム開発の実績を多数持つ会社の中から、希望に合う開発会社を厳選して無料でご紹介します。
企画段階からのご相談も受付中!気軽に相談できるプロをご紹介いたします。

お電話でのご相談は 03-6427-5422
受付時間:平日10:00〜18:30

1. ウォーターフォールモデルとは

システム開発を行うにあたり、その開発手法を体系化したものを「ソフトウエア開発方法論」と呼びます。
代表的な開発手法の1つが「ウォーターフォールモデル」です。ウォーターフォールモデルは、以前はよく使われていた開発手法ではありますが、徐々に衰退しつつあります。 それでも、日本における大規模な開発現場では、ウォーターフォールモデルを採用しているところは少なくありません。

ウォーターフォールモデルの特徴

ウォーターフォールモデルとは、滝の水が上から下へ落ちるのと同じように、いくつかに分かれたシステム開発工程を上流工程から順番に進めていく開発スタイルです。
ウォーターフォールモデルは、具体的には下記のような手順で進めます。

  1. 企画:開発したいシステムを企画書に起こす
  2. 要件定義:実装したい機能や予算、開発に必要な人員を決定
  3. 基本設計:ハードウェア選定、データベース設計など要件定義の内容を具体化する
  4. 詳細設計:プログラマー向けに必要な機能や内部動作などを細かく設計
  5. プログラム開発:詳細設計に基づいてプログラミング
  6. 単体テスト:作成した各プログラムの動作テスト
  7. 結合テスト:各プログラムを組合わせての動作テスト
  8. 受け入れテスト:クライアントの用意した環境でシステムが正常に動くかテストし、合格すればリリース

ウォーターフォールモデルでは工程ごとにチェック(検収)をはさみ、次の工程に進んだら基本的にはその前の工程には戻りません。

ウォーターフォールモデルのメリット

スケジュール計画が立てやすく、人材を確保しやすい

ウォーターフォールモデルの最大のメリットは、開発の初期段階で必要な工程やスケジュールが把握しやすい点です。「いつ、どの工程に何人のエンジニアやスタッフを配置すればよいか」が見通せるため、スムーズに必要な人材を確保できます。
また、システム開発のコストは工数によって決まります。IT業界の場合、工数の多くは人件費です。そのため、スケジュール計画と必要な人員がわかりやすいウォーターフォールモデルは開発費の見積算出がしやすく、また大幅なコストのズレも生じにくくなります。

システムの品質重視で進められる

システムの要件を明確にした上で開発がスタートし、リリースまでに多くのテストを挟むウォーターフォールモデルは、成果物の品質が担保されやすくなります。事前の仕様に沿った品質のものが納品されるため、企業の基幹システムやインフラ関係のような品質重視のシステム開発に適しています。

ウォーターフォールモデルの問題点

開発中に要求が変化することが考慮されていない

初期段階で開発計画がきっちり決まるため、途中での仕様変更や機能の追加がしにくくなります。
しかし実際には、多くの発注者が要件定義の段階では実現したいシステムをはっきりと説明できません。ある程度開発が進んだ時点で「これじゃなかった」と言うことに気づくのです。また、昨今はビジネス変化が著しいため、世の中の変化に応じて開発中に要求変更がされる場合もあります。
結果的に、追加作業や無駄な作業が増えてしまいます。

顧客にサービスを提供するまでに時間を要する

工程ごとに確認作業が入るので、書類作成や打ち合わせなどの時間が逐一必要です。
また、かなり工程が進まないと発注者がシステムの全容を確認できません。途中の調整が難しいため、後になってから発注者と開発者の間で仕様認識の齟齬が見つかると多くの変更が発生します。
その結果、手戻りなどにより納期に間に合わなくなる恐れがあります。

工程を進めるなかでの後戻りが想定されていない

ウォーターフォールモデルは、上流工程から下流工程まで流れるように開発が進むことを前提にしています。しかし、現実にはほとんどのプロジェクトで手戻りが発生するものです。もし想定外の不備が見つかった場合、修正に時間がかかり、スケジュール通りにはいかなくなってしまいます。

ウォーターフォールモデルのタイプ

上記のような問題点を持つウォーターフォールモデルですが、その弱点をカバーするような進化版の開発手法も生み出されています。
ここでは3つのタイプを紹介します。

  • V字型モデル
  • プロトタイピングモデル
  • スパイラルモデル

V字型モデル

ウォーターフォールモデルの「テスト」に着目して、開発プロセスが決められたモデルです。プログラミング開発を折り返し地点として、上流工程と対になるようにテストを行います。

  • 詳細設計 → 単体テスト
  • 基本設計 → 結合テスト
  • 要件定義 → 受け入れテスト

つまり「単体テストで確認する部分は詳細設計の内容」「受け入れテストでは要件定義に沿っているか確認する」のようにテストの検証内容を明確にするわけです。
これによりマイルストーンが設定でき、スムーズに開発が進められます。

プロトタイピングモデル

システムのプロトタイプ(試作)を作成して、発注者に確認を取りながら開発を進めるモデルです。要件定義とシステム設計の工程の間に「プロトタイプ作成」「プロトタイプ評価」「プロトタイプ修正」というフローを入れ、確認をしてから開発をスタートします。プロトタイプを作ることで、発注者も最初の段階で完成品のイメージがわきやすくなり、開発者との認識のズレを減らして大きな設計間違いを防げます。
また、隠れたユーザー要件を抽出しやすくなり、開発の漏れが無くせる点もプロトタイピングモデルのメリットです。

スパイラルモデル

システムをいくつか独立して動けるパーツに分解し、そのパーツごとに「設計」「プログラミング」「テスト」の工程を繰り返しながら開発を進めます。グルグルと螺旋階段を登るようなイメージなので、スパイラルモデルと名付けられました。
従来のウォーターフォールモデルと違い、「設計」〜「テスト」が小分けになっているため、途中での仕様変更にも柔軟に対応できます。

2.ウォーターフォールモデルでのシステム開発

ウォーターフォールモデル向きのシステム

ウォーターフォールモデルは、成果物の品質安定性とスケジュールの立てやすさにメリットがあります。

  • 業務システムなどの、必要機能があらかじめわかっているもの
  • 大規模なシステム開発

例えば、販売管理システムは「在庫管理」「売上管理」など必要な機能が明確です。また、すでに業務で行っているフローのシステム化になるため、発注者と開発者の間でイメージの齟齬がでにくくなります。大幅な仕様変更のリスクが少ないため、ウォーターフォールモデル向きといえるでしょう。

さらに、たくさんの人員確保が必要になる大規模なシステム開発も、事前の計画が立てやすいウォーターフォールモデルが適しています。

ウォーターフォールモデルに不向きのシステム

発注者も完成形が見えていないような、不確実性の高いシステムはウォーターフォールモデルに不向きです。
ウォーターフォールモデルは、仕様変更や機能追加に時間がかかります。例えば、新しく作るWEBサービスのシステムなどは、途中で仕様変更が多くなると予想できます。そのようなシステム開発は、後に紹介するアジャイル開発のほうが向いているでしょう。
とはいえ、契約形態が請負型であったり、事前見積が必要な場合はアジャイル開発も難しくなります。スパイラルモデルにて、機能ごとにフェーズを分けて発注するなどの手法をとるとよいでしょう。

ウォーターフォールモデルの開発の相談が可能な会社を探したいならリカイゼンにご相談ください! 対応可能な会社を選定し、無料紹介致します。

お電話でのご相談は 03-6427-5422
受付時間:平日10:00〜18:30

3. ウォーターフォール以外のシステム開発モデル

ウォーターフォール以外のシステム開発手法では、アジャイル開発が代表的です。

アジャイル開発

アジャイル開発は「イテレーション」と呼ばれる短い開発期間の単位を何度も繰り返しながら、成果物のクオリティを上げていく開発手法です。
大きなステップとしては以下となり、2の項目を繰り替えすようなイメージです。

  1. 企画:開発したいシステムの企画
  2. イテレーション:設計→実装→テスト
  3. リリース:イテレーションごとの提供も可能

イテレーションは、1回1週間〜1カ月の短期間で行います。企画に沿って大まかな仕様を満たす計画を立て、必要な機能ごとにイテレーションを回しながら完成形まで仕上げていきます。

一見すると、アジャイル開発は上述したスパイラルモデルによく似ています。システムの機能を小分けにして開発していく点と、小分けにした工程ごとに発注者がチェックできる点は同じです。
しかし、この2つは計画部分とリリース部分で違いがあります。

● スパイラルモデル
工程を分割する前に、必要な要件(ゴール)を初期段階で決めておく必要がある。また、すべての工程を終わらせないと基本的にリリースできない。
● アジャイル開発
必要な機能ごとに開発を進めるため、システムの全体像が曖昧でもスタートできる。またシステムの充実度を別にすれば、1回目のイテレーションが完了した時点でリリースも可能。

スパイラルモデルはあくまで品質重視、アジャイル開発は速度重視といえるでしょう。

アジャイル開発の特徴

プログラミング工程においてできる限り小単位での実装とテストを繰り返すことで、後戻りの工数を減らせるというのがアジャイル開発のメリットです。

  • 最初に要件定義をすべて決めることが難しい
  • システム開発にスピードが求められている

上記のような場合には、アジャイル開発が有効です。

以前は業務効率化を目指したシステム開発が大半を占めていたこともあり、要件定義の段階で設計が決まりやすい環境でした。
しかし、今はWEB系開発が主流になりつつあります。新規ビジネスの開発ともなると、なかなか要件定義の工程だけでシステム要件を100%固められません。
そこでアジャイル開発を採用し、実装とテストを繰り返すなかで仕様も固めていくケースが多くなっているのです。

アジャイル開発のメリット

● より早いスピードでシステムの提供が可能
イテレーションごとにサービス提供を行えるため、ウォーターフォールモデルよりもスピーディーな開発ができます。最小限の機能でまずは急ぎリリースしたい場合などに便利です。
● 要求の変化に柔軟に対応できる
アジャイル開発では、イテレーションごとに機能をどんどん追加していきます。手戻りがあることを前提としているため、発注者から「やっぱりこの機能が欲しい」との希望が出たときも素早く対応可能です。
● 細かく発注者が確認できるので、品質や顧客満足度が向上する
開発中のシステムを発注者が細かく確認でき、また実際にシステムを使った顧客の声も反映させやすいため、結果として満足度の高いシステム開発ができます。

アジャイル開発のデメリット

● 初期の企画から方向性がずれやすい
柔軟に開発が進められる一方で、あれもこれもと思いつくまま機能を入れていくと、最初の企画とはまるで違うシステムになってしまいます。
● スケジュール管理が難しい
開発チームごとに細かな工程を何度も反復させるため、全体の進捗が見えにくく、スケジュール管理が難しくなります。品質と納期が厳密に決められているような開発には向きません。
● 油断するとコスト超過になる
明確な仕様を決めずに開発をスタートするため、終わらない機能追加のループにはまりがちです。最終的にかかるコストが見えにくく、開発完了の見極めができないとコスト超過につながります。

アジャイル開発の相談が可能な会社を探したいならリカイゼンにご相談ください!
対応可能な会社を選定し、無料紹介致します。

お電話でのご相談は 03-6427-5422
受付時間:平日10:00〜18:30

4. ウォーターフォールモデル開発のまとめ

ウォーターフォールモデルとアジャイル開発について説明してきました。どちらにするのか、それともスパイラルモデルのようなウォーターフォールモデルの進化系にするのかは、システムが目指すゴールによって変わってくるでしょう。
発注者と開発会社でしっかりと話し合い、どのようなシステム開発手法がそのプロジェクトにフィットするのか見極めが大切です。

希望するシステム開発はどのような手法がよいか、どのような開発会社に依頼すべきかお悩みでしたらリカイゼンにご相談ください!
リカイゼンでは、専任スタッフがご要望をお電話でお伺いしながら、希望に沿う開発会社の候補をご案内いたします。手法などがまだ決まっていないという場合でも、実現したいシステムについてお伺いしながらよりよい方法を選択いただけるようサポートしますので、お気軽にお問合せフォームよりご連絡ください。

ソフトウェア・業務システム開発依頼先探しなら、
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社をご紹介いたします!

かんたん3ステップ
お急ぎの方はお電話で 03-6427-5422
※サポートデスク直通番号
受付時間:平日10:00〜18:00

ソフトウェア・業務システム開発依頼先探しでこんなお悩みはありませんか?

お悩み
  • 会社の選び方がわからない
  • 何社も問い合わせるのが面倒くさい
  • そもそも依頼方法がわからない
  • 予算内で対応できる会社を見つけたい

発注サポート経験豊富な専任スタッフが
あなたのご要望をお聞きし、最適な会社をご紹介いたします!
ご相談から会社のご紹介まで全て無料でご利用いただけます。
お気軽にご相談ください!

ソフトウェア・業務システム開発
依頼先探しなら
リカイゼンにおまかせください!

相談するだけ!プロがあなたにぴったりの会社を無料でご紹介いたします!

サポートデスク

まずはご質問・ご相談なども歓迎!
お気軽にご連絡ください。

この記事の監修
リカイゼン サポートデスク 
吉田・新町
BtoBマッチングサービスであるリカイゼンにおいて、発注企業からのご相談のヒアリング、企業選定のフォローなどを行う部門の担当です。出展企業であるシステム開発やWEB制作、クリエイティブ制作会社ともコミュニケーションを取りながら、年間数百件の受発注のサポートを行っています。

ソフトウェア・業務システム開発の関連記事

大阪市の受託系ソフトウェア開発会社8社を実績とあわせて紹介

大阪市の受託系ソフトウェア開発会社8社を実績とあわせて紹介

大阪には、約1000社ほどのソフトウェア開発会社があります。今回は、大阪市に拠点を持つ特徴を持ったソフトウェア開発会社を紹介します。 システム開発会社には、大きく「受託開発型」と「SES型」に分けられます。受...

【RPA開発|初心者の方向け】シナリオ作成から失敗回避のポイント、導入支援まで

【RPA開発|初心者の方向け】シナリオ作成から失敗回避のポイント、導入支援まで

単純な業務の自動化に非常に有効なRPAですが、RPAツールの機能向上や生成系AIとの連携により、さらに複雑な業務の自動化にも効果的になってきました。 しかし、いざRPAツールを導入し...

ソフトウェア開発の制作工程とは?各工程の目的や役割を解説

ソフトウェア開発の制作工程とは?各工程の目的や役割を解説

 ソフトウェアの開発には、基本的な制作工程が存在します。決められた手順に沿って進めることで、高品質なソフトウェア開発が可能になります。しかし、この制作工程について、一般の方は知らないことが多いのではないでしょうか。...

【発注初心者向け】システム開発の失敗リスクを減らす発注ガイド

【発注初心者向け】システム開発の失敗リスクを減らす発注ガイド

初めてシステム開発を行うを行うときに知っておきたい記事コンテンツをまとめました。 ぜひ、こちらを参考にしていただき、失敗リスクを最小限に、システム開発を進めていただければと思います! ...

システム開発におけるドキュメントの目的とは?種類や改定タイミングなどについて徹底解説!

システム開発におけるドキュメントの目的とは?種類や改定タイミングなどについて徹底解説!

システム開発を外注先に依頼するとプログラムが納品され、開発過程で作成されたドキュメント類も一緒に納品されることがあります。このドキュメントがなんのために存在するのかと疑問に感じたことはありませんか。 ドキュメ...

記事を探す

キーワードで探す

カテゴリーで探す