二つの開発の違いを復習がてらに、備忘録として書いていきたいと思います。
ウォーターフォール型開発
『区切られた全ての工程が正しい』という前提で進める方法。
この前提を守りながら進めるため、プロダクトはプロジェクト立ち上げ当初作成した要求仕様を忠実に実装し、その仕様を全て満たした時点で開発完了となります。
当初の要求仕様通りに進むという特徴から、契約時に契約内容、責任範囲が明確となるメリットがある一方、要求仕様作成時に要求ミス・漏れがあった場合や、開発途中で要求に変更があった場合、別途仕様変更として追加費用や開発期間が発生する可能性があるというデメリットがあります。
・大きなプロジェクトに向いている。
・基本的に途中の変更は無し。
・チーム事に役割分担されている。
・実装が終わり次第、工程事にテストする。
アジャイル型開発
アジャイルとは『すばやい』『俊敏な』という意味で、反復 (イテレーション) と呼ばれる短い開発期間単位を採用することで、リスクを最小化しようとする開発手法の一つです。
アジャイル型開発手法にはいろいろなバリエーションがありますが、例えば次のような進め方で開発をします。
1:顧客とエンジニアが少数精鋭の共同開発チームを作ります。(開発するプロダクトの規模によっては同時に複数のチームを立ち上げることもあります。)
2:共同開発チームは開発範囲全体をいくつもの短い範囲、おおむね2週間程度でできると思われる範囲、に区分します。そして業務プロセスの優先度を考慮し、どの範囲から着手するかを決定します。
3:共同開発チームは2週間という期間内に、その範囲の要求の決定、実装、テスト、修正、リリースを行います。
4:リリースできた機能や残っている業務プロセスの範囲を検討し、次に着手する優先すべき区分を決めます。
上記の2から4のサイクルを繰り返して開発を進め、全体の完成度を高めていきます。
・優先度の高い重要な機能から着手できる。
・実際に動く画面、機能を試し、ミスに早い段階で気づくことができる。
・開発の途中で業務プロセスが変更になった場合、未着手の部分は変更された内容で実装できる。