前回は「バイブコーディング」についてご紹介しました。
生成AIを活用することで、スピード感を持った個人開発やアプリのプロトタイプ開発が可能になる点を取り上げました。
今回は、さらに効果的にAIを活用して開発できる手法として提唱されている「仕様駆動開発」についてまとめてみました。
従来のバイブコーディングの自由さを否定するものではなく、その限界を補完するアプローチとして注目されています。
アプリケーションの開発にかかわっていると“仕様”という言葉をほぼ毎日耳にします。
「新しい機能を追加したいので、まずは“仕様“の整理からお願いします。」
「この部分の実装は”仕様”を満たしていますか?」
このような指摘をたくさん受けます。
仕様とは、
「システムがどのように振る舞うべきか」
「どのような条件や制約を満たす必要があるか」
といった“満たすべき要件や振る舞い”を定義したものです。
ユーザーのニーズを満たすことができるかどうか。技術的に実現可能かどうかについて注意しながら仕様を固めていくことで、最終的により良いサービスを生み出すことができます。
仕様駆動開発とは、「AI駆動開発」というAIが実装を支援する開発手法の中でも仕様を中心にとらえて開発を進めていく考え方です。
コードを書き始める前に、人間とAIがお互いに納得した仕様を定義して、その仕様を信頼できる唯一の情報源(ソースオブトゥルース)として開発を進めていきます。
この仕様は、単なる機能の説明だけでなく
- どのような条件で機能が動作するのか
- どのような入力を受け付けるのか
- どのような結果が返されるのか
など、システムの振る舞いを決定づける前提条件として扱われます。
更に、この仕様は実際の開発プロセスやファイル構成として具体化される点も特徴です。
開発者はアプリケーションで実現したい内容をまとめたものをプロンプト(指示文)に入力し、AIはそれをもとに仕様書や設計書の作成を支援します。
この段階で、機能の過不足や矛盾点はないかを開発者とAIとで確認しながら進めていきます。
仕様を開発の中心として捉えることで、これまで実装後に発覚していた考慮漏れや不具合が初期の段階で検出されるようになります。
その結果
- 実装後の大規模な修正が減る
- コードレビュー時の判断基準が明確になる
- テストケースの網羅性が向上する
などの効果が期待できます。
特に、コード量が増えるとAIは基準を見失いやすい特徴があります。
そのため、仕様という明確な判断基準を用意することは、人間とAIの双方にとって大きなメリットになります。
2025年9月にKDDIのグループ会社でシステム開発を手掛ける「KDDIアジャイル開発センター(KAG)」が仕様駆動開発を導入しました。
仕様駆動開発を実現するためのツールとして、AWSの「Kiro」や国産のオープンソースツール「cc-sdd」などがあり、KAGでは「cc-sdd」を使用する形で導入がされました。
(ツールの詳細については機会があれば個別に詳しく調べてみたいと思います。)
プリンシパルエンジニア吉田結城様曰く、
「AIに高度なコードを生成させるには、詳細な設計書をAIに与える必要があると考えていた。実証実験などを通じて、探していた手段が見つかったと感じた。」
「これまで人力では網羅しきれなかったテストケースも仕様書作成の段階から洗い出せるようになった。」
「実際に、実装後の手戻りがほとんど発生しなくなり、障害もほとんど発生していない」と大きな効果が見られたそうです。
仕様駆動開発の導入によって、ソフトウェア開発業務の内容は大きく変わると考えられています。
実際にKAGでは、これまで「設計2割・開発8割」だった業務内容が「設計8割・開発2割」になったそうです。これは単純にコードを書く量が減ったという意味ではなく、思考の主戦場が移ったととらえることができます。
AIが実装を支援する時代においては、「どのように書くか」以上に、「どのようにあるべきか」を定義する力が、エンジニアに求められる重要なスキルのひとつになりつつあります。
AIを使用することで、重要情報の漏洩などのセキュリティリスクや運営上の課題も伴います。そのため、公式に企業として開発手法を取り入れるにはそういったリテラシー教育やドキュメントの整備なども必要です。
しかし、仕様を中心に据えた開発プロセスを構築することで、既存サービスの品質向上や、新たな価値創出につながる可能性も広がっています。
生成AIと共存していくこれからの時代において、仕様駆動開発は、ソフトウェア開発のあり方を見直すうえでの、有力な選択肢のひとつになるかもしれません。
<<PREV


