PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

vibe codingからspec-driven developmentへ:AI時代の「雑に作る」から「仕様で作る」への進化

キーポイント

「vibe coding」は便利だけど、長くは持たない

元記事はまず、AI時代の開発スタイルの変化から話を始めます。
最近よく聞く vibe coding とは、ざっくり言うと「こんな感じでお願い」とAIに伝えて、出てきたコードを見ながら微調整していくやり方です。

たとえば、

image_0001.jpg

という流れですね。

これは小さな試作ならかなり強いです。正直、​**“とりあえず形にする” 速度はものすごく速い**。ここはAIのすごさを素直に感じるところです。

でも著者が指摘するように、これには弱点もあります。

vibe coding の弱点

image_0002.svg

たとえば、同じプロジェクト内で「MLモデルの学習をDBTパイプラインにどう組み込むか」が人やAIごとにバラバラになる、という例が出ています。
これはかなりリアルです。AIが優秀でも、​ルールがなければ賢い混乱が起こるだけ、というのは本当にそうだと思います。

次に来るのは spec-driven development

そこで登場するのが spec-driven development(SDD)​ です。
これは、いきなり実装に入るのではなく、先に spec(仕様)​ をきちんと書く開発手法です。

ここでのポイントは、仕様を「コードの前提」として扱うことです。
つまり、

image_0003.png

を先に整理して、Markdown のような形でリポジトリに残します。

著者はこの考え方を、従来のソフトウェア開発にかなり近いものだと説明しています。
そして、SDD の良さは 仕様と実装を分ける ところにある、とまとめています。

これは地味に見えてかなり大事です。
AIにコードを書かせるとき、問題は「書けるか」ではなく「何を基準に書かせるか」だからです。
ここを先に決めると、AIの出力が一気に安定しやすい。これは実務でもかなり効く考え方ではないでしょうか。

SDD の流れは「憲法」を作るところから始まる

image_0004.png

元記事では、SDD の最初のステップを constitution(憲法)​ と呼んでいます。
ちょっと大げさに聞こえますが、要するに プロジェクトの基本ルール集 です。

ここには主に次のような文書が含まれます。

constitution の主な構成

この考え方がいいのは、​人間とAIの両方が同じ前提を見る ことができる点です。
AIの会話って、どうしてもその場しのぎになりがちですが、仕様書が残っていれば「前に何を合意したか」が見える。これが強い。

image_0005.png

しかも著者は、SDD は新規プロジェクトだけでなく既存プロジェクトにも使えるとしています。
これは実用的です。理想論で終わらず、現場にそのまま持ち込める形になっているのがいいですね。

実例:fitness app を4.5時間で作る

この記事の面白いところは、理屈だけで終わらず、著者自身が greenfield project​(まっさらな新規プロジェクト)で試していることです。

作ったのは、​Trainlytics という personal fitness tracking web app。
ランニングと筋トレを両立したい著者自身のニーズから生まれたアプリです。

ここはかなり共感しやすいです。
「世の中にツールはたくさんあるけど、自分にちょうどいいものがない」って、実は開発の一番自然な動機なんですよね。
そしてAIがある今は、その不満を自分で埋めに行ける。ここにAI時代の面白さがあると思います。

image_0006.png

まずは README に理想を書き、その後で constitution を作る

著者はまず新しい repository を作り、README.md に初期の product vision を書きました。
それから、AI に頼って constitution を作っていきます。

使った環境は Visual Studio Code + Claude Code plugin
つまり、AIを別画面の“チャット相手”として扱うのではなく、エディタの中でコード変更を確認しながら進めるスタイルです。

これも実務っぽくていいです。
AIに丸投げするのではなく、​エディタの中で変更を見て判断する
この“見ながら進める”感覚が、vibe coding から一段上の開発っぽさを生んでいます。

image_0007.png

AIに仕様書を作らせるが、最後は人間が読む

著者はまず、AIに以下の3ファイルを作らせます。

その際、AIには AskUserQuestion tool を使って質問させ、プロジェクトの方向性を詰めさせています。
つまり、AIが勝手に決めるのではなく、​不足情報を人間に確認しながら仕様を固める わけです。

image_0008.png

ここ、かなり重要です。
AI開発というと「自動化」が注目されがちですが、本当に価値があるのは自動化そのものではなく、​曖昧さを減らすことだと思います。
質問してくれるAIは、その意味でかなり実務的です。

著者はその後、できあがった仕様を自分で読み、必要なら修正し、さらに別の新しいAIセッションでレビューもさせます。
これはいわば 二重チェック です。

私ならここはかなり評価したいです。
AIは便利ですが、思い込みや抜け漏れも普通にあるので、​別視点での再確認 は大事です。
しかも「反省・振り返りが出力品質を上げる」という考え方も紹介されていて、ただの作業記録ではなく、開発の知恵としてまとめられています。

仕様を固めたら、いよいよ最初の機能へ

constitution が固まったら、次は最初の feature phase に進みます。
このアプリでは、まず MVP(最小実用版)​ として「Core Activity Logging」を実装します。

image_0010.jpg

この段階でできるようにするのは、ざっくり言うと次の通りです。

ここで大事なのは、いきなり全部を作らないことです。
SDD では、各 feature phase を

  1. plan
  2. implement
  3. validate

image_0011.jpg

の流れで進めます。

つまり、

という、かなり王道の進め方です。
ただしこの王道を、AI時代に合わせてちゃんと再設計しているところが新しい。

image_0012.webp

途中で止まって見直す「replanning」が重要

著者が特に強調しているのが、feature を1つ作った後の replanning です。
普通なら「次いこう!」となりがちですが、ここで一度立ち止まって constitution や既存の計画を見直します。

これ、地味ですがかなり重要です。
AIを使うと作業速度が上がるぶん、​間違った方向へ進む速度 も上がるからです。
だからこそ、途中で「今の方針で本当に合っているか」を確認する時間が必要になります。

個人的には、AI時代のプロジェクト管理で一番価値が出るのは、この 止まる力 ではないかと思います。
速く作るだけなら誰でもやりやすい。でも、速く作ってもズレていたら意味がない。
SDD はそのズレを減らすための仕組みとして、とても筋がいいです。

この記事が示していること

image_0013.webp

元記事が伝えているのは、単なる「AIでアプリを作ってみた」話ではありません。
むしろ本質は、

という点にあると思います。

つまり、これからの開発者は単に手を動かす人ではなく、

image_0014.jpg

になっていく、ということです。

著者が好んで使う agentic engineering という言い方も、かなりしっくりきます。
AIに全部任せるのではなく、​agent を指揮する
この“指揮者”としての役割は、今後ますます重要になるはずです。

まとめると、SDD は「AIに作らせるための大人な開発法」

image_0015.jpg

この記事を読んで感じたのは、spec-driven development は、AI時代の「ちゃんとした開発」を取り戻すための方法だということです。

vibe coding は速い。
でも速さだけでは、プロジェクトはだいたい壊れます。
その弱点を埋めるのが、仕様を先に作り、判断を残し、必要なら見直す SDD です。

個人的には、これはかなり本命の流れだと思います。
AIが強くなればなるほど、​仕様の価値 は上がる。
そして仕様を書ける人、見直せる人、守れる人が、これからの開発で強くなるのではないでしょうか。


参考: From Vibe Coding to Spec-Driven Development | Towards Data Science

同じ著者の記事