反復型アプローチと漸進型アプローチの違いは何か?2つの開発アプローチの内容とアジャイル開発への影響を解説

2022年4月18日

反復型アプローチと漸進型アプローチの違いのイメージ
反復型アプローチと漸進型アプローチの違い

プロジェクトの進行方法にはいくつか種類があります。
従来用いられてきた予測型アプローチの問題点を克服するために、反復型アプローチや漸進型アプローチが採用されることもありますが、両者の違いはどこにあるのでしょうか?
今回は混同されて紹介されることもある反復型アプローチと漸進型アプローチの進行方法をPMIが発刊しているPMBOKと『アジャイル実務ガイド』の記述をもとに整理し、両者の違いを解説していきます。

反復型アプローチ

反復型アプローチの概要

反復型アプローチとは、その名の通り一連の流れを反復するというものです。プロジェクトの完成に必要なフェーズをいくつかに分割し、プロトタイプを作成し、プロジェクト・チームやステークホルダーにそれを評価してもらい、返ってきたフィードバックをもとに内容を洗練させていきます。この作業を繰り返し、プロジェクトの不確実性を取り除いていきます。そのため、不確実性の高いプロジェクトに適した開発アプローチです。

反復型アプローチでの開発の進め方

反復型アプローチのイメージ画像
反復型アプローチのイメージ

ここからは反復型アプローチを用いた開発の進め方を紹介していきます。反復型アプローチの進行は以下のとおりです。

  • プロジェクトの計画
  • 設計
  • 開発
  • 完了(納品)

ここからはシステム開発をした場合の各工程の内容を概観していきます。

プロジェクトの計画

まずは、プロジェクト完了までの計画を立てます。チームやクライアント間でプロジェクトの達成に必要な計画を立て、各作業ですべきことを明確にします。この際、チームで上手く目標を共有できていなかったり、プロジェクトの達成が明確になっていなかったりすると失敗のリスクが高まるので注意が必要です。

設計

プロジェクトの計画を立て共有したら次は、実際の設計へと進みます。

まずは基本設計です。計画書を参考に必要な機能や機能の搭載方法などを洗い出し、どのように作っていくかを決めます。また、洗い出すだけではなく、必要な機能や機能の実現が可能かどうか等を決めることも大事です。しっかりとチームやクライアント間で話し合います。

これらの情報を基本設計書として書類を作成し、関係者と共有します。

次は詳細設計です。この段階では主に、プログラマーなどの技術者向けの書類作成を行います。基本設計書を参考にしながら、各作業を詳細にした書類を作成し、どのような動作をしてほしいのか、どのようなプログラムを組めばいいのか等を適切に読み取れる書類を、詳細設計書として作成します。

必要に応じて機能が正常に作動しない場合の対処方法も記載しておかなければなりません。

開発

ここからは、実際にプログラムを組んでいきます。エンジニアやプログラマーが設計書を参考にしながら開発を進め、プログラムの完成を目指します。

完成(納品)

開発が無事完了したらプロジェクトは完了です。完成した製品をリリースしたり、既存のシステムに導入したりします。

評価とフィードバック

以上の流れだけであれば、予測型の開発アプローチとの違いはありません。反復型の特徴は各工程で評価とフィードバックを繰り返し、成果物を洗練させていく点にあります。
システム開発であれば設計や開発の評価とフィードバックをとくに重視していきます。
設計であれば、まずはたたき台となる基本設計書を作成し、チーム・メンバーやステークホルダーと共有し、その内容を評価しながら、出てきた意見を反映します。この評価とフィードバックを繰り返すことで、基本設計書を洗練させていきます。
また、開発であればプロトタイプを作り、同様に評価とフィードバックを行い、目的とするシステムに近づけていきます。

反復型アプローチのメリット・デメリット

ここからは反復型アプローチのメリット・デメリットを紹介します。
反復型アプローチのメリットはプロジェクトの不確実性を特定し、その軽減・排除ができることです。また、評価とフィードバックを繰り返すことでステークホルダー間の認識のズレも解消されていきます。さらに内容を検討する時間も確保しやすくなるため、チーム内の学習が促されます。
一方で、反復型アプローチのデメリットは評価とフィードバックを繰り返すために時間がかかることです。言うなれば、反復型アプローチは時間を使うことで、不確実性を軽減し、学習の機会を得ています。

漸進型アプローチ

漸進型アプローチの概要

漸進型アプローチは作業を分割し、段階的に作成していく開発方法です。名前にもなっている漸進型の「漸進」は順を追って少しずつ進んでいくという意味です。たとえば3階建ての建物を作る場合は、1階ずつ計画、設計、建設を行い、反復型アプローチは工程を繰り返すことで改良していくのに対し、漸進型は分割した作業ごとで改良してから最後に結合するという流れで開発を行う違いがあります。

漸進型アプローチでの開発の進め方

漸進型アプローチのイメージ画像
漸進型アプローチのイメージ

ここから漸進型アプローチの開発方法を紹介していきます。漸進型アプローチも、基本的なプロジェクト進行は予測型と変わらず、「プロジェクトの計画」「設計」「開発」「完了(納品)」という流れで進んでいきます。漸進型の特徴は開発の流れをプロジェクト全体ではなく、個別の機能や部分に分けて行うことです。
たとえば、機能A、機能B、機能Cで成り立つシステムであれば、以下のように3つの機能毎に「プロジェクトの計画」「設計」「開発」を行っていきます。

機能A

  • プロジェクトの計画
  • 設計
  • 開発
  • 完了(納品)

機能B

  • プロジェクトの計画
  • 設計
  • 開発
  • 完了(納品)

機能C

  • プロジェクトの計画
  • 設計
  • 開発
  • 完了(納品)

機能Aの開発が終わり、ステークホルダーの承認が得られたら、次の機能Bに進み、そして機能Bが完了したら機能Cに移ります。
すべての機能がすべて完成したら、最終的なシステムが完成し、プロジェクトが完了します。

漸進型アプローチのメリット・デメリット

ここからは漸進型アプローチのメリットとデメリットを紹介します。
漸進型アプローチのメリットは、プロジェクトを機能や部品に分けて納品することで、頻繁に価値を提供できることです。つまり、「プロジェクト全体としては機能A、機能B、機能Cで成り立つが、部分的にリリースしたい」という時に漸進型アプローチは適しています。
部分的に開発を行うため、最初の成果物の完成までが速く、顧客はプロジェクトの完了前に早期に価値を得ることができます。早期に成果物を確認できるため、顧客の不満が減り、認識の相違による手直しを最小限にとどめます。また、成果物を早期に確認することにより、チームがプロジェクトのビジョンや目的から逸脱することを防ぎます
漸進型アプローチには目立ったデメリットはありませんが、部分最適にならないように気を付ける必要があります。システムでいえば、個々の機能は使いやすいが、それを組み合わせて最終的なシステムが出来上がった時に使いにくいというような状況にならないように気を付ける必要があります。

反復型アプローチと漸進型アプローチの違い

反復型アプローチと漸進型アプローチの違いのイメージ
反復型アプローチと漸進型アプローチの違い

ここまでは反復型アプローチと漸進型アプローチの内容を確認してきました。
ここからは反復型アプローチと漸進型アプローチの違いをまとめていきましょう。

反復型アプローチ漸進型アプローチ
特徴
  • 各工程で評価とフィードバックを繰り返し、内容を洗練する
  • プロジェクトを機能や部品ごとに分けて進める
適したプロジェクト
  • 不確実性の高いプロジェクト
  • 早期に成果物を確認したい
メリット
  • 不確実性の軽減・排除
  • ステークホルダー間の認識のズレの解消
  • チームの学習
  • 早期に価値を提供できる
  • 顧客の不満が減り、認識の相違による手直しを最小限にとどめる
  • チームがプロジェクトのビジョンや目的から逸脱することを防ぐ
デメリット
  • 時間がかかる
  • 部分最適に陥る可能性がある

反復型アプローチと漸進型アプローチのアジャイル開発への影響

今回は反復型アプローチと漸進型アプローチについてまとめました。
これらの開発アプローチはアジャイル開発に代表される適応型アプローチでも少し形を変えて用いられています。適応型アプローチでは、漸進型アプローチのように機能や期間でプロジェクトを分割し、反復型アプローチのように評価とフィードバックを繰り返していきます。