イテレーティヴとインクリメンタルの違い
みなさんこんにちは。@ryuzeeです。
The waterfall trap for “agile” projects より抜粋してご紹介します。
インクリメンタルでもイテレーティヴでも同じものを目指しているように見えるが、インクリメンタルな開発は顧客が満足しないものを作ってしまうリスクが軽減されていない。 大きな絵はプロジェクトのいちばん最後にしか見ることができない。 インクリメンタル開発で細部まで作りこんでしまうと、修正が発生した場合に、多くの努力が無駄になってしまう。 イテレーティヴな開発は開始時点からの絵の変化を見ることができる機会を提供している。 そして一歩ずつ全体の絵の完成に向けて進んでいくのをガイドしてくれる。
プロダクトバックログの作り方を間違えると上記のような事態になりやすいと言っても良いでしょう。 プロダクトバックログが顧客の視点で書かれていれば実現価値をスプリント中に明確にできるので良いのですが、このプロダクトバックログが開発者の作業レベルに近い内容だと、単なるインクリメンタルに陥る可能性があります。 最初のスプリントで、「共通関数を作る」といったプロダクトバックログアイテムが混ざっていたら要注意です。
原文の抜粋は以下になります。
Although both these plans aim for the same thing, the incremental plan does not really reduce the risk of delivering something unsuitable to the client. The big picture appears only at the very end. Because increments are done in detail, a lot of effort is wasted when a piece needs rework (and the initial releases are almost certain to fall into this category). Iterative development offers a chance to see the picture from the start, and guide the development towards the full picture in steps. Not carving stuff in stone from the start allows us to change them easier later on, and we know that we’ll need to do that. Jeff gave the following rule of thumb to check quickly if your plan is iterative or incremental: “it’s not iterating if you do it only once”.