ウォーターフォール型開発は、要件定義、設計、実装、テスト、運用の各工程を順番に進めていく手法。 ウォーターフォール型開発は、開発プロセスを一連の段階に分けて順次進める方法です。 名前の由来は、各工程が滝のように次の工程へと流れていくことからです。
プロトタイピング型開発は、まず試作品(プロトタイプ)を作成し、顧客からのフィードバックをもとに要件を明確化していく手法。 プロトタイプ型開発は、製品やシステムの初期モデル(プロトタイプ)を迅速に作成し、ユーザーやステークホルダーからのフィードバックを基に改善を反復する開発手法です。 原則としてプロトタイプ作成サイクルと製品版作成サイクルの2つで構成されています。 後述のアジャイル型開発では、繰り返すサイクルの中で仕様や機能が決定していくのに対し、プロトタイプ型開発はプロトタイプを作成する上で、仕様や要件がある程度決定している必要があります。 アジャイル型開発ほどフィードバックを反映する自由度はないため、時間とコストの管理が重要であり、過度なスコープ[^2]拡大を防ぐための適切なマネジメントが求められます。
アジャイル開発は、柔軟性、迅速な対応、ユーザーのニーズへの応答を重視した開発手法です。 アジャイル型開発は、短い期間で繰り返し開発とフィードバックを行い、柔軟に変更に対応する手法。 先述のウォーターフォール型・プロトタイプ型とは対照的に、継続的な開発・リリースによるアプローチが特徴です。 柔軟に機能を追加したりユーザーやステークホルダーからのフィードバックを迅速に反映したりできる反面、マネジメントが複雑になりコストの算出が難しくなったり、最初から厳密に方針を定めないことも多いので開発途中で構想のブレなども生じやすいです。
アジャイル型開発には他にエクストリーム・プログラミング(XP)やカンバンなどの手法がある。
これらはスクラムを実践するうえでの最低限のルールのセットであり、各チームに合わせて調整していく必要がある。 また、スクラムにはコーディングルールやテスト等の技術的なプラクティスは含まれていないため、チームはそれらを独自に定義し、実践していく必要がある。
スクラムチーム全員が唱えられるくらいを目標に!