あなたが好きなアジャイル開発はウォーターフォールの中にある

よく知られていることだけれど、現代のソフトウェア開発の主流となったウォーターフォールの元と言われる論文が存在のですよ。 

MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS Dr. Winston W. Rovce

 2つ目の図(Figure 2. Implementation steps to develop a large computer program for delivery to a customer. )がウォーターフォールと呼ばれるきっかけとなった(らしい)。

f:id:fumisan:20180102102705p:plain

 確かに漏刻に似ている感じはあるよね。

https://museum.seiko.co.jp/knowledge/type/nature/images/index_ph07.jpg

引用 セイコーミュージアム 自然の力を利用した時計 水時計

 

ただ、冒頭の論文にはwaterという言葉が1回も出て来ない。

f:id:fumisan:20180102103820p:plain

つまり、論文を書いたDr.RoVceではない後でこの論文を読んだり、引用した人の中にウォーターフォールと名付けた人がいたということだ(ろう)。

そして次の図を見せると多くのエンジニアは「え」っと擬音が漏れる。

f:id:fumisan:20180102104056p:plain

テストしてコードが要件を実現していなかったらプログラム設計を修正すればいいよと取れるし、プログラム設計がソフトウェア要件を設計できていなかったらソフトウェア要求まで戻ってソフトウェア要求の分析からやり直そうよ、ということを論文の中で言っている。

あれ、これウォーターフォールの原型の論文ですよね。でも戻っていいんですよ。元祖の論文では。

追い打ちをかける(誰にだ)ように、ソフトウェア要求の分析を前に事前プログラム設計をしたらいいじゃん、とも言っています。

 

f:id:fumisan:20180102105444p:plain

これ、フィージビリティスタディですね。本来は、予備設計だから設計を間違えないようにする目的で行うことですけれど。そういう意味では、後段の作業プロセスを試験しているようなものです。

さらに2回作業を繰り返しなさいとおっしゃっている。

f:id:fumisan:20180102110122p:plain

すっかりイテレーションに見えてきました。あれ、ウォーターフォールの元と言われている論文です。

それにテストをテストの専門家を使ってやりなさい、と。

f:id:fumisan:20180102110852p:plain

うーん、今風のテストも専門家のポジションが少し向上してきましたが、それを予言するような書きっぷりです。

最後は顧客を巻き込め、と。

f:id:fumisan:20180102111051p:plain

早いうちから顧客を巻き込んで関与させなさい、と。あれ、アジャイル開発そのものじゃないですか。

さて、ウォーターフォールとは家系図的に繋がってしまったわけです。概念的にはそうだと言ってもいいでしょう。こうしたことをつらつらと思っているだけでも人って新しいことを考えるときには今目の前にあって知っていることだけをベースの知識としてそれを変えていくんだなと思うのですよ。

ウォーターフォールアジャイル開発も単なる道具でしかありません。それを使う人に全てはかかっているのです。そのシステム開発手法、誰がやりたいのですか。それとも、システム要求にフィットする手法として選んでいますか。

 

 

The Management and the Worker (Classic Reprint)

The Management and the Worker (Classic Reprint)