受託開発

生成AIに「暴走」させない技術――仕様駆動開発という考え方

「ChatGPTにコードを書いてもらったら、思ってたのと全然違うものができた」という経験、ありませんか?

最近、ChatGPTやClaude、Geminiといった生成AIを使って、業務効率化やシステム開発に取り組む企業が増えています。確かに生成AIは便利で、簡単な指示を出すだけでコードを書いてくれたり、提案をしてくれたりします。

しかし、使ってみると「あれ? なんか思ってたのと違う…」という経験をされた方も多いのではないでしょうか。

生成AIは優秀ですが、時には「想定外の動き」をします。良かれと思って、こちらが頼んでいない機能まで追加してしまうこともあるのです。

今回は、そんな生成AIを上手にコントロールするための考え方のひとつ、**「仕様駆動開発」**についてお話しします。IT用語に馴染みのない方にも分かりやすく解説していきますので、ぜひ最後までお付き合いください。

生成AIは「創造的すぎる」ことがある

生成AIの素晴らしいところは、人間の曖昧な指示からでも「察して」動いてくれることです。たとえば「売上を管理するシステムを作って」と伝えるだけで、データベースを設計し、入力画面を作り、集計機能まで提案してくれます。

しかし、ここに落とし穴があります。

AIは「良かれと思って」、こちらが頼んでいない機能まで追加してしまうことがあるのです。たとえば:

  • 売上管理だけでよかったのに、グラフ表示機能や予測分析機能まで勝手に追加された
  • シンプルな入力フォームが欲しかっただけなのに、複雑な検索機能やフィルター機能がついてきた
  • 社内だけで使う想定だったのに、外部公開を前提とした認証機能が組み込まれていた

こうした「余計な機能」は、小規模なツールであれば「あ、便利かも」で済むこともあります。しかし、本格的なシステム開発になると話は別です。意図しない機能が増えることで、システムが複雑になり、結果として「使いにくい」「メンテナンスできない」という問題につながってしまいます。

これが、生成AIの「良くも悪くも創造的に動いてしまう」という特性です。

AIに「道」を示す――ガードレールという考え方

では、どうすれば生成AIを上手にコントロールできるのでしょうか。

そこで重要になるのが、ガードレールという考え方です。

ガードレールとは、AIが進んでいい範囲を明確にすることです。高速道路のガードレールと同じで、「ここまではOK、ここから先はNG」という境界線を引いてあげるのです。

ガードレールを引く方法はいろいろあります:

  • プロンプト設計: 指示の出し方を工夫して、AIが余計なことをしないようにする
  • テスト駆動開発: 先にテストを書いておき、そのテストに通るコードだけを生成させる
  • 仕様駆動開発: しっかりした仕様書をAIに読ませて、その範囲内で作らせる

今回注目したいのが、この仕様駆動開発です。

仕様書を作ることで、AIに「こういうものを作ってほしい」という明確な道筋を示すことができます。AIにとっての「地図」や「レール」になるわけです。

仕様書がAIの「地図」になる

では、仕様書があるとなぜAIをコントロールできるのでしょうか。

それは、曖昧な指示と明確な仕様書では、AIの動き方が全く変わるからです。

曖昧な指示の例

「在庫管理機能を作ってください」

この指示だと、AIは以下のような判断を「勝手に」してしまいます:

  • どんな情報を管理するのか?(商品名だけ? コードや単価も?)
  • どうやって在庫を増減させるのか?(手入力? 自動計算?)
  • 在庫が少なくなったらどうする?(何もしない? 通知する?)

結果として、AIは「たぶんこういうことだろう」と推測して、余計な機能を追加したり、逆に必要な機能を省いたりしてしまいます。

明確な仕様書の例

一方、こんな風に仕様を明確にするとどうでしょうか。

【在庫管理機能の仕様】
1. 入力項目
   - 商品コード(必須、半角英数字8桁)
   - 商品名(必須、50文字以内)
   - 在庫数(必須、0以上の整数)

2. 動作
   - 入力された情報を在庫テーブルに保存する
   - 在庫数が10以下になった場合、画面上部に赤文字で「在庫少」と表示
   - それ以外の場合は何も表示しない

3. 制約
   - グラフ表示機能は不要
   - 予測分析機能は不要
   - 検索機能は不要

このように細かく伝えると、AIは迷いません。

「商品コード、商品名、在庫数を入力できて、保存して、在庫が10以下なら赤文字で警告を出す。それ以外は何もしない」という明確な道筋ができるからです。

仕様書は、AIにとっての「地図」であり「レール」なのです。

仕様書を作っても、それだけでは足りない理由

ここまで読んで、「なるほど、じゃあ仕様書をしっかり作ればいいんだ」と思われたかもしれません。

実は、それだけでは不十分なのです。

なぜなら、AIは仕様書を「読み飛ばす」こともあるからです。

生成AIは優秀ですが、人間のように文章を丁寧に読むわけではありません。長い仕様書を渡されると、重要な部分を見落としたり、曖昧な表現を勝手に解釈したりすることがあります。

そのため、仕様書を作る際には以下のような工夫が必要です:

1. AIが理解しやすい形式で書く

  • 箇条書きや番号付きリストを使う
  • 1文を短くする
  • 「〜など」「適当に」といった曖昧な表現を避ける

2. 構造化する

  • 「入力」「処理」「出力」のように、セクションを明確に分ける
  • 優先度を明記する(必須、推奨、不要)

3. テストと組み合わせる

  • 仕様書だけでなく、「こういう入力をしたらこういう出力になるべき」というテストケースも一緒に渡す

4. 人間がレビューする

  • AIが生成したコードを、必ず人間が確認する
  • 仕様通りに動いているか、余計な機能が追加されていないかをチェック

テイルウインドでは、生成AIを使った開発において「AIが読みやすい仕様書フォーマット」を日々研究しています。まだまだノウハウは蓄積中ですが、基本的な考え方は共通しています。

仕様をAIが把握できる形で作り込むこと。

これが、生成AI時代のシステム開発において、ますます重要になってきているのです。

まとめ

今回は、生成AIを使ったシステム開発における「仕様駆動開発」という考え方についてお話ししました。

ポイントをおさらいすると、

  • 生成AIは便利だが、「暴走」するリスクもある: 良かれと思って余計な機能を追加してしまうことがある
  • ガードレールを引くことで、AIを制御できる: AIが進んでいい範囲を明確にすることが大切
  • その第一歩が「仕様駆動開発」: しっかりした仕様書を作ることで、AIに道筋を示す
  • 仕様書をAIが理解できる形で作ることが成功の鍵: ただ作るだけでなく、AIが読みやすい形式や構造を意識する

生成AIは確かに強力なツールですが、「お任せ」で使うのではなく、適切にコントロールすることで初めて、その真価を発揮します。

「生成AIを使ったシステム開発に興味があるけど、どう進めればいいかわからない」という方は、ぜひ一度ご相談ください。テイルウインドでは、AI開発の”ガードレール”設計も含めて伴走支援しています。

まずは無料相談からお気軽にどうぞ。一緒に、御社に合った生成AI活用の形を考えましょう。

関連記事

お気軽にご相談ください

ご質問やご相談がございましたら、お気軽にお問い合わせください。

お問い合わせはこちら