【えすでぃーでぃー】

SDD(仕様駆動開発) とは?

公開:
💡 設計図が完璧なら、職人(AI)が家を建ててくれる
📌 このページのポイント
SDD(仕様駆動開発)の流れ 仕様書 (唯一の真実) AI / ツール (コード生成) コード +テスト (自動生成) 他の 〇DD との違い TDD テスト → コード BDD 振る舞い → コード SDD ★ 仕様書 → コード DDD ドメイン → 設計
SDDのイメージ:仕様書を起点にAIがコードを生成する
ひよこ ひよこ
SDDって聞いたことあるんですが、どんな開発スタイルですか?
ペンギン先生 ペンギン先生
仕様書を一番最初に書いて、それをもとにコードを作っていく「仕様書ファースト」な開発スタイルだよ。仕様書がコードの唯一の正解になるんだ。
ひよこ ひよこ
TDDと何が違うの?TDDもテストを先に書きますよね?
ペンギン先生 ペンギン先生
TDDはテストを先に書いて、それをパスするコードを後から書く。SDDは仕様書を先に書くんだ。仕様書はテストよりずっと広くて「どう動くべきか」を詳しく文書化するよ。
ひよこ ひよこ
仕様書ってどんなふうに書くんですか?
ペンギン先生 ペンギン先生
「このAPIはこういうリクエストを受け取って、成功したらこう返す、エラーならこう返す」みたいに詳細に書くよ。最近はYAMLMarkdownで書いてAIに渡すことも多いね。
ひよこ ひよこ
AIと組み合わせると何かいいことがあるの?
ペンギン先生 ペンギン先生
すごく相性がいいんだ!詳細な仕様書があればAIが高品質なコードを生成しやすくなるし、「何を作るか」が明確なのでAIのハルシネーションも減るよ。
ひよこ ひよこ
デメリットはありますか?
ペンギン先生 ペンギン先生
仕様書を書くこと自体が難しいんだよね。曖昧な仕様書からは曖昧なコードしか生まれないし、最初に完璧な仕様を書こうとして、スタートが遅れることもある。
ひよこ ひよこ
アジャイル開発とは相性が悪そう…?
ペンギン先生 ペンギン先生
完全に相反するわけじゃないよ。「スプリントごとに仕様書を書いてからコードを書く」という組み合わせもできる。AIコーディングが普及した今、SDDへの注目が改めて高まってるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SDD」って出てきたら「仕様書ファーストの開発スタイル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Specification-Driven Development」 = 仕様駆動開発
💬 Specification(仕様書)を原動力(Driven)にしてDevelopment(開発)を進めるという意味だよ
← 用語集にもどる