アジャイル型 vs ウォーターフォール型

ウォーターフォール型のシステム開発とは?

「要件定義」「設計」「コーディング」「テスト」「保守」という工程に分けて順に段階を経て行う開発方法です。前の工程には戻らない前提であることから、下流から上流へは戻らない水の流れにたとえてウォーターフォールと呼ばれています。

ウォーターフォール開発のメリット

  • ソフトウェア開発モデルとして簡潔で分かりやすい
  • ソフトウェアの仕様は1度決まったらほぼ変わらない
  • 計画的な開発なため品質の担保がしやすい

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

  • プロジェクトが長期化してコストがかかる
  • 膨大なドキュメントが必要になる
  • 柔軟性が低く大幅な仕様・要件変更に対応できない

 

アジャイル型のシステム開発とは?

開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1つの機能を開発します。そして、この反復のサイクルを継続して行うことで、1つずつ機能を追加的に開発して行きます。また、各々の反復は、小規模なソフトウェア開発プロジェクトに似ています。

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

  • 短いイテレーションを繰り返すことで顧客要件を最大限反映できる
  • プロジェクト途中での仕様・要件変更も問題無く対応できる
  • 顧客からのフィードバックを素早く得られる

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

  • 仕様設計を綿密に決めておかないと最終的な品質が落ちる
  • 大規模なプロジェクトでは開発を根底から覆すような事態も発生する
  • 開発後のソフトウェアがどうあるべきかを十分に想定していないと期待する結果が得られない