##背景
昨今、アジャイル開発に注目が集まり、ウォーターフォール開発は悪、アジャイル開発は善というような風潮が見受けられます。果たして本当にそうなのでしょうか?今回はそのあたりを辛辣に深掘りしていきたいと思います。
##上手くいかない結論
アジャイルする範囲に要求要件定義を入れてしまう、なのに納期とコストはアジャイルではない。
これが全てです。
##何が起こっているか?
現場でこんな声が聞こえてきます。
「早くリリースして、お客様の声からフィードバックして開発しよう」
「必要な部分を都度調査してアジャイル開発しよう」
いやいや、それ要求要件が都度変わってますよね?
聞こえが良い言葉で、開発のスコープ・コスト・デリバリーが変わってしまっているのです。こんな恐ろしいことがあるでしょうか?そうであるならば、ゴールを達成しなくても良しとするか、納期とコストを再コミットする必要があります。でも許されません。受託開発(マーケットイン型開発)ではアジャイル的な開発は成り立たないのです。
##原因は何か
アジャイル開発宣言には、以下の2つの宣言があります。
・顧客満足を最優先し、 価値のあるソフトウェアを早く継続的に提供する
・要求の変更はたとえ開発の後期であっても歓迎する
果たしてこれは受託開発(マーケットイン型開発)で実現できるのでしょうか?
この部分のアジャイルと受託の相性の悪さが根本的な原因です。
##では、どうするか?
まずはアジャイル的な開発に対する認識を正しく持つべきです。その上で安易に誤用しないこと。そしてどうしてもアジャイル的に開発を進めたい場合は、納期とコストを都度変更する必要があるでしょう。アジャイル的な開発は銀の弾丸ではありません。