今まで広く普及してきた開発プロセスとして「ウォーターフォール型開発」がある。これに対し、注目を集めるようになっているのが「繰り返し型開発」あるいは「イテレーション型開発」である。 このような開発プロセスでは、プロトタイプを開発したうえで実際に動作するシステムを作りこんでいったり、開発するシステムを部分ごとに開発したりして、開発を進めていく。この手法では、早期に実際に動作するものを顧客に見せることができ、顧客との間で要件を調整しながら開発をすすめることが可能になる。昨今のシステム開発、とくにWebを利用したシステムの開発では開発期間がどんどん短縮するにもかかわらず、システムの要件を固めるのが難しくなっている。このような状況においては、ウォーターフォール型開発よりも繰り返し型開発が有効である。 繰り返し型の開発プロセスには、XPをはじめとしてさまざまなものが存在するが、一般的には図1に示