📘

なぜ、ソフトウェアはウォーターフォールモデルで開発してはいけないのか?

に公開

はじめに

ソフトウェア開発の歴史を振り返りますと、「ウォーターフォールモデル」は長らく正統な手法と見なされてきましたが、その理念は製造業の模倣に強く依存しており、ソフトウェアという対象の本質的可変性を十分に捉えられていなかったのだと考えます。計画を立て、設計し、実装し、テストするという一方向の工程は秩序と信頼の象徴のように扱われてきましたが、実際には発見と修正の連続である開発の実態と適合しませんでしたし、結果として成功例は限定的であることが多かったと理解します。
本稿では、なぜソフトウェアをウォーターフォールで開発してはいけないのかを、技術的構造歴史的経緯倫理的含意組織的限界の観点から整理します。さらに、AI時代における新しい開発観を展望し、最終的に「創造と再現の分離」を基調とする体制が妥当であることを丁寧に論じます。
ハードウェアとソフトウェアの差異、フレデリック・ブルックスの洞察、アジャイルの位置づけ、そして生産の幻想の終焉という大枠を通して、なぜウォーターフォールが制度として嘘を誘発しやすいのかも明確にいたします。

ソフトウェア産業における「製造業の誤解」

ウォーターフォールが広まった最大の理由は、ソフトウェア業界がハードウェアの生産工程を理想視し、開発そのものを生産と同一視してしまった歴史的誤解にあります。1960〜70年代の急拡大期、経営層は工場の成功体験を移植し、工程管理と文書管理でソフトウェアも制御できると考えましたが、これは開発と生産を厳密に分業するハードウェアの実態を取り違えた見方でした。実際のハードウェアでは、開発フェーズは少数の優秀な設計者が試行錯誤を繰り返すアジャイル的営みであり、生産フェーズのみがウォーターフォール的に有効に機能します。
ところがソフトウェアは「生産」が存在せず、すべてがデベロップメントで動き続ける対象であるにもかかわらず、業界は生産側の管理儀式ばかりを輸入しました。品質を「作る」方法論ではなく、品質を「保証しているように見せる手続き」が重視され、見せかけの工業化が制度化されたのだと理解します。
この経緯により、ソフトウェアの本質である連続的な発見仕様の変容が制度上抑圧されました。結果として、進捗管理や完了定義が「動くソフトウェアの価値」ではなく、書類や工程の形式的完結へとすり替わり、現場の学習と改善が阻害される構造が生まれたと考えます。
要するに、ソフトウェア産業は他業界の断片的模倣を行ったにすぎず、開発と生産の区別という基礎を踏まえないまま、生産の幻想を制度化してしまったのだと結論づけます。

コーディングは「生産」ではなく「開発」である

ウォーターフォールの最大の誤謬は、コーディングを再現可能な生産と見なした点にあります。実際のコーディングは、仕様の機械的な翻訳ではなく、抽象を具体へと構造化する知的創造のプロセスそのものであり、設計と表裏一体に進む設計の最終段階だと位置づけます。同じ仕様から出発しても、命名や責任の分離、抽象化の仕方、可読性や拡張性は開発者ごとに大きく異なり、その差は職人芸ではなく概念設計の質の差に起因します。
この本質を無視して人海戦術で分業すると、概念的一貫性が失われ、品質と速度が同時に悪化します。フレデリック・ブルックスが『人月の神話』で示した「人を増やすと遅くなる」現象は、コーディングを生産と誤認した帰結として理解できます。さらに、実装しながら初めて仕様の問題が露呈するという発見的性質を抑え込むことで、後戻りコストが見かけ上の工程進捗に隠れ、技術的負債が堆積することになります。
一方で、コーディングには一定の意味でプロダクション的側面もあります。すなわち、設計意図を具現化し、テスト・ドキュメント・反復的修正を行う反復作業は、部分的には再現性をもって扱える局面があると認めます。しかし、それは「設計が明瞭である範囲」に限られ、コア設計の不確実性を埋める活動まで生産工程に落とし込むことはできないと考えます。
結局、コーディングは創造と再現の二重性をもつため、すべてを生産ライン化しようとする発想が破綻し、またすべてを属人的な創造に寄せすぎる発想も非効率になるという、バランス設計が求められる領域だと位置づけます。

ウォーターフォールが嘘を生む構造

ウォーターフォールの組織では、計画と契約が最上位に置かれます。計画が未来をほぼ完全に予測できるという前提のもと、スケジュール遵守が絶対視される結果、現実がずれたときに真実へ合わせて計画を更新することが「失敗の認定」として扱われやすくなります。そこで現場は、制度と整合させるために数字や報告を調整し、で秩序を保つ圧力にさらされます。
この嘘は、個人の倫理問題ではなく、制度設計が誘発する行動だと捉えます。進捗率の粉飾、欠陥の先送り、契約外の作業の黙認といった行為は、制度の存続条件として合理化されやすく、やがて組織文化として常態化します。ウォーターフォールの信奉者は「嘘を美徳としていない」と反論しますが、現実に生じているのは「嘘がなければ制度が維持できない」という倒錯です。
対照的に、アジャイルは誠実さを倫理ではなく技術的必須条件として位置づけます。真実を早く正確に共有しなければ再計画も改善も成立しませんので、情報の正直さが再構築可能性を担保します。ここでの誠実は「善いこと」以上に「必要なこと」であり、制度の上位に置かれるべき実務的要件だと評価します。
要するに、ウォーターフォールは「計画と契約」を道徳の上位に置くことで、誠実を制度的に削り取り、結果として学習不能性を生む枠組みになりやすいのだと結論づけます。

大規模開発は「人数の問題」ではなく「構造の問題」

大規模化の難しさは単に人数によらず、概念的一貫性の崩壊、調整コストの指数関数的増加、そして知的負荷の分散不可能性に起因すると理解します。ハードウェアでは、超高額プロダクトであっても、コア設計はごく少数の優秀な設計者が担い、残余は検証・量産支援という再現的プロセスを担います。この構図は、設計が相互依存の塊であり、中心思想が全体を貫かないと破綻するという構造的理由から導かれます。
ソフトウェアでは本来、設計と実装が密接不可分であるにもかかわらず、コーディング工程を生産と見なして大量投入することで一貫性の喪失を招きました。ブルックスの「人を増やすと遅くなる」は、人数ではなく設計の分断こそが本質だと読み替えます。さらに、モジュール化やAPI化、CI/CDやクラウドの定着、そしてAI支援の進展により、今日では「大規模人数」の技術的必然性は低下し、むしろリスクとして扱うべき段階に入ったと認識します。
重要なのは、「大規模=人数」ではなく「大規模=金額」と捉え、価値を分割し、小さな独立チームの成果を束ねるスケールアウトの設計に転換することです。これは、少人数の設計の島を多数接続する構図であり、アジャイルの成立条件に合致します。
結局のところ、大規模開発の本質課題は人数ではなく、構造分割依存最小化一貫性の担保という設計課題であり、ウォーターフォールはここに適さない枠組みだと結論づけます。

アジャイルはウォーターフォールの対立概念ではない

アジャイルはウォーターフォールの単なる否定ではなく、ソフトウェア開発を発見的営みとして再定義する運動だと位置づけます。短い反復で動くソフトウェアを提示し、フィードバックに基づいて仕様を更新し、変化を本質として扱います。これは、ハードウェア開発における試作と実験のサイクルと同型であり、ソフトウェアを本来のデベロップメントに戻す考え方です。
ただし、アジャイルにも副作用があると正直に認めます。すなわち、チーム全員に一定以上の自律性認知的柔軟性メタ認知が求められるため、低ポテンシャルなメンバーが多すぎると自己組織化が機能不全に陥ります。経験則として、低スキル層が全体の約二割を超えると学習ループが崩れやすいという臨界を意識する必要があります。
したがって、アジャイルは「誰でもできる魔法」ではなく、「適者集団の学習構造」として設計・運用すべき手法だと考えます。PMIの実践ガイドのように「全員がアジャイルに変われる」という一般化は理想主義に寄りやすく、現実の能力分布を無視しない人員構成設計が不可欠です。
この意味で、アジャイルの要諦はウォーターフォールへの対立ではなく、現実の不確実性に対する適応の体系だと総括します。

「大規模アジャイル」という自己矛盾

SAFeに代表される大規模アジャイルは、しばしば現場の自律性を犠牲にし、上層の調整会議と役職体系を拡張することで、結果的に形式的ウォーターフォールに回帰しがちだと評価します。人数の増加は階層の増加を招き、情報は非同期化し、現場の反射速度が低下します。PI Planningなどの儀式は、価値創出より調整のための最適化に傾き、会議の多いウォーターフォールという逆説的状態を生みます。
ジェフ・サザーランドやケント・ベックが強調したのは、小規模チームの成果を束ねることであり、百人で一つのアジャイルを動かす思想ではありません。大規模化の鍵は「スケール化」ではなく、分割化と疎結合、そして境界明確化による生態系設計です。
つまり、「自由を制度化」する方向に舵を切ると、アジャイルの精神が官僚制に飲み込まれます。スケールの課題は制度で押し切るのではなく、アーキテクチャ組織を合わせ込む社会技術で解くべきだと考えます。
ゆえに、「大規模アジャイル」を掲げる前に、価値の分割戦略境界単純化責任的凝集の原則に基づく構造設計を先行させることが肝要だと結論づけます。

ソフトウェア業界は「生産のない世界で生産を信じた」

ソフトウェアには厳密な意味でのプロダクションが存在しません。ビルドやデプロイは自動化されても、それは開発の延長であり、完成品が固定される量産工程には相当しません。ソフトウェアは運用下でも変更可能で、常に学習と調整が求められる対象です。
にもかかわらず、業界は「生産があるはずだ」という信仰を抱き、管理上の安心感を得るために生産風の儀式を重ねてきました。その結果、動くソフトウェアの価値が、書類や工程完了という形式に置き換えられ、学習の速度が落ちました。
この構図を率直に見つめ直しますと、ウォーターフォールとは「生産のない世界における生産主義」だと総括できます。つまり、製造業の成功ではなく、製造業への誤解の象徴として広がったのだと捉えます。
ここで必要なのは、「生産」を模倣するのではなく、開発を正面から開発として扱う姿勢です。これにより、真の価値検証適応が制度の中心に戻り、現実と対話するプロセスが回復すると考えます。

AIがもたらす構造転換:コーディングの再定義

現代のLLMを中心とする生成AIは、コーディングのプロダクション的側面を引き受けられる段階に到達しつつあると評価します。設計意図を自然言語UMLで明瞭に表現できれば、AIはコード生成、テスト作成、リファクタリング、ドキュメント化といった反復作業を高い一貫性で担えます。
これにより、人間はアーキテクチャ設計概念的一貫性の維持、責務分割の判断といった知的中枢に集中でき、ソフトウェアはハードウェア設計に近い少人数精鋭の体制へ移行しやすくなります。AIが「再現」を担い、人間が「創造」を担う新しい分業が可能になることで、ウォーターフォールが依拠していた「人間による大量生産」の前提は構造的に無効化されます。

ここで重要なのは、前節で述べたように、アジャイルにも副作用があるという事実です。すなわち、チーム全員に高い自律性抽象思考能力が求められるため、現実の人材分布と整合しにくいという構造的課題を内包していました。アジャイルは「全員が考える現場」を前提とするため、低ポテンシャル層が一定比率を超えると自己組織化の破綻を招くリスクがあったのです。これこそがアジャイルがしばしば理想倒れに終わる原因でした。

しかし、AIの登場によってこの副作用は実質的に緩和されつつあります。LLMは、知識や経験の不足を補い、瞬時の参照知能としてチーム内に均衡をもたらします。従来、アジャイルでは高スキル者と低スキル者の間に大きな知的格差が存在しましたが、AIが知的補助輪として機能することで、低ポテンシャル層も設計意図を理解しやすくなり、チーム全体の思考密度が一定水準で保たれるようになってきました。
AIは知的格差を埋めることにより、アジャイルが本来目指した自己組織化の理想をより広い層に適用可能にしました。結果として、アジャイルの「人を選ぶ」特性は徐々に中和され、ウォーターフォール的な中央統制に頼らない形で秩序が維持できるようになったのです。

さらに、モジュール境界やAPI契約、自動テストの充実がAI生成と相まって、変更コストの分布を前向きに再編します。すなわち、変更の速さと安全性が両立し、再計画可能性が日常的に確保される運用が現実味を帯びます。
この転換は、ウォーターフォールの時代が求めた「生産の安心感」を、AIによる機械的一貫性で置き換えるものであり、開発を本来の発見と適応の場へと取り戻す基盤になると見通します。

ブルックスの思想的継承とAI時代の設計者たち

フレデリック・ブルックスは2022年に逝去し、生成AIが世界的に普及する前年にこの世を去りました。彼の死は、ソフトウェア工学史の一つの区切りであり、同時にその後のAI時代が彼の思想を新たな文脈で照らし返す転換点にもなりました。ブルックスは生涯にわたり、「人間中心の協調構造」と「概念的一貫性(Conceptual Integrity)」の重要性を説き、管理万能論への懐疑を貫き通しました。彼の代表作『No Silver Bullet』(1986年)は、単一の技術革新が開発を劇的に変えるという幻想を否定し、認知的複雑性の克服こそが真の課題だと訴えました。
生成AI、特にLLMは、この文脈において限定的な光明をもたらしています。AIは確かにコーディングやテストの再現的側面を高速化し、人間が抱えていた冗長作業の負担を大幅に軽減しました。しかしAIは「銀の弾丸」ではなく、ブルックスが言う「本質的な難しさ(Essential Complexity)」を消し去ることはできません。むしろAIは、彼が示した難題に対して「部分的な補助線」を引く存在であり、開発者の思考や設計判断を代替するものではなく、協働的知性として位置づけられるべきだと考えます。
もしブルックスが2023年以降の世界を見ていたなら、AIを「万能の解答」ではなく、「協調の媒介者」として評価したのではないかと推測します。AIは一貫したコードスタイル、共通語彙、アーキテクチャ設計支援などを通じて、Conceptual Integrityを保つ環境を強化します。つまりAIは、ブルックスが生涯追い求めた「秩序あるソフトウェア設計」を支援する補助的道具として機能しているのです。
AI時代の設計者に求められるのは、AIに生産を委ねることではなく、AIを通じて一貫性・誠実性・反復学習を深化させることです。AIが生むのは効率ではなく、むしろ構造的思考の明確化であり、人間が考える領域を再び中心に据える契機となります。ウォーターフォールが人間を機械の一部として扱った時代に対し、AI時代は人間を再び思考する主体へと還元する時代です。
このように見たとき、ブルックスの思想はAIによって乗り越えられたのではなく、むしろ延命と再解釈を得たのだと結論づけます。彼の残した理念は、AIという新しい協調者を得たことで現代的に再生し、ソフトウェア工学の原点である「人間の理解と秩序ある設計」をより高次に実現する方向へと歩み始めたのです。

まとめ

ソフトウェアをウォーターフォールで開発してはいけない理由は、単なる流行や効率の問題ではなく、対象の本質に根ざすものだと結論づけます。すなわち、ソフトウェアは生産ではなく創造の対象であり、コーディングは設計の延長としての創発過程を含むため、直列工程と人海戦術で管理する枠組みは構造的に適合しません。ウォーターフォールは生産の幻想を制度化し、を誘発し、学習不能性を組織にもたらしやすいのだと整理します。
一方、アジャイルは発見と適応を中心に据え、誠実を技術的必須条件として扱い、小さな単位の高速学習で現実と対話します。ただし、人員構成の要件や二割近辺の臨界など、適者集団の設計が不可欠である点は副作用として正直に認めます。
そして、LLMをはじめとするAIは、コーディングのプロダクション的側面を引き受け、人間を少人数の設計中枢に集中させる基盤を整えつつあります。この分業によって、概念的一貫性再現的一貫性が両立し、ウォーターフォールが抱えた矛盾は歴史的に解消へ向かうと展望します。
要するに、これからのソフトウェア開発は、創造と再現の分離分割と自律正直さと再計画可能性を核とする体制へと確実に移行します。ウォーターフォールは、人間に機械の役を演じさせた時代の産物でしたが、AI時代には、人間が思考の役に専念し、制度は誠実な適応を支えるべく再設計されるべきだと結論いたします。

Discussion