0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SDDとは何か(ゼロから始めるAI駆動開発+Claude Code連載第22回/25回)

Last updated at Posted at 2025-12-22

ゼロから始めるAI駆動開発+Claude Code連載について

この記事は、アドベントカレンダーを1人で完走する試みの22記事目です。

「AIモデルの進化、AIツールの進化が早すぎて着いていけない…
「このままではいけないと思って学びたいけど、どこから手を付けたらいいか分からない…」
「そしてこの先、AIに仕事が奪われてエンジニアでいられるかも不安…」
といった悩みを解決するためのアドベントカレンダーです。

AI駆動開発の基礎、現時点でのデファクト・スタンダードと言えるClaude Codeの基礎から応用、AI時代のキャリア論からAI推進までを取り扱います。

SDDとは何か

業務でAI駆動開発を進める上で、欠かすことのできないキーワードがあります。
それは Spec-Driven Development(仕様駆動開発) です。
簡単に説明すると、「AIと共に仕様をしっかり決めてから、それに沿った実装をさせる」手法です。

バイブコーディングとの違い

SDDは、なぜ重要視されているのでしょうか。
背景には「急速に広がったバイブコーディング」の限界が、わずか数ヶ月で見えてきたことが挙げられます。

バイブコーディングとは、AIに対し自然言語を用いてvibe(気分)でコーディングすることを指します。

「あれ作って」「あれ直して」と指示するのは簡単ですが、設計をしっかりやっていないために保守性や品質に欠けるコードが生まれがちです。また、コンテキストウィンドウを超えないように圧縮処理が入ると、最初に指示した内容が忘却されて迷走することも多くあります。

そこで、伝統的な開発手法ウォーターフォールにおける上流工程、「要件定義」や「設計」が重要であると原点回帰の流れがありました。要件定義や基本設計のフェーズではしっかり仕様を言語化してドキュメントに落とし込みます。そのアプローチを擬似的に真似て、AIエージェントにまずは仕様書を書かせ、仕様書に沿った実装をさせる手法が徐々に広まりました。

Kiroの誕生

2025年7月、AWSから「Kiro」という革新的なIDEが登場します。
Kiroは従来のバイブコーディングにも対応していますが、革新的なSDDという概念を新たに持ち込みました。

公式ブログから紹介文を引用します。

こんな経験はありませんか。何度もプロンプトを入力すると、動作するアプリケーションができあがる。楽しくて魔法のように感じます。しかし、プロダクション環境に移行するには、それだけでは不十分です。アプリケーションを構築する際、AI モデルはどのような前提を置いたのでしょうか?あなたはずっとエージェントをガイドしてきましたが、それらの決定は文書化されていません。要件は曖昧で、アプリケーションがそれらを満たしているかどうかわかりません。システムがどのように設計され、その設計があなたの環境とパフォーマンスにどう影響するかをすぐに理解できません。時には一歩下がって決定事項を整理することで、より良くて保守しやすいアプリケーションにたどり着くことがあります。それが Kiro が仕様駆動開発で支援することです。

それがまさに先程紹介したような、仕様を決めてから実装をさせる手法でした。

適当なTODOアプリ作成を指示した、スクリーンショットをサンプルとして貼ります。

スクリーンショット 2025-12-22 23.54.29.png

  1. Requirements
  2. Design
  3. Task list

に分割され、そのステップごとに実装が進んでいく様子が分かります。

SDDツールの多様化

SDDという新たな概念を持ち込んだKiroですが、シェアを大きく伸ばすには至っていません。
なぜならKiroが登場した頃は既にClaude Codeが大きくシェアを占めており、Claude Codeのカスタムスラッシュコマンドやサブエージェントを利用することで、SDDを真似ることが比較的容易だったためです。
Claude Codeを中心に、各種AIエージェントツール向けにSDDを実現する以下ツールが登場しました。

これらツールを導入することで、簡単にSDDを実現することができます。

SDDが万能で、バイブコーディングは悪なのか

では、SDDが万能で、バイブコーディングは悪なのでしょうか。
結論、全然そんなことはないです。

実際SDDを試してみると、「結構大変」なことが分かります。仕様を言語化するのは難しいですし、ブレを少なくするためであるがゆえに、かなり細かい箇所まで自然言語で定義することが必要です。サクッと動くモックを作りたい場合や、表記修正といった細かな修正には向きません。

新規アプリ実装や新機能追加はSDDを中心とし、軽量の修正はバイブコーディングが向いているのではないでしょうか。もちろんプロダクト特性やチーム状況にもよるので、ケースバイケースにはなりそうです。

最後に

本日はSDDを紹介しました。
明日は同じくAWSから提唱された、AI-DLCについて解説します。

宣伝

Xやっています。
Claude CodeとAntigravity中心にキャッチアップして、たまにQiitaやZennで発信しています。
良ければフォローお願いします!

この記事は全て人間が書いています。一部画像生成はAIを利用しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?