「仕様駆動開発」と「AI駆動開発」って結局何が違うの?を自分なりに整理してみた
最近、AIを使った開発の話でよく「仕様駆動開発(SDD)」「AI駆動開発(AIDD)」という言葉を見かけます。正直最初は「どっちも似たようなものでしょ」と思っていたんですが、いくつか企業のブログを読み比べてみたら、実はけっこう指しているものが違っていました。せっかくなので、自分なりの理解として整理してみます。
AI駆動開発(AIDD)ってどんなもの?
AI駆動開発は、開発の工程全体(要件定義から設計、実装、テスト、ドキュメント作成まで)にAIを関わらせよう、という大きな考え方です。人間が手を動かす部分をAIにどんどん任せて、自分は「これで合ってるか」の判断とか、アイデア出しに集中する、というイメージです。
たとえば休日に「ちょっとしたTODOアプリを作ってみようかな」と思い立ったとき、AIに「こんな機能がほしい」「ここはこう直して」と話しかけながらその場でコードを生成してもらう、いわゆる「バイブコーディング」も、このAI駆動開発のひとつのやり方です。思いついたことをそのまま形にできるので、個人の小さな開発とは相性がいいなと感じます。
仕様駆動開発(SDD)ってどんなもの?
一方で仕様駆動開発は、コードを書き始める前にまず「仕様書」をきちんと文章にまとめて、その仕様書を唯一の基準としてAIに指示を出していく、というやり方です。
イメージとしては、会社の基幹システムに機能を追加するときに、「この機能はこういう条件でこう動く」「こういうときはエラーにする」というのを先に文書にまとめて、それをAIに渡してコードを作ってもらう、という感じです。仕様書があるので、後から見返しても「なぜこの作りになっているか」が分かりやすいのがポイントです。
つまり、AI駆動開発という大きな枠組みの中に、仕様駆動開発という具体的なやり方が含まれている、という関係になります(この整理は複数の記事で共通していました)。
何がどう違うの?
比べてみると、こんな違いがありました。
①開発のスタート地点:AIDDは「ちょっと話しかけてみる」ところから始まることが多く、SDDは「仕様書を書く」ところから始まる
②できあがるものの安定感:AIDDは指示の出し方次第でブレやすく、SDDは仕様書が基準になるので安定しやすい
③向いている場面:AIDDはプロトタイプやちょっとした改修、SDDは基幹システムのような長く使うもの
ざっくり言うと、「とにかく早く形にしたいならAIDD、きちんとした品質や引き継ぎのしやすさが大事ならSDD」という住み分けです。
結局、どう使い分ければいいの?
各社の記事を読んでいて面白かったのが、「どっちか一方を選ぶ」のではなく、フェーズごとに使い分けるという考え方でした。
①まずは試作の段階でAI駆動開発を使ってサクッと形にしてみる
②方向性が固まってきたら、仕様駆動開発に切り替えてしっかり作り込む
という流れが、実際の現場でもよく使われているそうです。個人開発でも、最初はAIとどんどん会話しながらプロトタイプを作ってみて、良さそうだったら仕様を固めて作り直す、という進め方はしっくりくるなと思いました。
まとめ
自分なりに整理すると、AI駆動開発は「AIを使った開発全体の考え方」、仕様駆動開発は「その中の、仕様書を起点にする具体的なやり方」という理解に落ち着きました。
これから個人開発やちょっとした自動化にAIを使うときも、「今はスピード重視でいいのか、それとも仕様を固めてから進めるべきか」を意識して使い分けてみると、AIとの付き合い方が少し変わってきそうです。
参考記事:仕様駆動開発とAI駆動開発の違いとは?AI活用開発の2大潮流を比較表付きでわかりやすく解説(hblab.co.jp)/AI駆動開発と仕様駆動開発の違いとは?使い分けを解説(kaopiz.com)
