miyaniyanのブログ

ここでは日常生活の雑感を。 

ウォーターフォール開発じゃだめなのか(1)

アジャイル手法に取り組んでいかないといけない、とか軽量プロセスが必要とか、いろいろいう人がいるわけさ。

じゃあ、ウォーターフォールはだめなのか?といえば、それはそれで必要だという。
じゃあ、どういうところに何を適用するのか?といえば、大規模はウォーターフォール、小規模はアジャイルだと。
[[]]
じゃあ、中規模はどうするんだ? といえば、大規模と基本同じだと。

・・・・

とにかく、アジャイルを推進しよう、(みんなやっているし・・・)
どう適用できるかはあとで考えよう。
でも、アジャイルでどうやって品質保証すればいいかわからないので使えないよな。
今の品質保証の考え方にはあわないから正式採用は見送りだ。

・・・・

ウォーターフォール開発とはなにか?

後戻りできないプロセス? んー、工程は決まっているよね。文書化はすることになっているよね。レビューを重視するよね。

原文読んでないのでわからないけど、ウォータフォールの元になったといわれる論文ウィンストン・W・ロイスの『Managing the Development of Large Software Systems』では、大規模システム開発についてのマネジメントについて記述しているようでだ。

大規模システムでは、文書化、レビューを重視することが重要としているらしいけど、実はこの論文では、ウォーターフォールとは呼んでいないことは有名。しかも、下流工程を予備的に行って上流工程へ戻る「フィードバックループ」が提唱されていたので、今のウォーターフォールの原型といわれるのもちょっと変な感じかも

*息子のウォーカーロイスが書いた本より。
 ソフトウエアプロジェクト管理―21世紀に向けた統一アプローチ

・・・

米国国防総省で採用されたとき、フィードバックループが抜け落ちたとされ、このときの規定で、定義された工程を遵守すること、つまり、ウォーターフォールが標準のようになった・・・
(情報源は忘れた。でもたしかそう)でも、これで国防総省は、ひどい目にあったらしい。
だから反復型を定義したとか。

ということは、今の開発の典型的なやり方(特にSIerとか)、つまり、我々がウォーターフォールと呼んでいる開発手法(?)は、だめなものを使っているわけか。

そして、日々だめなものを基準にして、データを取って定量データによる品質保証しましょうとか、おまけに工程で区切った契約しましょうとかいっているわけか。

それっておかしくない?
そもそもおかしなやり方でスタートしているくせに、そこには触れずにそれをなんとか被害を小さくするためにプロジェクトをいじめたり、 プロジェクトレビューしたり、契約で防御するように考えているだけじゃない?


反復型とはいわなくても、ウィンストンロイスの提唱する、下流工程を予備的に行なって上流工程に戻るというやり方が大規模開発に必要なら、それを基準に、品質保証の仕組みや契約のあり方を考えればいいと思うんだけどな。

やり方をかえる、つまりウォーターフォールをやめるところから開始すればすべてはハッピイになるような気もする。

・・・・・つづく