プロジェクトマネジメントガイド · プロジェクトマネジメントの基礎
反復型開発と漸進型開発の解説
反復型開発と漸進型開発は、現代のほとんどのデリバリー手法の背景にある、互いに関連した2つの考え方です。反復型は繰り返しのサイクルを通じて改善すること、漸進型は利用可能な部分ごとに提供することを意味します。
要点
- 反復型はサイクルを通じて改善すること、漸進型は部分ごとに提供することを意味します。
- アジャイルは両方を組み合わせています。
- 要求事項が不確実なときに使います。
定義
| 反復型 | 漸進型 | |
|---|---|---|
| 考え方 | 繰り返しのサイクルでソリューションを洗練させる | ソリューションを部分ごとに構築する |
| 例 | 数回のレビューを経て改善される大まかな設計 | まずログイン、次に検索、その次に決済 |
| メリット | サイクルごとに学習と品質が向上する | ユーザーがより早く価値を得られる |
両方を組み合わせる
次のようなアジャイルのフレームワーク: スクラム は両方を組み合わせています。各スプリントは利用可能なインクリメントを提供し、各サイクルではフィードバックに基づいてそれまでの成果を改善します。その結果、早期の価値提供と継続的な学習が実現します。
歴史
反復型・漸進型開発は、アジャイルという言葉が生まれるはるか以前、少なくとも1950年代から1960年代には大規模なエンジニアリングプログラムで使われていました。参考: アジャイルの歴史.
使うべき場面
- 要求事項が不確実、または変化する可能性が高い。
- ユーザーからの早期フィードバックに価値がある。
- ソリューションを部分的に提供し、利用できる。
- リスクを段階的に減らす必要がある。
よくある質問
反復型開発はアジャイルと同じですか?
アジャイルは反復型開発と漸進型開発を使いますが、顧客との協調や自己組織化チームといった価値観を加えています。
ウォーターフォール型のプロジェクトでも反復型開発を使えますか?
予測型のプロジェクトでも、特に設計やプロトタイピングでは、フェーズ内に反復を取り入れることがあります。
反復型開発とは何ですか?
繰り返しのサイクルを通じてソリューションを洗練させ、毎回フィードバックに基づいて改善していくことです。
漸進型開発とは何ですか?
ソリューションを部分ごとに構築し、各インクリメントで利用可能な機能を追加していくことです。
反復型開発と漸進型開発の違いは何ですか?
反復型は同じものを繰り返しのサイクルで改善し、漸進型は新しい部分を追加していきます。アジャイルのフレームワークは両方を組み合わせています。
漸進型開発の例にはどのようなものがありますか?
まずログイン機能、次に検索機能、その次に決済機能をリリースし、ユーザーが準備のできた部分から順に価値を得られるようにします。
反復型開発の例にはどのようなものがありますか?
大まかな設計を作り、ユーザーとの数回のレビューを通じて、ニーズを満たすまで改善していきます。
反復型・漸進型開発はどのようなときに使うべきですか?
要求事項が不確実なとき、早期フィードバックに価値があるとき、ソリューションを部分的に利用できるとき、リスクを段階的に減らす必要があるときです。
反復型開発はいつから使われていますか?
少なくとも1950年代から1960年代には、大規模なエンジニアリングプログラムで使われていました。参考: アジャイルの歴史.
反復型開発のスパイラルモデルとは何ですか?
1980年代にバリー・ベームが提唱した、リスク主導の反復型モデルです。各ループで計画、リスク分析、構築、評価を行います。
スクラムは反復型開発と漸進型開発のどちらを使いますか?
両方です。各スプリントは利用可能なインクリメントを提供し、各サイクルではフィードバックに基づいてそれまでの成果を改善します。