2026.06.11 約 25 分 日野 政人 (Chapter Tech 代表)

AIで開発プロジェクトが10倍速にならない今AI導入によるプロジェクトの最適化を考えるキャリブレーション開発という仮説

生成AIの台頭は、コードの記述だけでなく、テスト生成や設計・ドキュメント作成に至るまで、SDLC(ソフトウェア開発ライフサイクル)全体のコスト構造に劇的な変化をもたらしつつあります。実装や修正のコストが大きく下がる現代、最適な開発プロセスはどうあるべきか。本稿では、従来の「手戻り防止型」のウォーターフォールや「無限反復型」のアジャイルに代わる、新たな2パス型開発プロセス「キャリブレーションモデル(CDM)」という仮説を提示。要件認識の誤差を実物で測定・補正し、確実な品質へ収束させるためのマネジメント手法の可能性について議論を深めます。

この記事のポイント

  • 1. AI時代のボトルネックは実装工数ではなく「要求の言語化と検証条件の定義」へとシフトし、開発プロセスも「手戻りを防ぐ」から「手戻り前提のキャリブレーション(誤差補正)」へと移行していく可能性が考えられます。
  • 2. 「既知の要件を100%作りきり未知の誤差を検出する探索フェーズ」と、「発見された不足を反映し本番品質へ昇格させる収束フェーズ」の2パスにプロセスを絞るアプローチの可能性を模索します。
  • 3. TDD(テスト駆動開発)をAIに正解条件を与えるための「基準器」として位置づけ、設計書を「入力(指示書)」ではなく「出力(コードから自動生成される観測結果)」へと転換させる設計思想の可能性について考察します。

はじめに

「AI駆動開発に、テスト駆動開発(TDD)の思想を組み込んだら、開発プロセスはどう変わるのか?」

すべては、このシンプルな一つの問いから始まった。

本稿では、この問いを出発点として議論を重ねるなかで見えてきた、AI時代における新たな開発プロセスの仮説「キャリブレーション開発モデル」の可能性と、その設計思想の変遷について順を追って整理し、これから私たちがどのような開発プロセスを模索していくことになるのか、その展望を考えてみたい。

1. 出発点:AI駆動開発 × TDD

最初の直感はこうだった。

AIに実装を任せると、速くコードは出る。しかし、

  • 仕様を満たしているっぽい
  • 局所的には動く
  • でも意図とズレている
  • 後から壊れる

という現象が極めて発生しやすい。これはAIが前後の文脈を「なんとなく」解釈し、辻褄の合うそれっぽいコードを瞬間的に出力してしまうからだ。

そのため、TDD(テスト駆動開発)のプロセスを挟むというアプローチが有効ではないかと考えた。

  1. 先に期待仕様をテストとして固定する
  2. AIに実装させる
  3. テストで合否判定する
  4. 落ちた理由をAIに修正させる
  5. リファクタ時もテストで守る

という流れにすることで、AIの出力を「人間の主観的な感覚」ではなく「機械的かつ客観的に検証可能な仕様」に直接接続できるのではないか、という可能性である。

つまり、AI駆動開発にTDDを入れるというより、「AIを使うからこそ、制御不能なハルシネーションを防ぐためのTDD的なガードレールが必要になるのではないか」という仮説だ。実装ではなく仕様を中心に開発を進めるという設計思想は、AIの特性と非常に相性が良いのではないかと考えている。

2. ウォーターフォールの順序性が崩れる

ここで一つ気づいた。

AI時代になると、ウォーターフォールの順序性も変わるのではないか?

従来のウォーターフォールは「要件定義 基本設計 詳細設計 実装 テスト」という、段階的な滝のようなプロセスだった。なぜこの順序が必要だったかというかというと、人間が手作業でコードを書くコストが極めて高かったからである。設計が曖昧なまま実装に入ると、後から手戻りが発生したときの金銭的・時間的ダメージが大きすぎる。だからこそ、前工程で仕様と設計をガチガチに固める必要があった。

しかし、AI時代は実装コストがほぼゼロに近づく。するとプロジェクトのボトルネックは実装ではなく、

  • 何を作るのか
  • どうなれば正しいのか
  • 何を検証するのか

という「要求定義」と「検証条件」へとシフトしていくのではないか。その結果、開発の流れも自然と、

要件定義

受け入れテスト定義

AI実装

検証

という形を志向していく可能性が考えられる。人間がWordで分厚い詳細設計書を書いてから実装するのではなく、期待するテストケース(=振る舞いの定義)を記述することで、設計や実装の大部分をAIが自律的に生成するようなプロセスの可能性を模索することになるだろう。

そうなると、設計書は実装を指示するための「入力」ではなく、動作するコードから事後的に生成される「出力」へとその役割を変えていく可能性が考えられる。

3. 「2周目ありき」という発想

もし実装コストが極端に下がるなら、「最初から正しいアーキテクチャや完璧な設計を当てる」という考え方自体を見直す余地が生まれるかもしれない。

従来は、

要件

設計

実装(高コスト)

であったため、実装前の設計フェーズで考え抜くことに大きな価値があった。しかしAI時代は、

要件 テスト 実装(低コスト) 問題発見 再実装

というサイクルのコストが圧倒的に小さくなる。だとしたら、机上の空論で悩み続けるより、「まず作る 実際に動かす 動いた実物を見て設計を見直す」というアプローチの方が合理的なケースが激増するのではないか。

ここで議論は「失敗コスト」の話に進む。もちろん、金融、医療、航空宇宙といった、1周目の失敗コストが極端に高く許されない領域はある。だが、多くのエンタープライズ開発において、

  • そもそも多くのシステム開発において、プロジェクトの「失敗」の要因として、技術的な障害以上に「要件の不一致や設計の前提違い」が大きな割合を占めるのではないかという仮説がある。
  • この仮説に基づけば、障害自体は設計フェーズの事前防衛だけでなく、自動テストによる継続的な検証によって防ぎうるという考え方ができる。
  • AI時代においては、詳細設計書に基づく開発よりも、「要件 受入テスト AI実装」というサイクルを高速で回転させるアプローチが強みとなる可能性を模索していくことになるだろう。

つまり、設計という事前防衛策で品質を担保するのではなく、テストという検証手段で品質を担保する方向に、開発の重心がシフトしていく可能性を模索することになる。

4. 2周目は何のためにあるのか

ここで一度、議論にズレが生じた。

「2周目」を「リリース後のユーザー学習」と捉える解釈(アジャイルやリーンのフィードバックループ)があった。しかし、ここで本当に考えていたのはもっと手前の話、すなわち「本番デプロイ前のデリバリープロセス」の話だ。

従来のプロセスでは「後戻りコストが高い」ことが前提となっていたが、AIによってそのコストが圧縮されるなら、「順序性よりも、段階的な検証と反復の重要性が高まるのではないか」という問いが生まれる。

しかしAI時代においては、要件定義から実装、確認までのサイクルが極めて短期間で回るようになる可能性がある。そうであれば、最初から「1周目は真の要求を理解するための探索、2周目で本番用への最適化」を前提にしたプロセスを模索する余地があるのではないか。

一発勝負で100点を目指すのではなく、まずは基準となる実物を作り、動くものを見て解像度を高めながら本番品質へと収束させていく、そうした段階的な進め方の有用性を探っていくことになるだろう。

本稿で想定しているのは、本番リリース前に、同一プロジェクトのデリバリープロセス内で複数周(2周)回すというアプローチの可能性である。

5. しかし、無限反復は管理できない

ここで重要な制約が入る。

「何周も回すのは、プロジェクト管理や予算管理の観点から破綻する。だからこそ『2周』という強い縛りが必要だ」

無制限の反復には、プロジェクト管理を困難にする側面があるのではないか。AIによって実装コストが下がることで、かえって無限のやり直しを要求しやすくなるという懸念だ。

「もう1回だけ作り直そう」

「もう少しここを改善しよう」

「もう1パターン別の画面案を作ろう」

これが繰り返されると、開発コストが下がる一方で意思決定コストが跳ね上がり、プロジェクトの収束が見えなくなるリスクが考えられる。意思決定者の時間とエネルギーは無限ではない。選択肢が増えすぎることで、かえって「どれを選べばいいか分からない」という意思決定麻痺が生じてしまう。

AIの劇的な実装コスト低下は、逆説的に人間の「意思決定コスト」を肥大化させ、プロジェクトの着地点をあいまいにしかねない。

したがって、反復回数を無限に許容するのではなく、プロセスを「探索(Calibration)」と「収束(Convergence)」の2フェーズに厳格に固定する境界線が必要となる。これにより、手戻りのコストを抑えつつ、意思決定コストの肥大化を防ぎ、有限の工期で確実にプロジェクトを着地させることが可能になる。

6. 類似の提案との比較(AI-DLC, SDD, Spiral Model)

「開発サイクルを反復する」「AI主導で開発する」というアイデア自体は、もちろん私たちが初めて提唱するものではない。近年、国内外でいくつかの類似したアプローチが議論されている。

  • AI-DLC (AI Software Development Life Cycle): AIエージェントをプロセス全体に組み込み、要件定義から実装、テスト、デプロイに至るSDLCの各フェーズを自律的に連携させて高速化する開発手法。
  • Spec-Driven Development (SDD): 仕様(Spec)を明文化し、AIが実装し、仕様を更新して再実装する。仕様を静的なものとして固定せず、動的に更新し続ける。
  • Barry Boehmの「スパイラルモデル」: 開発初期にリスクを潰すためのプロトタイプ(らせんの第1周)を作成し、徐々にシステム全体を本格化させていく。

類似したアプローチは存在するものの、AIの特性を踏まえて「意思決定の迷走を防ぐために反復回数を2回に規定する」という点に焦点を当てた議論は、まだ十分に整理されていないと思われる。たとえばスパイラルモデルはリスクが解消されるまで何周も回る前提だし、アジャイルも無限スプリントが基本だ。

ここで検討しているキャリブレーションモデルという仮説が特徴的なのは、この「無限反復の禁止」という点にある。AIによって作る・試す・やり直すコストが下がるほど、人間の「意思決定コスト」が相対的に高まり、プロジェクトの着地点が見えにくくなるのではないか、という問題提起である。だからこそ、第1相:探索(Calibration)、第2相:収束(Convergence)の2パスに固定する境界線が有効になるのではないか、という仮説だ。

なお、FDEの定義や起源については、「FDE(Forward Deployed Engineer)とは?AI導入を成功させる新職種の役割・必要スキル・企業事例を解説」や「FDEという新たな役割に、私たちはなぜこれほど期待を寄せてしまうのか?」をご参照ください。また、FDEの多義性については「うちのFDE - FDEという多義的な役割」でも深く議論しています。さらに、プロジェクトマネジメントオフィス(PMO)におけるFDE精神の応用として、「PMO 2.0: FDEとAntigravityがもたらす「課題解決型PMO」の可能性」も執筆しています。

7. 本当の出発点は「人間は言語化できない」

ここで、この思考の根っこにある本質的な人間観に行き着いた。

「どちらかというと、人間の初期の言語化能力を信用していないから、このプロセスが必要になるのではないか」

この視点は重要だと考えている。「AIで開発が速くなるから2周できる」というのは単なる技術的な手段にすぎない。そもそも「人間は最初から自分たちの欲しい要件を完璧に言語化することは難しいのではないか」という、人間の認知特性についての仮説が出発点となる。

従来のウォーターフォールは、以下のような仮定を暗黙の前提としている。

  1. 業務担当者は自分たちの業務と必要な要件を言葉で説明できる。
  2. それをITコンサルタントやPMが正確に要件定義書に落とし込める。
  3. 設計者は要件定義書から完璧な設計ができる。
  4. 開発者は設計書通りに正しく実装できる。

しかし実際のプロジェクトにおいて、実物を見るまで本当に必要な仕様を実感しづらいという現象はしばしば見られる。これは業務担当者が嘘をついているわけでも、PMのヒアリング能力が低いわけでもない。本人たちも、実物を見るまで本当に必要なものが完璧にイメージできているわけではないからだ。

8. 「不完全」ではなく「解像度が低い」

これは、業務担当者が自分たちの要求を持っていないわけではない。ビジネスユーザーは、「今、業務の何に困っているか」「何を自動化・効率化したいか」「どんな操作が嫌で、どんなストレスがあるか」「何は便利だから絶対に変えたくないか」といった、日々の業務に根ざした真のニーズ(要求)を確かに持っている。

ただ、それを最初から具体的なシステム仕様という高解像度な言語(技術スペック)へと変換することが難しいのではないか、という点である。

これは家を建てる時の施主の感覚にとてもよく似ている。施主は最初から「広くて明るいリビングが欲しい」「たくさん収納が欲しい」「暖かい家がいい」という要求(要件)を持っている。しかし、

  • 18畳で本当に十分だったか
  • 吹き抜けは寒くていらなかったのではないか
  • 収納は寝室ではなく玄関横に作るべきだったのではないか

といった具体的な解像度は、図面やモックアップなどの実物を検証するまで見えにくいことが多い。要求そのものは当初から存在しているものの、その初期段階における解像度が低い状態にある、と捉えるのが自然だろう。

したがって、このモデルがアプローチしようとしているのは、要件の変化への追従(アジャイル)や、顧客ニーズのゼロからの探索(リーン)とは異なり、「すでに存在する要件の解像度をいかに早く高めるか(Calibration)」という課題に対する可能性の模索であると考えている。

9. しかし「模型」ではない

ここで、「CGや模型を作る感覚」と表現すると、また別の誤解が生まれる。

「模型(プロトタイプ)というと、使い捨てのチープなものを想像してしまう。しかし1周目の探索フェーズで作るのは、そんなハリボテではない」

キャリブレーションモデルの1周目で開発するのは、モックアップや画面紙芝居ではない。

  • 実際に動作する本番用のコード
  • 本格的なシステムアーキテクチャ
  • 本番用のリレーショナルデータモデル

そのものである。ただし、複雑な既存データ移行や、極端な非機能要件、セキュリティ権限の例外、監査証跡といった「デリバリー工数の大半を消費するが、要件の解像度向上には寄与しない本番周辺要件」を後回しにする。

これは全体の「80%完成品」であり、使い捨てる模型ではない。建築で例えるなら、「スケルトン状態の完成住宅」に近い。家としての骨組みとインフラは本気で建てられており、実際に住むことができる。ただ、造作家具や庭の植栽、細かい内装仕上げといったディテール(20%の要素)はまだ施されていない、という状態だ。

つまり、一般的なプロトタイピング思想とも根本的に異なる。

  • 従来のプロトタイプ:学習のために作り、役目を終えたら「捨てる」。
  • キャリブレーションモデルの1周目:解像度向上のために「本気で作る」が、それは捨てずに、2周目で本番品質へと「そのまま育てて収束させる」。

10. さらに重要な修正:アーキも仮説として扱う

「いや、アーキテクチャやデータモデルは、パフォーマンスやセキュリティといった重要な非機能要件に紐付いている。だから後回しにするのはおかしくないか?」

これも非常に鋭い指摘だ。ここにも思想のアップデートが必要だった。

アーキテクチャやデータモデルは、非機能要件やビジネス制約と直結しているため、1周目の最初から本質的な設計を行う必要があると考えられる。

ただし、ここでキャリブレーションモデルの思想がより鮮明になる。

「1周目から設計を真剣に行いつつも、それらもまた『必要に応じて2周目で作り替える余地』をチーム全体が共有しておく」

という関係性の構築だ。これは「アーキテクチャを考えない」ということでは断じてない。「人間側の不完全な業務理解の段階で、後戻りできない完全なアーキテクチャを決定しない」ということだ。

1周目において、チームは以下をすべて「仮説」として構築する。

  • 業務フローおよび画面UXの仮説
  • リレーショナルデータモデルの仮説
  • アーキテクチャ構成の仮説

そして2周目(収束フェーズ)に入った時点で、1周目の動作検証によってキャリブレートされた(正しいとわかった)仮説を、本番稼働に耐えうる本物へと昇格させる。

従来の開発プロセスにおいて、「設計は契約(合意後の変更はペナルティ)」とされがちだった。

しかしAI時代においては、「設計は検証可能な仮説」へと位置づけが変わっていくのではないだろうか。

11. 核心:手戻りの怖さを捨てる

ここで一気に視界が開けた。

「AI駆動開発の真の価値は、開発者が『手戻りの恐怖』を完全に捨てられることにあるのではないか」

世の中の多くの人は、AI駆動開発を「AIが人間の代わりに高速でコードを書いてくれる技術」と捉えている。しかし、生産性向上の本質はそこではない。手戻り(仕様変更や設計のやり直し)にかかるコストとリードタイムが劇的に削減されることの方が、プロジェクト全体に与えるインパクトは遥かに大きい。

人間中心の従来型開発では、

「設計にミスがあった 3ヶ月後のテストフェーズで発覚 修正の影響調査 変更承認プロセスの稼働 設計書の修正 コードの書き換え 関連するテストの再設計・手動再テスト」

というプロセスが走り、膨大な時間とコストが溶けていった。だからこそ、関係者は全員手戻りを極端に恐れ、「完璧な要件定義」や「変更のない完璧な設計」を神話のように追い求めた。しかし実際には、事前に完璧を見抜くことは誰にもできなかった。

AI時代は、この構造が根本から逆転する。

「設計にミスがあった テストとコードをAIがその場で修正・再生成 瞬時に全体テストを実行して確認」

これが数時間で現実のものとなる。そうであるなら、設計の基本思想自体を転換しなければならない。

「手戻りを防ぐ(防衛的設計) いつでも手戻りできるようにする(可変的設計)」

ウォーターフォールが強いる堅苦しい順序性も、アジャイルが強いる厳密なスプリント管理やベロシティ測定も、すべては「変更という不確定要素を、人間が管理可能な範囲に閉じ込めるため」の防衛策であった。

キャリブレーションモデルはこの防衛策を捨て去る。

「変更は必ず起きる。人間の理解は実物を見て初めて深まる。だから、設計もデータモデルも変わる。変わったら、AIの力を使って超高速で作り直せばいい」

これは極めてラディカルな思想だ。ただし、無限に作り直すカオスを避けるため、プロジェクト管理の枠組みとして「1周目(探索:手戻り上等)」「2周目(収束:本番化)」の2つのパスに厳格に固定する。

  • 従来開発:正しく設計してから作る(Plan then Build)
  • キャリブレーションモデル:作りながら正しく理解する(Build to Understand)

12. ここで「速度の話」が崩れる

ここで、自分自身に対して最も手痛い反論をぶつけてみる。

「AI駆動開発を導入すれば、生産性は10倍、100倍になるはずだ。ならば、なぜこのような『2周固定』などの新しい管理手法が必要なのか?単に『速いから2周まわせばいい』というだけの話ではないのか?」

この問いを掘り下げたとき、議論は最も深遠な領域へと到達した。

世間で行われている「AIの生産性向上」に関するさまざまな実験結果を整理してみよう。

  • GitHub Copilotの初期実験:特定の単純なコーディング課題において、開発速度が約55.8%高速化したと報告された。
  • McKinseyの調査:特定のプログラミングタスクで最大2倍の生産性、ソフトウェア工学プロセス全体としては20〜45%程度の生産性向上に留まると試算。
  • METR(AI評価機関)の2025年の最新実験:経験豊富なシニア開発者が、すでに十分に習熟しているOSSコードベースに対してAIエージェントを用いて作業した場合、驚くべきことに、AIを使用したグループの方が「平均して19%作業時間が遅くなった」という結果が出た。

「AIで開発が爆速になる」と叫ばれる一方で、現場の実感として「思ったほど全体のリリース速度が上がっていない」「むしろAIの尻拭いで開発者が疲弊している」という声が消えないのはなぜか。

ひとつの要因として、多くの検証が「既存の開発プロセスの枠組みを維持したまま、部分的にAIツールを導入している」点にあるのではないか、という仮説が成り立つ。

すなわち、ウォーターフォールの開発工程や、アジャイルのスプリントプロセスの形は一切変えず、コーディング部分にだけCopilotやCursorをあてがっている。

これは、せっかく高性能な「自動車(AI)」を発明したのに、それまで馬車が走っていた「デコボコの馬車道(承認と分断のプロセス)」の上を走らせて、「馬車より少し速い程度だ」と測定しているようなものである。

AIを導入しても、

  • 工程ごとの人間によるレビューと押印待ち
  • 要件定義・設計・実装・テスト担当者の組織的分断
  • 既存の巨大なレガシーコードを解読する人間側の認知的限界
  • エクセル設計書とソースコードの乖離のメンテナンスコスト
  • テストコードの不足による、変更時のデグレーション(先祖返り)への恐怖心

これらがプロセスの随所に残っている場合、AIによるコーディングの高速化が全体のリードタイム短縮に直結しにくくなる可能性がある。ボトルネックが「実装(コードを書く)」から「レビュー・承認・検証・合意形成」という人間側のオーバーヘッドへとシフトしてしまうからではないか。

AIの真のポテンシャルを引き出すには、古い開発工程にAIをプラグインするのではない、AIが持つ「手戻りコストの低さ」を最大化するように、開発プロセスの構造自体を2周型(探索と収束)へと抜本的に再設計していくアプローチの可能性を模索することになるだろう。

Chapter Techでは、このアプローチをエンタープライズDX & FDE支援サービスを通じて、実際のプロジェクトへ適用・支援しています。また、よりシンプルなコーポレートサイト制作やWebサイト構築においては、当社のWeb制作サービス「デジステップ」にて、高品質・高速なデリバリーを提供しています。

13. ここでTDDが効いてくる

「2周で終わらせる」という時間的制約と、「1周目で本気で本番用の構造を作る」という品質の担保を両立させるには、もう一つの強力な歯車が必要となる。それがTDD(テスト駆動開発)だ。

1周目で80%完成(スケルトン状態)を目指すと言っても、その「80%」の正しさが何によって保証されるのかが曖昧であれば、2周目は収束するどころか、1周目の負債の山を片付けるだけの泥沼のデバッグ工程に化けてしまう。そこでTDDが真価を発揮する。

要件を定義した瞬間、以下のようなサイクルを徹底する。

要求定義 受入テスト定義 非機能テスト定義 AIによる自動実装 テスト合格 人間による実物確認

1周目の探索フェーズが目指すのは、「事前定義された受入テストが100%通過している状態」だ。業務的なハッピーパスに関しては、完全に動作するものが出来上がっている。

このテストによる堅牢なガードレールが存在するからこそ、2周目でアーキテクチャの構造をドラスティックに変更したり、ERDのテーブル定義を整理し直したり、モジュールの責任範囲を組み替えたりすることが、恐れることなく可能になる。どのような大改造を施そうとも、裏で「受入テスト」が通っている限り、システムの業務的整合性が破壊されていないことが保証されるからだ。

従来の開発で手戻りが恐ろしい最大の理由は、コードを書き直す作業そのものの大変さではない。「変更によって、どこがどのように壊れたか、人間には影響範囲が分からない」という闇に対する恐怖だ。だから誰も古いコードを触れなくなり、継ぎはぎの設計で破綻していった。

要件がテストコードという「動作する仕様書」として固定されているならば、データモデルの全面作り直しであっても、テストさえ通ればシステムは正しい。

ここで1周目の役割を以下のように捉えてみる。

  • 1周目(探索フェーズ):業務理解の獲得 + テスト資産(基準器)の構築
  • 2周目(収束フェーズ):テスト資産に守られた状態での、アーキテクチャの最適化と本番品質(セキュリティ・監査証跡・性能・運用などの周辺要件)への統合

AIとTDDの組み合わせは、お互いの弱点を補い合う最高のパートナーである。

  • AI単体:爆速だが、どこに向かって走っているか分からず危険。
  • TDD単体:極めて安全だが、人間がテストと実装を両方書くため工数が重い。
  • AI × TDD:テストの作成も実装の修正もAIが高速で行うため、安全性を保ったまま超高速で手戻りを回せる。

この組み合わせがあって初めて、「1周目で探索し、2周目で収束させる」という開発プロセスが実務レベルで機能し始めるのではないだろうか。

14. 致命的な修正:「80%」の意味

ここで、これまでの開発業界で行われてきた「プロトタイピング」や「MVP」の議論と、このキャリブレーションモデルの間に存在する、致命的な認識のズレを正しておかなければならない。

この「80%」という数字の解釈については、単なる「手抜き開発」と誤解されないよう、慎重に整理しておく必要があると考えている。

ここでは、以下のような解釈を提案したい。

「1周目は、手抜きで80%の完成度を目指す工程ではない。1周目もまた、その時点で分かっている仕様に対して『100%の完成』を本気で目指す工程である」

1周目の時点で定義できている機能要件、データモデル、テストケースに関しては、一切の妥協なく完璧に通し切る。本気で作るのだ。

そのように構築しても、初期の要件定義の解像度の限界から、実物を見て初めて顕在化する仕様の不足や変更(仮に全体の20%とする)が観測されるのではないか、という想定である。

つまり、

  • 意図的に手を抜いて80%で止める ── (ただの低品質な試作)
  • その時点の認識で本気で100%作った結果、後から20%の考慮不足が観測される ── (キャリブレーションの成立)

この考え方は、アジャイルや一般的なMVP(Minimum Viable Product)の思想とは異なるアプローチを示唆しているのではないか。

  • MVP:最初から提供価値を「最小限に削ぎ落とす(絞る)」。
  • キャリブレーションモデル:現時点で想定できる機能は「最初からすべて作りきる」。ただし、実体化したことによる学習で、後から認識の誤差(仕様の不足やねじれ)が必ず見つかることを最初から織り込んでおく。

これは非機能要件についても同様だ。1周目で非機能要件を完全に無視するのではなく、

  1. 1周目の時点で言語化・定義できる非機能要件(想定アクセス数やデータ構造)は、すべて本気で盛り込む。
  2. それに基づいたテストも全力で構築し、パスさせる。
  3. それでも、実際に動作するスケルトンを検証する中で、データモデルの構造的欠陥や、パフォーマンス上の真のボトルネックが浮き彫りになる。
  4. 2周目でその測定結果(誤差)を反映し、アーキテクチャやERDを最適化して収束させる。

すなわち、「人間の初期の言語化は、機能・非機能を問わず、本質的に不完全(低解像度)である」という事実を, プロセスの前提として暖かく受け入れているのである。

15. もう一つの決定的な修正:「2周で十分」ではない

ここでもう一つ、プロジェクトマネジメントの観点から決定的な思考の修正を行っておく。

「2周も回せば十分な品質になるから、2周にする」と考えるべきではない。

このプロセスの本質は以下のように考えられる。

「2周で完璧になるからではなく、プロジェクトをビジネスとして確実に『終わらせる(収束させる)』ために、反復回数を2周に固定する」

アジャイル的な反復思考の最大の弱点は、「作れば作るほど、触れば触るほど、もっと改善できるアイデア(要求)が無限に湧き出てくる」という点にある。その要求に際限なく付き合っていると、いつまでも本番リリースができず、予算と時間は無限に溶けていく。

このモデルが提起するマネジメントの姿勢は、ある種厳格な境界線を設ける点にある。

「どれほど魅力的な改善案が追加で浮上したとしても, この開発枠組みにおいては2周目の収束フェーズで確実にプロジェクトをクローズさせる」

なぜなら、ビジネスにおけるシステム投資の目的は、「永遠にリリースされない完璧な自己満足システム」を作ることではなく、「期日通りにビジネスの現場で稼働し、利益(P&L)に貢献するシステム」を手に入れることだからだ。

  • 探索を続け、改善を繰り返す(探索 探索 探索) ── (価値を生まない無限ループ)
  • 探索から立ち上がり、確実に終わらせる(探索 収束) ── (デリバリーの達成)

したがって、このモデルは「2周で十分」という技術的妥協ではなく、「2周で終わらせる」というマネジメント上の意思決定の枠組みとして提案したい。

16. そして最も重要なこと:これは「良いものを作る手法」ではない

ここで、本仮説の思想核心に到達する。

「このモデルは、単に『より高品質なソフトウェアを作るための手法』ではないのではないか」

品質向上だけを目的にしてしまうと、アジャイルの罠に嵌まる。「もっと良くできる」という誘惑は、開発チームのエンジニアリング的良心を刺激し、プロセスを無限反復へと引きずり戻すからだ。

このモデルが目指すのは、単なる品質向上やバグの削減そのものではなく、「初期段階の低解像度な要件理解を、動作する実物を媒介に早期に高解像度化し、限定されたプロセス内でプロジェクトを確実に着地(収束)させること」であるという視点だ。

品質の向上やバグの減少は、その収束プロセスの副産物として結果的に得られるものに過ぎないのではないか。

既存の開発アプローチとキャリブレーションモデルの前提の違いを、以下のように整理できる。

  • ウォーターフォール:「人間は最初から仕様を完璧に定義できる」という、机上の合意を前提とする。
  • アジャイル:「要件は常に変わり続ける」という前提のもと、価値の解像度を上げ続ける(無限反復)。
  • キャリブレーションモデル:「人間は要件の方向性を持っているが、その初期解像度は極めて低い。だから1周目の実装で解像度を一気に高め、2周目で本番品質へ昇格させて終わらせる」という、測定と補正のプロセスを前提とする。

この考え方をひとつの仮説として整理するなら、以下のような展望を描くことができる。

「人間は確かに要件を持っているが、その初期段階の言語化解像度は不完全である。キャリブレーションモデルは、AI駆動開発とテスト駆動開発の圧倒的な低コスト性を利用して、既知の要求を早期に100%実体化させ、実物との対話によって要件の解像度を限界まで高めた上で、その補正データを基に2周目のパスでシステムを確実に収束させることを目指す、AI時代の『プロジェクト収束フレームワーク』という仮説である」

17. 「キャリブレーション」という名前

ここで初めて、この一連の探索・収束型プロセスに「キャリブレーション(Calibration)」という名前を冠した理由について述べておきたい。

仮説の本質を示す言葉として、「探索・収束型2パス開発」が最も正確かもしれない。しかし、

「ウォーターフォール、アジャイル、スクラム、リーン、スパイラル」

といった歴史的な開発方法論の並びに置いたとき、「探索・収束型2パス開発」では単なる仕様説明文に聞こえ、方法論としてのシンボル性に欠ける。

歴史を振り返ると、優れた開発手法の名前は、その物理的プロセスを直接説明していないことが多い。

  • ウォーターフォール(滝):本質は「工程順序の完全固定と承認による後戻り禁止」だが、水が上から下に流れる様子に例えられた。
  • アジャイル(俊敏):本質は「反復による連続的な学習と適応」だが、動きの素早さを示す言葉が選ばれた。
  • スクラム:本質は「短周期のタイムボックスにおける多能工チームの自己組織化」だが、ラグビーのフォーメーションから名付けられた。

名前は、その手法が持つ「手触り」や「思想のシンボル」であるべきだ。

だからこそ、私たちはこれを「キャリブレーション(校正・調律)」と呼ぶ。

温度計やGPSが、現実の基準値と突き合わせて目盛りを補正するように、私たちの要件認識もまた、動くコードという現実の基準器と突き合わせて「目盛りを校正(キャリブレート)」される必要があるからだ。無理に「認識校正型開発」などと日本語訳せず、そのまま「キャリブレーション」と呼ぶ。それこそが、ウォーターフォールやアジャイルと対等に並び立つに足る響きを持つ。

しかし、注意しなければならない。名前は単なるラベルである。

ウォーターフォールを「水が流れる仕組み」といくら説明しても、ガントチャートの引き方は分からない。同じように、キャリブレーションを「計測器のチューニング」といくら説明しても、ソースコードは書けない。

主役はあくまで、これから検証していく具体的かつ実践的なプロセスである。

  1. AI駆動による「コード・テスト・設計書」の統合開発
  2. TDDによる「仕様のテストコード化(基準器の設置)」
  3. 反復回数の「2周(探索と収束)」への厳格な固定
  4. 1周目における「現時点の既知要件の100%実装」
  5. 2周目における「誤差の測定結果に基づく、本番品質への昇格とクローズ」

キャリブレーションという言葉は、この一連のプロセスを提示するための、薄いパッケージのシールに過ぎない。

18. 整理:何を最適化しているのか

ここで、本稿における議論の軌跡を、出発点から終着点まで一気通貫で整理しよう。

出発点

  • AIによってコーディング速度が劇的に向上する。ならば、従来のウォーターフォール的な開発工程の順序も変わるはずだ。

観察と現実

  • 人間は最初から要件を完璧に言語化できない(初期解像度が極めて低い)。
  • しかし、要件そのものがないわけではなく、動作する「実物」を見ることで初めて、真の要求を正確に認識(Recognition)できる。
  • 非機能要件やアーキテクチャの妥当性も、同様に動くものとぶつけることで初めて真の課題が計測できる。

構造的課題

  • 「既存プロセス + AI」の組み合わせでは、ボトルネックがコーディングから「人間側のレビュー、承認、エスカレーション、エクセル設計書の維持」にシフトするだけで、プロジェクト全体の速度は上がらない。
  • アジャイルのような「無制限の反復」は、AIの実装コスト低下に伴って意思決定コストを無限に跳ね上げ、プロジェクトを永久に漂流させる。
  • ウォーターフォールの一発勝負では、手戻りコストの高さゆえに現場が萎縮し、最後に巨大な仕様変更で炎上する。

提案するアプローチ(キャリブレーション開発モデル)

  • 開発プロセスを「1周目の探索(Calibration)」と「2周目の収束(Convergence)」の2パスに固定する。
  • 1周目で、その時点で定義できる機能・非機能要件とテストを本気で作りきる。
  • 1周目の動くスケルトンを用いて、実質的な要件認識のズレ(未知の20%)を測定する。
  • 2周目で、その測定された誤差(データモデルの変更や考慮不足だった仕様の追加など)を反映し、アーキテクチャを最適化した上で、本番環境で稼働する品質へ昇格させてクローズすることを目指す。

最適化の対象

  • 単なるコーディング速度 ──
  • 妥協のない理想の品質 ── (結果として向上するが、最適化の目的ではない)
  • プロジェクトの「収束(期日通りに終わらせること)」 ──
  • 人間の「要件解像度の向上」 ──

QCD(品質・コスト・納期)へのアプローチ

  • Q(Quality):動く実物での検証により、業務要件と非機能要件の解像度が極限まで高まる。
  • C(Cost):間違った前提や不要な本番化設計への「机上の過剰投資」を未然に防ぐ。
  • D(Delivery):反復回数が「2周」と固定されているため、全体の進捗とリリース時期の予測可能性が極めて高く保たれる。

19. 既存手法との差分

本モデルの立ち位置をより明確にするため、従来の主要な開発手法や概念との決定的な差分を整理する。

手法・概念従来アプローチの思想キャリブレーションモデルの思想
ウォーターフォール「要件定義フェーズで要件は完全に定義できる」と考え、手戻りを徹底的に防ぐ。「要件は最初からあるが解像度が低い」と考え、1周目の実装で解像度を上げて手戻りを受け入れる。
アジャイル「要件は変化し続ける」と考え、リリース後もスプリントの反復(無限ループ)を繰り返す。「要件は1周目で高精度化できる」と考え、反復を「探索」と「収束」の2パスに固定して終わらせることを目指す。
プロトタイピング学習や検証のための「使い捨ての簡易モック」を作る。1周目から本物のデータベースとアーキテクチャで「本気で作る(捨てない)」。
MVP (Minimum Viable Product)リスク検証のために、提供する機能のスコープを「最小限に絞る」。現時点で言語化できる機能は「最初からすべて本気で作りきる」。
Spec-Driven Development仕様(Spec)をAIに対する唯一の正解ソース(入力)として固定する。仕様自体が「1周目の動作検証を経て初めて高解像度化(出力)される」と捉える。
スパイラルモデルリスクが十分に低減されるまで、らせん状に「何周でも反復する」。リスク測定と補正のプロセスを、管理上「2周」に固定する。

20. 成立条件

このキャリブレーションモデルという仮説は、適用すればすぐに機能するような魔法ではない。プロジェクトにおいて実効性を持たせ、確実に収束させるためには、以下のような「工学的前提条件」が満たされる必要があると考えている。

  1. AIを単なる「コーディング助手」として使わない

要件の整理、テストコードの起票、アーキテクチャの変更影響調査、およびソースコードからの設計ドキュメントの逆生成に至るまで、SDLCの全工程においてAIエージェント(AntigravityやCursor等)をフル稼働させ、人間側の事務的オーバーヘッドを極限まで排除すること。

  1. 1周目を「お試し(試作)」として手を抜かない

「どうせ2周目で直すから、適当に作っておこう」という甘えは、2周目の収束を不可能にする。1周目時点の仕様書に書かれたテストは、本気で100%満たし、本番同様の技術スタックで構築しなければならない。

  1. テストを実装の「前」に必ず定義する

AIに実装を指示する前に、受入条件となるテストコード(TDDのレッド状態)を固定すること。これがなければ、AIの生成するコードの妥当性を機械的に検証できず、手戻りのコストが跳ね上がる。

  1. 非機能要件も1周目のスタートラインから本気で扱う

「1周目はUIだけ、2周目でデータベース」といったスコープの先送りは行わない。1億件のデータ量やセキュリティ要件など、判明している非機能制約は最初からアーキテクチャ設計に組み込み、テストを走らせる。

  1. 2周目で新たな「探索」を開始しない

2周目は「収束(Convergence)」のフェーズである。1周目で浮き彫りになった誤差の修正と仕上げに徹し、「やっぱりここも変えたい」という新たな思いつきは、原則としてこのプロジェクト内では却下し、次の開発フェーズへと回す。

  1. 「より良くできる」状態であっても、終了条件に達したらクローズする

テストがすべてパスし、1周目で検出された誤差の補正が完了した時点で、プロジェクトを完成とみなす。「もっと磨き上げられる」というエンジニアリング的なこだわりを、管理上の意思決定によってコントロールすること。

21. 工数仮説

キャリブレーションモデルにおいて、全体の開発工数は以下のような比率で配分されるという仮説を立てている。

  • 1周目:探索パス(Calibration Pass) ── 全工数の 20% 〜 30%
  • 2周目:収束パス(Convergence Pass) ── 全工数の 70% 〜 80%

この極端な比率の背景には、ソフトウェア開発における「工数と価値の非対称性」がある。

システム開発において、ユーザーが最も価値を感じるコアの業務ロジックや基本画面は、全体の約20%の要素にすぎない。そしてこのコア領域は、現在のAI駆動開発(Cursorやエージェント)が最も得意とし、驚異的な速度でコードとテストを自動生成できる部分である。そのため、わずか20〜30%の工数で、システムの本質部分(スケルトン)を100%動作する形で具現化し、ユーザーにぶつけることができる。

一方で、本番稼働するために絶対に無視できない残りの要素(緻密な例外処理、大量データのパフォーマンスチューニング、詳細なエラーハンドリング、監査ログの設計、既存レガシーシステムからのデータ移行、他システムとの結合試験、本番デプロイ手順の構築など)は、全体の8割の工数を消費する。

この重厚な「収束プロセス」に、1周目でキャリブレートされた(正しいと実証された)データモデルと要件を基にして、残りの70〜80%の工数を一気に集中投下する。

これにより、「要件が間違っていて、苦労して書いた例外処理や移行スクリプトがすべて無駄になった」という最悪の手戻りロスを完全に排除する。

ただし、プロジェクトの性質やシステムの特性に応じて、以下の調整幅を持たせるべきだ。

  • 新規のWebサービス・AIアプリケーション(AI適用度:極めて高) ── 20 : 80
  • 標準的な基幹業務システム・ERPカスタマイズ(AI適用度:中) ── 30 : 70
  • 既存の超巨大レガシーシステム改修・外部連携が複雑な場合(AI適用度:低) ── 40 : 60

22. マスタスケジュールと依存関係(ガントチャート例)

キャリブレーションモデル(CDM)におけるプロジェクトの進め方をより具体化するため、10週間の開発プロジェクトを想定したマスタスケジュール(ガントチャート)と、タスク間の依存関係を、旧来のウォーターフォール型プロセスと比較して示します。

フェーズ / タスク名
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
主要マイルストーン
探索パス(仮説検証 - 約30%)
1.1 要求定義・受入テスト(基準器)の策定
仕様のガードレール化
1.2 既知要件の100%実装(仮説モデル構築)
本気の実体化
1.3 実物動作検証・要件解像度の校正(測定)
第1相ゲート(誤差測定)
収束パス(本格本番化 - 約70%)
2.1 測定誤差の反映・設計構造の最適化
設計仮説のキャリブレート
2.2 本番システム堅牢化(セキュリティ・非機能統合)
テストに守られた本番化
2.3 結合品質検証・本番リリース(クローズ)
プロジェクトの確実な収束

スケジュール上の決定的差異

両モデルのスケジュールを比較すると、以下の3つの決定的な違いが浮かび上がります。

  1. 「初めて実物が動く」タイミングの圧倒的な差(W4 vs W8)
  • ウォーターフォールでは、要件定義・設計の紙上合意(W1〜W4)を経て、実装が終わる第8週(80%時点)まで実物が動きません。
  • CDMでは、わずか全工期の30%(W2〜W3)の探索実装により、第4週(40%時点)で本物のアーキテクチャ・DBを備えた「動く実物(80%完成品)」が検証可能になります。
  1. 手戻りコストの爆発リスク(軽微な補正 vs プロジェクト炎上)
  • ウォーターフォールでは、W8で認識ズレ(誤差)が発覚した場合、すでに7週間分のコードや分厚い詳細設計書が作成された後であるため、手戻りコストが跳ね上がり、納期遅延や品質妥協が避けられなくなります。
  • CDMでは、W4の早い段階で誤差を測定し、その補正データをインプットとして残りの本格実装(W6〜W8)に入るため、手戻りによるやり直しが極めて小さく抑えられます。
  1. AIの生産性の活かし方(プロセスの再設計 vs 局所的な自動化)
  • ウォーターフォールでは、AIでコーディングが速くなっても、前後の分厚いドキュメント作成や承認プロセスのオーバーヘッドに阻まれ、全体のリードタイムは短縮されません。
  • CDMでは、AIの「実装コストの低さ」を前提に、あえて「まず本気で作って誤差を測定する」という2周型のプロセスを採用し、全体のリリース速度と確実性を最大化します。
CDM FEEDBACK LOOP

探索フェーズから収束フェーズへのデータ連携

タスクをホバーすると、接続関係がハイライトされます。

【第1相】探索パス (約30%) 仮説検証 / 測定
1.1 要求定義・受入テストの策定

期待仕様をテストとして先に固定し、客観的な合格基準を定義。

1.2 既知要件の100%実装(仮説構築)

妥協なく本気で動くコードを作り、機能仕様を実体化。

1.3 実物動作検証・要件解像度校正

実物と対話し、言語化できていなかったズレ(誤差)を測定。

実物検証からの誤差フィードバック
【第2相】収束パス (約70%) 本番実装 / 最適化
2.1 測定誤差の反映・設計最適化

測定された誤差を基に、データモデルやアーキテクチャ設計を最適化。

2.2 本番システム堅牢化・非機能統合

テスト資産に守られた状態で、セキュリティや既存移行など本番周辺要件を統合。

2.3 結合品質検証・本番クローズ

本番リリースを行い、運用自走体制を引き渡して確実に収束。

依存関係とフィードバックループの違い

  • ウォーターフォール(リニアフロー)

要件定義からリリースまでが一方向の依存関係になっており、テスト工程(W8-W9)で不具合や要件のズレが検出された場合、手戻りのフィードバックが要件定義や設計(W1〜W2)まで遡り、すべての整合性を崩してしまいます。これは計画外の混沌としたループ(炎上)を引き起こします。

  • キャリブレーションモデル(計画的ループ)

探索パス(1.1〜1.3)で得られた「実物検証からの測定誤差」を、2.1(測定誤差の反映・設計最適化)へと確実に引き渡す「計画的なフィードバックループ」が最初からプロセスとして組み込まれています。これにより、2周目(本格実装)は不確実性を排除した状態で、安全かつ高速に進めることができます。

23. 結論、おわりに:この仮説の立ち位置と新規性

結論

AI時代のシステム開発は、単に「AIを使ってコードを速く書くこと」ではない。

AIの本当のインパクトは、要件定義から設計、実装、テスト、ドキュメント生成に至るSDLCの各工程のコストを劇的に押し下げたことにある。その恩恵として、私たちは「かつてはプロジェクトの敗北を意味していた『手戻り(仕様変更・設計変更)』を、プロセスの内側に正規のステップとして安全に組み込む権利」を手に入れた。

しかし、手戻りの容易さに甘えて無制限の反復(アジャイルの無限ループ)を許せば、プロジェクトは永久にクローズしない。

だからこそ、プロセスを「2周」に固定するアプローチが有効ではないか。

  • 1周目(探索フェーズ):現時点で想定し得る機能・非機能要件とテストを本気で作りきる。
  • 1周目の終了時:動く実物をチームとユーザーで検証し、初期の要件定義の「認識の誤差(未知の20%)」を測定する。
  • 2周目(収束フェーズ):検出された誤差(設計の歪みや追加の業務仕様)を反映し、アーキテクチャを最適化した上で、本番稼働に耐える品質へと収束させてプロジェクトをクローズすることを目指す。

このプロセスを、私たちは「キャリブレーションモデル」という仮説として整理した。その本質は、

  • AIで浮いた工数を、人間の「要件解像度の向上(キャリブレーション)」に投資する
  • 1周目で既知の100%を本気で作り、2周目で発見された差分を埋めて確実に終わらせる
  • 反復回数を管理上「2周」に固定し、意思決定コストの肥大化を防ぐ

という可能性の提示にある。


おわりに:この仮説の立ち位置

最後に、この仮説の「新規性」について、学術的・実務的な観点から誠実に整理しておきたい。

1. すでに他者によって語られており、新規性が低い部分

  • AI × TDD の有用性:AIエージェントにテストコードをベースに実装させるアプローチは、すでに多くの先進的なエンジニアが実践し、その効果を報告している。
  • Spec-Driven Development (仕様駆動開発):仕様を入力とし、実装をAIに委ねるアプローチもまた、すでにいくつかのツールや論文で提唱されている。
  • 「人間は最初から要件を正しく言語化できない」という前提:これはリーン・スタートアップ、デザイン思考、およびアジャイルの文脈で、過去20年以上にわたって語り尽くされてきた認知の真実である。

2. 部分的な独自性があり、新規性が中程度である部分

  • AIの導入によって「手戻りコスト」というソフトウェア工学の基礎変数が破壊されたため、それに伴って開発プロセス全体の「最適な構造」そのものが不可避的に変わる、というマクロな視点。

3. 最も独自性があり、本仮説が最も強く提示したい可能性

  • 開発初期における要件の「探索(変更)」は全面的に認める。しかし、それをアジャイルのように「無限に反復しない」
  • 1周目で既知要件を100%実装し、2周目で発見事項を反映して収束させるという、プロセス全体の「2パス(2周)への固定」
  • 本手法の目的は、「より完璧で、より高品質なソフトウェアを作るための技術論」ではなく、「低解像度の要件を実物で高解像度化し、有限の工期内でプロジェクトを確実にクローズするための『AI時代のプロジェクト収束フレームワーク』」という可能性の提案であるという点。

かつて、ソフトウェア開発の現場に「CI/CD(継続的インテグレーション・デプロイ)」という自動化技術が登場した時、人類は単に「ビルドを数分速くする」という局所的な効率化を選ばなかった。代わりに、それまでは工数的に不可能だった「デプロイごとの自動テストの全件実行」や「静的解析による品質ゲートの設置」といった、「それまでできなかった新たなプロセスを開発ライフサイクルに組み込むこと」を選択した。

DevOpsの台頭もまた、単なるサーバー運用のコスト削減ではなく、開発チームと運用チームが同じ一次データを見て協働する「プロセスの統合」へと進化した。

テクノロジーによって生産性が劇的に向上した時、人類はいつも「速く作る(速度の最大化)」ことよりも、「それまでコスト的に諦めていた、より本質的な工程を追加する(プロセスの高度化)」ことを選んできたのだ。

AI駆動開発がもたらした圧倒的な余剰工数に対しても, 私たちは同様のアプローチを検討できるはずだ。

単に「コードが速く書けるようになった」と喜ぶのをやめ、それまではコスト的に不可能だった、

  • 動作する本番コードによる「要件認識の測定と補正(探索フェーズ:1周目)」
  • 測定データを基にした「確実なアーキテクチャの最適化(収束フェーズ:2周目)」
  • そして、プロジェクトを確実に終わらせるための「2周固定という管理上の意思決定」

という、より豊かで本質的な「キャリブレーション」のプロセスを、新しいソフトウェア開発の選択肢として模索していく。

これが、対話を重ねる中で私たちが描いた、AI時代のソフトウェア開発プロセスに関するひとつの可能性である。