アジャイルは要件を作らない

Agile Conference tokyo 2009 … 技術評論社に行ってきました。
Guo氏はところどころで「アジャイルに対する誤解」について言及しておられましたが、その中で触れられなかった、かつ最も大きな誤解は


「要件決まらないなら作りながら考えよう」

だと思う。


外部のSIerとして顧客にアジャイル開発を提示するのであれば、欲しい物が分からないような場合や、システムに必要な要件が「決められない」場合にアジャイルを適用してはならない
http://d.hatena.ne.jp/xmalloc/20091210/1260450691で上手いこと書いてるけど、変化を許容するってだけなら日本のSIerはばっちりアジャイルできてることになる。
結果がどうなるかは書くまでもないだろう。

変化とは?

アジャイルにおける「変化」は、主にシステムをリリースすることによる「変化」を指す。
アジャイルでは反復開発を前提としているため、顧客側では複数回システム導入が行われることになる。
システムはそもそもビジネスの制約(時間や人的リソースの制約)に影響を与えるために導入されるのだから、部分的とはいえシステムの利用が始まれば、それは要件の前提としてのビジネス環境が変わることになる。
だからこそ「要件は変化」し、変化への対応が重要になる。


このことを、目的や制約が認識できていないために起る要求の変化と混同してはならない


システムリリースによる変化は許容できて、前提条件の変化はなぜ許容できないのか?
それは、前者が動的予測の難しさに起因するのに対し、後者が「能力の欠如」が原因である場合が多いからだ。

間違った期待と間違った結果

顧客の(またはコンサルの)要件を定義する(させる)能力が低いからと言って、アジャイル開発で解決できるわけではない。
システムは、作れない奴はどうやっても作れないんだ。
代わりにやってあげられることには限りがある。


アジャイル開発の失敗の原因の多くはそこの勘違いにあるんじゃないだろうか?