ウォーターフォール開発かアジャイル開発か、手法の違いを理解しよう

V字モデルはウォーターフォール開発の上位互換

ウォーターフォール開発の上位互換「V字モデル」

ウォーターフォール開発の上位互換「V字モデル」

V字モデルとは

V字モデルは、開発からリリースまでの開発工程とテスト工程を表したものです。V字の左側が開発工程で右側がテスト工程を表現しています。V字モデルはひとつの工程がおわると次の工程に進みます。要件定義、基本設計、詳細設計、実装といった開発工程がすべておわったら、単体テスト、システムテスト、受け入れテストといったテスト工程に進みます。開発のどの段階でどんなテストがあるのかが明確になることでスムーズにプロジェクトを進めることができます。V字モデルはウォーターフォール開発を捉えなおしたものだといえるでしょう。テストの各工程では対応する開発がおわっているか確認し、最終の受け入れテストでは要件定義の通りに動作するのかを確認します。問題なく要件定義を満たしていればプロジェクト完了となります。

V字モデルのメリット

V字モデルは基本の通りに開発工程とテスト工程を進めることで必ず完了することができます。プロジェクトを確実に前に進めていくにはおすすめの手法といえるでしょう。テスト工程が対応する開発工程によって決まっているので役割分担がしやすく責任も明確になります。また、V字モデルは道筋がはっきりしていて、プロジェクトを進めるにあたっては計画性や確実性、緻密なコミュニケーションが必要になります。このような進め方は日本企業に合っているので、とくに日本ではよく使われています。
V字モデルは予定にないテストはおこないません。設計で進んだ道をテストで戻るので確実に予定通りにいきます。開発に関わった関係部署の承認を得やすいのもメリットといえるでしょう。

V字モデルのデメリット

各工程では前段階が完璧に完了していることがV字モデルの前提条件になります。そのため、各工程でミスがあると次の工程で問題になり、ミスが上位工程であればあるほどダメージが大きくなります。また、V字モデルは最初から開発工程を綿密に計画するためクライアントからの仕様変更があると対応しにくいことがあります。つまり、V字モデルは、前工程でミスがあるとダメージが大きく、仕様変更に弱いのがデメリットといえるでしょう。

ウォーターフォール開発との関係

V字モデルは、ウォーターフォール開発の進化系といえるでしょう。ウォーターフォール開発は上流工程から水が流れるように各工程を進めることから名付けられたものです。各工程が明確になっていて、それぞれを完璧に仕上げてから次の工程に進みます。後戻りは許されません。V字モデルはこうしたウォーターフォール開発の考えにテスト工程をリンクさせたものです。テストや検証の精度があがりより品質の高い開発ができることから、ウォーターフォール開発の進化系として重宝されています。

よく読まれている記事一覧

  • アジャイル開発手法の種類と特徴 アジャイル開発手法の種類と特徴

    アジャイル開発には、複数の開発手法があります。プロジェクトの進捗やスケジュールの流れをスムーズにすることに重点を置くもの、開発サイクルを繰り返す中で計画を決めて、仕様変更時のコスト削減を重視するものなど、それぞれが特性を有しています。アジャイル開発を使いこなしたいのなら、まずこうした開発手法の種類と特徴を知ることが欠かせません。ここでは代表的な開発手法を取り上げているので、ぜひ確認してみてください。

  • ウォーターフォール開発とアジャイル開発の案件はある? ウォーターフォール開発とアジャイル開発の案件はある?

    フリーランスエンジニアの案件には、ウォーターフォール開発とアジャイル開発、どちらもあります。ウォーターフォール開発案件に多いのは、金融機関のATMや携帯キャリアのシステムなど、品質担保が重視される大規模プロジェクトです。このようなプロジェクトには大人数のエンジニアが必要です。一方、アプリケーション開発などの案件はアジャイル開発が増えています。今後はアジャイル開発経験のあるエンジニア需要も増えていくといわれています。

  • 大規模開発向きのウォーターフォール開発 大規模開発向きのウォーターフォール開発

    要件定義からテストまでの開発工程においてひとつずつ段階を踏んで進めていくシンプルな開発手法がウォーターフォール開発です。ひとつの工程を完了させて次の工程へ進むため、前の工程へ戻ることは想定していません。開発途中の仕様変更や機能追加には対応できず、軌道修正には大幅なスケジュール変更が必要になってしまいます。しかし、全体のスケジュールやリソース確保がしやすく、確実に開発を進めることができるため、仕様変更を前提としない大規模開発に適しています。