アジャイル型の開発が全ての面において従来手法より優れているとは到底考えられない。
ゴールを気軽に変更できる柔軟性は確かにあるようだが。
対して、ウォーターフォール型ではインプットに変更があれば、それまでの成果はいったん置いておいて全ての検討からやり直す。
ゴールの変更は工数・納期へのインパクトが大きいが、全ての検証を漏れなくやり直すので信頼性は維持できる。
ゴールを変更するということは、そもそも変更が必要なのか?変更することによるメリット、デメリットは?検証すべき項目に変更が必要か?変更による信頼性低下のリスクは無いのか?変更による直接は関係ない部分への影響が無いことが保証できるか?など、変更を決定するまでにクリアすべき項目は多岐にわたるはずだ。
これを無視して、深く考えもせずに、とりあえずやってみてから考えようなどとすると当然のことながら事故が発生する。
テスラの構造上の欠陥による事故が収束しないのを見ても明らか。
EEPROMだかFlashROMだかログを記録するのに書き込み限界を超えて素子に書き込めなくなったら走れないでは自動車として基本的機能の喪失だから重大な案件になる。
その後の対処も書き込み間隔を伸ばすとか、素子の容量を増やすとか抜本的な対策はされていない。
素子に書き込み限界があるなんて電子回路を扱うものなら素人でも知っている既知の事実だし、そうなった場合にも素子の挙動は明らかになっている。
つまり、ろくにデザインレビューもやらずに製品化されていると考えられる。
航空、車載、医療など信頼性が求められる分野にはアジャイル型開発は向かないだろう。
デジタル玩具やWebアプリなど陳腐化によって製品寿命が極端に短いアイテムには向いているのだろう。
バグっても後からパッチ当てればいいやんて。
で、パッチだらけで収拾がつかなくなったらメジャーバージョンアップと称して一から作り直せば。
それが最近のWindowsだろうな。
完成度60~70%程のベータ版相当でリリースして1~2年しかサポートしければ機能も信頼性も低くても、パッチあてながら凌いでいるうちに次のバージョンだから。
永久に出来の悪い製品をユーザーは使わされるわけだ。
地味でも中長期的な目標を明確にして開発された製品のほうが、完成度60%に到達するのは遅いが完成度80%に到達するのは早い。
ましてアジャイルでは完成度90%を超える日は来ないであろう。製品末期になっても80%にも届いていない印象だ。