Spec Driven Development - バイブコーディングをさらに強力に
(ainativedev.io)はじめに
Kiro という IDE は、すでに GeekNews で取り上げられたことがあります。
ただし、この Kiro が志向する開発方法論の思想である Spec Driven Development(SDD) の観点からの紹介はなく、
Spec Driven Development を理解するのに適した動画が公開されていたため、これを紹介します。
Kiro
-
エージェント型 IDE: 自然言語で開発を支援しつつ、「スペックを第一級アーティファクト」として扱うバイアスを持つ IDE。
-
既存のエージェント IDE の「バイブコーディング(vibe coding)」の速度を活かしつつ、意思決定・仮定・制約をスペック文書として定義。
-
ワークフロー: アイデアを入力すると、すぐに requirements / design / tasks の3つのファイルを生成して開始。エディタは Code OSS フォーク上に「Specs / Hooks / Steering」タブを載せた形。
- Specs: 要件を構造化し(ユーザーストーリー + EAR 形式の受け入れ基準)、その後の実装・テスト・変更をスペックと接続。
- Hooks: ファイル/コードの変化を監視してスペックワークフローをトリガー。
- Steering: リポジトリルートの .kiro/ にルール(markdown)としてチームガイドをチェックイン—例: TDD ルールを入れてエージェントの動作を一貫化。
Spec Driven の必要性
-
バイブコーディングの限界を補完: チャットの往復で素早くコードを作ると、意思決定の根拠がチャットストリームに埋もれ、後から「何をなぜ作ったのか」が曖昧になる。SDD は振る舞い(behavior)中心の仕様を先に立て、安定したコンパスとする。
-
スペックの定義(振る舞い、属性、不変条件): 実装ではなく、システムがどのように振る舞うべきかを記述—安全性(safety)/活性(liveness)の属性、不変条件の概念を取り入れつつ、開発者フレンドリーな文法で扱えるようにしようという哲学。
SDD の利点
-
意思決定の可視化 & 再利用: スペックがコード変更の「出典」となり、レビュー・合意がしやすくなり、機能が変わっても意図(behaviors)が残る。
-
組み合わせ可能な生きたスペック: ユーザーシナリオ・受け入れ基準・インターフェース/データ契約・性能/SLAs などをモジュール化して再利用・合成可能(サービス→システムレベル)。
-
SDLC 全体への適用: 要求・設計の前段整列から、デプロイ後の課題のフィードバックループまで—AI 時代のコード生成速度の中でも、レビュー/品質/一貫性を確保しようという問題意識。
SDD デモ
- Main link に掲載された動画のデモ開始時点のリンクは、この URL を参照: https://youtu.be/olMxlFSxydc?si=sei-bBZ0Q0yszaWn&t=1085
SDD の流れ
A. 初期設定
- Project 設定 - Hooks, Steering, MCP
- TDD 設定(推奨)
- Spec 設定 - EAR 形式ベース(推奨)で Spec を作成(AI による既存プロジェクト分析から自動生成も可能)
B. 機能実装
- Spec 派生 - 新しい要件を Spec に反映/更新
- ガードレール設定(推奨) - テストスタブ、ルール作成
- 実装 <-> テスト - この区間は大半が AI によって反復実行され、AI がうまく修正できない小さなコード修正程度にのみ開発者が介入
- プロジェクト構成が完了した後は、「B. 機能実装」段階の反復で機能を拡張
注意事項
- Spec 文書の品質が基準レベルに達していない場合は動作しない。
- 動画内の Spec 文書の基準ルールは詳しく説明されていない。 (参考: https://kiro.dev/docs/specs/)
- TDD の使用は推奨されるが、TDD が適用されていないプロジェクトの多くは、この方法論から効果を感じられなかったとのこと。
個人的な評価
- AI をうまく活用するための、別の視点から提案された方法論の1つ。
- 常に「よく」書かれた文書には非常に多くの利点があります。ただし、かなり多くの文書が十分にメンテナンスされないという現実的な経験を踏まえると、どれだけ多くの人々の共感を得られるかが鍵のように思えます。
- 現時点で、AI + TDD の開発戦略は多くの開発者が共感する、ある程度検証された方法論です。TDD のみを独立して使った場合と、SDD を併用した場合の比較によって効果が検証されれば、さらに多くの共感を得られると思われます。
まだコメントはありません。