背景
「仕様さえ渡せばAIが実装できる」という期待が開発現場で高まっている。こうした文脈で注目されるアプローチを、本稿では仕様駆動開発(SDD)と呼ぶ。仕様を先に定義し、それを基準に実装・検証を進める開発スタイルである。
SDDでは仕様の品質が成果物の品質を直接左右する。AI活用開発ではプロンプトが事実上の仕様となるため、この性質がより先鋭になる。人間同士で暗黙に共有される前提は、AIとの間では同等には共有されない。
フロントエンドでは仕様の完全化が構造的に難しい
SDDの前提は「正確な仕様」だが、フロントエンドではこの前提を満たすことが難しい。
仕様が言語化しにくい
フロントエンドの要件の中心はUI・インタラクション・UXであり、言語だけで仕様化しにくい。ステークホルダーから挙がる要件は、しばしば次のようになる。
- 「使いやすくして」
- 「自然な動きで」
- 「直感的に」
こうした要件は仕様に落とし込みにくい。実際に動くものを見てはじめて「意図と違う」と判断されることも多く、事前の言語化だけでは仕様が完結しない。
デザインへの依存が強く変更も多い
フロントエンドの仕様はデザインに強く依存する。デザイン自体が繰り返し更新されるため、仕様の確定がデザインの確定を前提とする構造になりやすく、仕様が安定しない。
仕様で網羅しきれない変数が多い
UIの状態遷移は組み合わせが多く、全パターンを仕様で網羅することは現実的でない。「ドラッグ中にホバーした要素」「フォーカス遷移中にモーダルが開いた状態」のように、仕様に記述されていない組み合わせが実装段階で頻繁に現れる。ブラウザやデバイスなど実行環境の差異もあり、仕様の完全性だけでは吸収しきれない。
デザインシステムは一部を仕様化しやすくする
デザインシステムが整備されていれば、仕様化できる範囲は広がる。AIへの指示でも「Buttonコンポーネントのprimary variant」のように、構造化された語彙で仕様を伝えられる。
| 観点 | デザインシステムなし | デザインシステムあり |
|---|---|---|
| コンポーネントの仕様 | 都度定義が必要 | 既定のものを参照できる |
| デザイントークン(色・余白等) | 曖昧になりやすい | 数値で仕様化できる |
| インタラクションパターン | 言語化が難しい | 共通定義として参照できる |
| UXの文脈判断 | 仕様化しにくい | 依然として仕様化しにくい |
ただし解決できるのは構成要素レベルの仕様化に限られる。コンポーネントの組み合わせや文脈に応じたパターン選択は、デザインシステムがあっても仕様化しにくい。