アジャイル開発とウォーターフォールモデル開発
アジャイル開発とウォーターフォールモデル開発の違いは、どこにあるでしょうか。開発期間の長さですか?それとも開発方法でしょうか?価値観の違いですか?
アジャイル開発、ウォーターフォールモデル開発、繰り返し開発の比較
ソフトウェア工学の視点から、両者の違いを最も端的に表している図が以下だと思います。

出典: K. Beck, Embracing Change with Extreme Programming. Computer, 32, 70-77, 1999
この図は、XP(eXtreme Programming、エクストリームプログラミング)を提案した、K. Beck氏によるものです。このため上図では、アジャイル開発ではなくXPと表記していることに注意してください。
ウォーターフォールモデル開発の特徴
上図左側のウォーターフォールモデル開発は、上から下に流れる時間の経過につれて、分析、設計、実装、テストへと進んでいきます。上図では、それを大きい箱を積み重ねることで表現しています。
繰り返し開発の特徴
真ん中の繰り返し開発は、それを短いサイクルで繰り返します。積み重ねる箱の大きさは、ウォーターフォールモデル開発よりも小さくなっていますね。
アジャイル開発の特徴
これに対して右側のアジャイル開発(XP)は、それをもっと短いサイクルで繰り返します。小さい箱がたくさん並んでいることから、それがわかります。しかも、上図をよく見ると、アジャイル開発(XP)の箱は、横の縞模様ではなく、縦の縞模様になっています。時間の経過につれて箱が積み重なるのでなく、箱が並んでいるのです。その意味するところは、分析からテストを一度に短期間で「ブレンド」して実施するということです。この「ブレンド」して、という点が重要なのです。
アジャイル開発は短いウォーターフォールモデルではない
アジャイル開発は、短いウォーターフォールモデル開発ではありません。全くパラダイムの異なる開発プロセスです。この理解がとても重要です。そこを理解しないと、ウォーターフォールモデルでやっていたことを、どれも短期間で実施しなくては、と考えてしまい、そんなに大変なことをどうやって実行するのだろう?という気持ちになってしまいます。
アジャイル開発の進め方
「ブレンドして実施する」という意味は、それを開発するのに最も適した方法で開発を進めればよいということです。プロトタイプの作成から始めてもよいし、テストコードの作成から始めてもよいということです。ウォーターフォールモデルの秩序だった順序通り、設計⇒実装⇒テストの順序でなくてかまわないのです。たとえ、設計⇒実装⇒テストの順で開発したとしても、行きつ戻りつしながら進めてよいのです。
アジャイル開発とウォーターフォールモデル開発の違い
ウォーターフォールモデルは、滝の水が下に落ちるように、順々に工程を進めて、原則として後戻りを認めていません。しかし、アジャイル開発では、開発対象によって開発しやすい手順を考えて進めましょうといっているのです。
さいごに
これからアジャイル開発について、品質の視点から順々に説明していきます、どうぞお楽しみに。