【通算103|要求AI 20】ゼロから作るコストより、要件を1つ追加するコストの方が高かった——直観に反する結果が出た
前回(通算102)、要件を1つ足すのに約$31・実装28分かかった。重い技術スタック(TypeScript・PostgreSQL・Docker・331本のテスト)のせいだ。そこで「要件定義段階は、HTMLとJavaScript程度の軽い実装で回せばいい」と書いた。
今回、それをやってみた。同じシステムを軽い技術スタックで作り、前回と一字一句同じ要件(FR-016)を足して、コストを測る。
狙いどおりコストは下がった。だが、直観に反する結果が出た。
ゼロから作るコストより、要件を1つ追加するコストの方が高かった。
今回もYWT(やったこと・わかったこと・次にやること)で測った事実とその解釈・これから確かめることを書く。
やったこと
(1)前回のシステム(TypeScript/Next.js/Prisma/PostgreSQL/Docker)を、同じ要求仕様のまま、軽いスタックで作り直した。
技術スタック:静的HTML+JavaScript+localStorage。ビルドなし、npm依存なし、DBなし・Dockerなし・自動テストなし。データはdata.jsonとlocalStorage。
要件は同一:FR-001〜015をそのまま。そこに、前回と同じFR-016(接待交際費は金額にかかわらず経理承認を必須)を足す。
手順:/speckit-analyze → /speckit-clarify → /speckit-plan → /speckit-converge → /speckit-implement。
測り方:gitでベースラインを固定、/usageで金額・トークン・時間を記録。
(2)動作確認(E2Eは使わずに手動で確認)
実際に動かして、追加要件等を確認した。簡易チェックは74件通過(FR-016ぶんが18件増えた)。画面でも確かめた。接待交際費・30,000円(5万円未満)——追加前なら「上長のみ」で完了していた金額だ。



わかったこと
(1) 軽くしたら、同じ要件追加が約1/3のコストになった
/usageで測った数字を、前回(重いスタック)と比較。
前回(重いスタック)
約$31
33ファイル・約900行
331本のテスト全回し(E2E 3.7分/回)
今回(軽いスタック)
約$10.56
4ファイル・+186/−39行
手動+純粋ロジックの簡易チェック
同じ要件、同じ完成度の「動くもの」。違うのは技術スタックだけで、追加のコストが約1/3に減った。 DBのマイグレーションと、Dockerを立てての統合テスト・ブラウザE2Eが消えたぶんだ。ここは前回の仮説どおり。
(2) 要件を追加するコスト($10.56)が、ゼロから全部作る($5.04)より高かった
初回ビルド(何もない状態から全部作る):約$5.04
そこに要件を1つ足す(FR-016):約$10.56
要件を1つ足すほうが、システムをゼロから全部作るより高い。 足したコードは186行だけ。これは直感に反する。
(3)初回ビルドと要件追加では、回した工程の数が違う
初回ビルド:plan → tasks → implement(3工程)
要件追加:analyze → clarify → plan → converge → implement(5工程)
要件追加のほうが、analyze・clarify・converge を余計に回している。clarifyでは6問に回答した。
次にやること
工程別にコストを測定して。初回になかった工程(analyze・clarify・converge)を軸に、以下を確かめる。
その工程は、本当に必要なのか。 省けるものはあるか、毎回要るのか。
必要なら、どの工程にコストがかかっているのか。 同じ要件追加をもう一度やり、各工程のあいだに/usageを挟んで差分を取り、工程別のコストを測る。
タグ
#AIエージェント #SpecKit #スペック駆動開発 #要件定義 #要求定義 #ClaudeCode #システム開発 #テスト #SE #生成AI
