問題
システム開発ではアジャイル開発がもてはやされているが、おおもとになっている実際の製造業におけるトヨタ生産方式、リーン生産方式とは極端に異なっている点が存在している、結果品質が大きく欠落した製品が出来上がり、生産性も大きく上昇しない事態もちらほら見受けられる。
トヨタ生産方式の目的
トヨタ生産方式の目的は市場リーダーとして品質、価格、納期を最適化し、顧客価値の最大化、幸福をもたらすことにある。
アジャイル開発の目的
- 個人と対話
- 動くソフトウェア
- 顧客との協調
- 変化への対応
目的の差異による問題
この明確な差異はソフトウェア開発が必ずしも明確な顧客や製品開発を目指したものではなく、環境や顧客の問題解決を目指した長期的ものであったり、開発者自身の技術的欲求を満たすことも重要な目的であったり、組織自身が自身向けに開発するものであったりするからだと考える。※絡み合ったステークホルダーの目的を同時実現しようとしている。
このためアジャイル開発を行うことで出来上がった製品が、必ずしも顧客要求を満たしていなかったり、問題を解決していなかったりするようなことになる場合がある。
アジャイリストからすると、それは顧客と共同開発していないからだよ、とか、リリースを細かくしてフィードバックを細かくもらわないからだよ、という意見が出るかもしれない。
ただ、法的に見た一般的な商習慣として、製品の設計製造責任は開発のプロである開発者が担うというのが一般的な認識だ。なので今回はアジャイル開発で顧客の参画が低いからものがうまくできない、今回はアジャイル開発なので顧客の労働時間を一定時間もらう必要があるというのは通常のソフトウェア開発契約ではだいぶ筋が通らない。顧客はこちらが何を言おうが一般的な商習慣を前提とするだろうから、彼らの労働時間を大きく割いて製品開発に協力する、定期的にリリースされる低い品質のソフトウェアを受け入れるなんてことはしないはずだ。客から見るとはっきり言って、危なっかしい。
設計中、開発中の自動車で家族でドライブに出かけるだろうか?そんなことを顧客に要求することが価値だあるだろうか?
こういう点を克服しようとすると、アジャイル開発では定期的な未完成品のリリースでも完璧に稼働する「品質」を毎回製品に組み込む必要性が出てくる。こうした品質の組み込みには莫大なコストがかかる。アジャイルはテスト自働化だ、とは聞こえがいいが、実際のユーザー体験はテスト自働化では確認することが不可能で、結局人が触ってみないといけない。
結局、コストはいわゆるウォーターフォール開発以上にかかる場合が多い。