📘

ウォーターフォール解説① ~その概念の歴史的変遷~

2024/10/21に公開

はじめに

「ウォーターフォール」という語彙は誕生した瞬間から今に至るまで同じものを指していたわけではありません。本レポートでは、そんな「ウォーターフォール」がその誕生から現在にかけてどう概念的に変化していったかの歴史を説明します。

「段階的アプローチ」の誕生と普及

1970年、ウィンストン・ロイスは論文「Managing the Development of Large Software Systems」で、ソフトウェア開発の「段階的アプローチ」を紹介しました。

しかし、重要な点は以下の通りです:

  • ロイスは「段階的アプローチ」に特定の名前を付けていませんでした。
  • ロイスはこの方法をソフトウェア開発に最適だと主張したわけではありません。
  • ロイスは「段階的アプローチ」の問題点を指摘し、より反復的な方法を推奨していました。

そもそも「段階的アプローチ」は、フォードシステムやマクドナルドシステムが想定するような「あらかじめ全部すべき作業を知っている人が計画を立てて、それを実行者が計画をなぞるように実行することが可能な定常業務の進め方」をソフトウェア開発プロジェクト業務に適用したらこうなる程度のつもりで挙げただけのものです。
にもかかわらず、1980年代後半までに、多くの開発者たちがこの「段階的アプローチ」を「標準的なソフトウェア開発手法」とみなすようになりました。この誤解が広まった理由には以下が挙げられます:

  1. 単純さと理解のしやすさ:段階的なプロセスは知識が少ない人でも説明や理解が容易
  2. 契約と予算の都合:事前の計画と予算策定が出来ないとプロジェクトが開始不能
  3. 教育と普及:多くの教科書や訓練プログラムで繰り返し言及
  4. 誤った成功の物語:初期の成功事例が過度に一般化

結果として、ロイスの意図とは異なり、この「段階的アプローチ」が普及しました。

「ウォーターフォール」という名称の誕生

1970年代後半から1980年代にかけて、「段階的アプローチ」に限界が顕在化し始めました。
1975年、フレデリック・ブルックスは著書「人月の神話」で、以下のような洞察を示しました:

  • 「巨大なシステムの設計において、一度にすべてを正しく行うことは不可能である」
  • 「プロトタイピングと段階的な成長が必要である」
  • 「ユーザーとの継続的な対話が不可欠である」

そんな中、1986年にバリー・ボームがスパイラルモデルを提唱しました。このモデルの特徴は以下のとおりです:

  1. 反復的な開発サイクル
  2. 各サイクルでのリスク分析
  3. プロトタイピングの重視
  4. ユーザーフィードバックの継続的な統合

このスパイラルモデルの登場により、モデル同士を比較する必要が生じました。そこで、それまで明確な名称を持たなかった「段階的アプローチ」が「ウォーターフォールモデル」と命名されました。「ウォーターフォール」という用語は、各開発段階が滝のように一方向に流れ落ちる様子を比喩的に表現したものですが、名前が付いたのは実にこの時だったのです。

「ウォーターフォール」という名称は、新しいモデル(スパイラル)との対比を通じて名前が遡及的に与えられた「レトロニム」(例:メインフレーム、リアルサイト書店、ガラケー)の一種と言えます。

ウォーターフォールへの「価値観」の追加

2001年のアジャイル宣言は、ソフトウェア開発の価値観を明示的に定義する転換点となりました。アジャイル宣言は以下の価値観を重視しました:

  • プロセスやツールより、個人と対話を
  • 包括的な文書より、動くソフトウェアを
  • 契約交渉よりも、顧客との協調を
  • 計画に従うことよりも、変化への対応を

この宣言により、ウォーターフォールモデルの特徴が以下のような「価値観」を持つ存在として再解釈されることになりました:

  • 個人と対話よりも、プロセスやツールを
  • 動くソフトウェアよりも、包括的な文書を
  • 顧客との協調よりも、契約交渉を
  • 変化への対応よりも、計画に従うことを

これらの特徴は、ある程度、ウォーターフォールモデルが当初から持っていた要素でしたが、アジャイル宣言以降、これらが「価値観」として明示的に定義され、それに対して、しばしば「教条主義的」と形容されるようになりました。
重要なのは、こうした「価値観」という観点からの再定義が、アジャイル宣言という新しいパラダイムの登場によって初めて行われたという点です。それまで、ウォーターフォールモデルの特徴は「方法論」や「プロセス」として認識されていましたが、アジャイル宣言を機に、それらが「価値観」という新たな文脈で語られるようになったのです。

まとめ

このように、ウォーターフォールモデルの概念は、その誕生から現在に至るまで、ソフトウェア開発の方法論や価値観の変遷とともに進化し、再解釈されてきました。その過程で、当初の特徴が新たな開発アプローチの登場によって対比的に定義されるなど、興味深い歴史的変遷を辿ってきたのです。

Discussion