プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

ウォーターフォール開発の歴史

ウォーターフォール以前

1960年代まではシステム開発は各職人がそれぞれの勘と経験を頼りに行っていた。 しかし1970年代頃になると確立されたシステム開発手法の重要性が強く叫ばれるようになる。

初期のウォーターフォール

ウォーターフォールの原型は1970年頃にロイスという人物によって提唱された。 ロイスの論文では「ウォーターフォール」という言葉は使われていなかった。 またロイスは1度のIterationではうまくいかないことを指摘しており、最低でも2回のIterationを実施することを推奨していた。

「反復が不可欠」という考え方がアジャイル宣言の30年前にあったのだ。 それもアジャイルの正反対にいるはずの「ウォーターフォール」の原型で提唱されていたのだからなお興味深い。

ウォーターフォールの発展

ロイスの論文は多くの人々に受け入れられた。 Bell、Thayer、Boehamといった人物の論文や著書で取り上げられ、それらを通して「ウォーターフォール」という名前が固定化される。 またアメリ国防省の調達仕様の一部となったり、IEEEで文書化されるなど高い評価を受けた。

ウォーターフォールの変化

IEEEという権威ある団体が文書化したことがウォーターフォールの国際的地位を絶対的なものにしたといえる。 そしてIEEEが文書化した時点でロイスが推奨した「複数回のIterationを実施する」という考え方は既に失われていた。

失われるに至った詳しい経緯は不明だが、アメリ国防省の調達仕様が改変される中で何らかの事情で削除され、そのままIEEEの文書に反映されたと考えられる。

いずれにせよ、IEEEの文書化が「ウォーターフォール=反復なし」という考え方を一般的なものにしたと思われる。

ウォーターフォールへの批判と脱却

反復のないウォーターフォールは数々のソフトウェアプロジェクトの失敗の原因として批判されるようになる。

1990年頃、アメリ国防省のソフトウェア調達失敗案件に関する民間調査が行われ、ここでもウォーターフォールはその主要因として槍玉に挙げられた。

その反動でアジャイルという考え方が指示されるようになる。現在、多くの組織がアジャイルに沿った開発をしていることを謳っている。

ウォーターフォールからの脱却の難しさ

現在、アメリ国防省の調達はアジャイルが必須となっている。しかし表面上、アジャイルと謳っているだけで実態はウォーターフォールという「偽アジャイル」が相当数あるとの噂だ。

開発手法というのはただの業務フローではない。 ユーザとベンダの商習慣という部分も大きい。 一度、染み付いた商慣習がなかかなか消せないのは日米共通の課題のようだ。