📘

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

2024/10/21に公開

はじめに

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

ウォーターフォールモデルの誕生と普及

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

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

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

にもかかわらず、1980年代後半までに、多くの開発者たちがこのアプローチを「標準的な開発手法」とみなすようになりました。この誤解が広まった理由には以下が挙げられます:

  1. 単純さと理解のしやすさ:段階的なプロセスは説明や理解が容易でした。
  2. 大規模プロジェクトの増加:複雑化するプロジェクトに対し、明確な構造が求められました。
  3. 契約と予算の都合:事前の計画と予算策定が重視される環境に適合しました。
  4. 教育と普及:多くの教科書や訓練プログラムがこのモデルを採用しました。
  5. 誤った成功の物語:初期の成功事例が過度に一般化されました。

結果として、ロイスの意図とは異なり、この段階的アプローチが後に「ウォーターフォールモデル」として知られるようになる概念です。

スパイラルモデルの登場とウォーターフォールの再定義

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

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

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

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

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

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

アジャイルとウォーターフォールの価値観

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

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

この宣言により、ウォーターフォールモデルの特徴が「価値観」という観点から再解釈されることになりました:

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

これらの特徴は、ある程度、ウォーターフォールモデルが当初から持っていた要素でしたが、アジャイル宣言以降、これらが「価値観」として明示的に定義され、それに対して、しばしば「教条主義的」と形容されるようになりました。
重要なのは、こうした「価値観」という観点からの再定義が、アジャイル宣言という新しいパラダイムの登場によって初めて行われたという点です。それまで、ウォーターフォールモデルの特徴は「方法論」や「プロセス」として認識されていましたが、アジャイル宣言を機に、それらが「価値観」という新たな文脈で語られるようになったのです。
現代の開発現場では、このような二項対立を超えて、アジャイルとウォーターフォールのハイブリッドアプローチも見られ、プロジェクトの性質や組織の文化に応じて柔軟に手法を選択する傾向があります。

まとめ

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

Discussion