
対象読者:アジャイル開発ってよく聞くけど、なんだ?な方。
読み終わった後:アジャイル開発とウォーターフォール開発の比較をしながらアジャイル開発について学べます。
こちらを参考にしながらウォーターフォール開発とアジャイル開発を比較します。
ウォーターフォール開発
滝が流れるように一方向に工程が進んでいき、「前工程に間違いはない」ことを前提とした開発モデル。
何も動くものがない段階で用件を洗い出すことを前提としている。
メリット
- 良くも悪くも不確実性を減らすモデル
- 求められたスケジュールに求められたソフトウェアをリリースできる
デメリット
- 本当に必要なものから離れたソフトウェアを作り込んでしまうリスクがある
- 後ろの工程で得られた気づきが前の工程へ反映させられない
アジャイル開発
ウォーターフォールとは反対に、反復的に開発が進んでいく。
短いスパンで少しずつ作ってはフィードバックしながら調整していく。
メリット
- フィードバックをすぐに得て調整・修正できる
- いつでもリリース可能な状態を保てる
アジャイル開発で大切にしていること
アジャイル開発のマインドセットを実現するための行動指針が以下の「アジャイル宣言の背後にある原則」です。何かうまくいかないことがあったらこの原則を読み返し、アジャイル開発で大切にしている考え方を見つめ直しましょう。
https://agilemanifesto.org/iso/ja/principles.html
二つの手法の比較
ウォーターフォールは不確実性を苦手としますが、ソフトウェア開発とは不確実性を含むものです。最初から何を求めているのかはっきりとわかっているユーザーは少ないと思います。ぼんやりとした中からユーザー自身も気づいていない本当に欲しているものをカタチにしていかなければなりません。
実際に開発をしていると、後から要望が出てきたり、最初と言っている事が変わってきたりすることがよくあります。これはユーザー自身も本当に必要なものがよくわかっていないためです。
その点で言うと、アジャイル開発は少しずつ作りながら都度確認ができるので、手戻りも少なく無駄な作業が最小限に抑えられる開発手法であります。
無駄なくスピード感を持って開発ができる、それがアジャイル開発です。