アジャイル開発はイテレーティブでインクリメンタルな開発と言われます。大抵同時にでてくるので、同じ意味だと混同されることがありますが、意味するところは異なります。
まず英語の意味を調べてみましょう。
イテレーティブ (Iterative) | 反復する、繰り返す |
インクリメンタル (Incremental) | 増加の、増分の、徐々に増加する、漸増の |
イテレーティブの名詞がイテレーションで、反復のことです。アジャイル開発ではイテレーション毎に徐々に機能を追加してプロダクトを増強していきます。
イテレーティブは単に繰り返すという意味で、機能を増やすという意味はありません。一方、インクリメンタルには増分をアドオンしていき、小さく始めて大きく育てるコンセプトがあります。
それぞれの違いを図で示します。
ご覧の通り、インクリメンタル開発では完成するまで価値がありません。中間成果物において価値が認められない作り方がインクリメンタル開発になります。
一方、イテレーティブ開発は最初から価値を作ります。シンプルで最低限の機能しかありませんが、はじめから利用者の価値を実現するのがイテレーティブ開発です。そして、毎回のイテレーションで性能や操作性を高めて洗練させていきます。
アジャイル開発がイテレーティブかつインクリメンタルな開発であるのは、イテレーション毎に既存機能を磨いていくだけでなく、新たな機能追加も行うからに他なりません。