システム開発, 受託開発

バイブコーディングとAI仕様駆動開発の違い〜「動くもの」と「壊れないもの」は別物だった

「バイブコーダーに発注したら、本番で火を噴いた」。

そんな趣旨の投稿が、最近よく流れてきます。数日で魔法のようにプロトタイプが立ち上がった。ところが本番に向けて仕様を足し始めた途端、直すたびに別の場所が壊れる「モグラ叩き」が始まった、という話でした。

AIを駆使した開発方法は様々ありますが、両者には明確な違いがあります。

  • 雰囲気重視の「バイブコーディング
  • 仕様をしっかり固めてAIの動作範囲を決めて進める「AI仕様駆動開発」

「AIで”とりあえず動くもの”を作る力」と、「現場で壊れずに動き続けるものを作る力」は、まったくの別物です。

両者の違いを改めて記事にすることにしました。

「速さ」は、本物だった

バイブコーディングという言葉が、この1〜2年で一気に広がりました。きっちり仕様を書かず、AIとの対話の勢いだけで、思いついたものをその場で形にしていく作り方です。

私も最初に触れたときは、正直、息をのみました。頭の中にあったアイデアが、数時間後には画面の上で動いている。手を動かす前に、もう触れる。これは魔法のようでした。

とくに、まだ世に出すかどうかも決まっていないアイデアを試すとき。

いわゆる試作品(プロトタイプ)づくりでは、この速さは何物にも代えがたい武器になります。私たちも、お客様との打ち合わせの場で、その場で画面を立ち上げて見せることがあります。言葉で30分説明するより、動く画面を5分さわってもらうほうが、話が早い。

だから、バイブコーディングそのものを否定する気は、まったくありません。むしろ、仮説を確かめる段階では強力な相棒なのです。

動くものと、壊れないもの

本番に向けて仕様を足し始めた途端、景色が変わります。

冒頭で触れた投稿も、まさにそこでつまずいていました。データの保存のしかたを一つ変えただけで、つながっていたはずの機能が次々とエラーを吐く。一つの画面を直すと、まったく関係ないはずの別の画面のレイアウトが崩れる。少し変わった操作をされると固まってしまう。直すたびに、別のどこかが壊れる。

これは、作り手の腕が悪いという話だけではない、と私は思っています。

「とりあえず動く」ことと、「現場で壊れずに動き続ける」ことは、設計の深さがまるで違うからです。

動くものは、決められた一本道をなぞれば動きます。けれど本番は、想定していない入力、同時に使う何十人もの利用者、後から足される仕様・・・道なき道の連続です。そこで効いてくるのが、何かおかしくなったときの逃がし方や、画面と画面のつながりをあらかじめほどいておく設計。表からは見えない部分こそが、壊れにくさを決めるのです。

プロトタイプとして見れば、よくできていた。けれど本番のシステムとして見ると、土台や仕組みが全く足りていない。そういう案件を、私は何度も見てきました。

「AI駆動開発」も、ピンキリだ

ここで一つ、整理したいことがあります。

「AIを使った開発」とひとくくりにされがちですが、その中身はピンキリです。

「AIで作りました」と言っても、勢いで書かせたものと、設計を人間が握ったうえでAIに作らせたものとでは、できあがるものの寿命がまるで違うのです。

前者が、いわゆるバイブコーディング。後者を、私たちはAI仕様駆動開発と呼んで、はっきり分けて考えています。

両者を分ける一番の境目は、技術の新しさではありません。

作っているもの全体の姿と、部品どうしのつながりを、資料として落とし込み、仕組み化できているか

ここに尽きます。

AIは、頼まれた部分を驚くほど速く書きます。けれど、システム全体をどう組み立て、どことどこが支え合っているのか・・・その地図までは、黙っていては持ってくれません。

地図を持たないまま部品だけを足し続けると、いつか必ず、つじつまが合わなくなる。

安く速くできる、という言葉だけで発注先を選ぶと、この地図を誰も持っていない現場に当たることがあります。それが、火傷の入口になりやすいと感じています。

堅いAI駆動開発に共通する、4つの条件

では、本番に耐えるAI駆動開発には何が要るのか。私が現場で大事にしているのは、次の4つです。

一つ目は、作り始める前に「完成の合格ライン」を言葉で決めておくこと。どう動けば正解で、どんな操作をされたら何を返すのか。これを先に書き出してから作ります。完成の基準を先に文章にしてから組み立てるこの進め方は、ATDD・BDDと呼ばれる考え方 に近いものです。

二つ目は、AIが安全に作業できる土台と手すりを、先に整えておくこと。よく使う部品をあらかじめ共通化しておく、危ない書き方は機械が自動で止める、といった仕組みです。AIに何でも自由にやらせるのではなく、走ってよい範囲を先に敷いておく。私たちはこれをハーネスエンジニアリング(暴れ馬を手綱でなだめるように、AIが安全に走れる制御の仕組みを先に設計する取り組み)と呼んでいます。

三つ目は、品質を最後でチェックするのではなく、工程の途中で確かめ続けること。コードを書くたびに自動で検査が走り、おかしければその場で気づける。最後にまとめて直そうとすると、直したこと自体が新しい不具合を生む・・・そんな無限ループに、はまらずに済みます。

四つ目が、いちばん大事かもしれません。全体の地図と部品のつながりを、人間が設計し、握り続けること。AIは優秀な作り手ですが、何を作るべきかを決めるのは人間の仕事です。ここを丸ごと預けた瞬間に、モグラ叩きが始まる。

派手な技術は要りません。むしろ地味なこの4つを、最初に手間をかけて積むかどうか。それだけで、半年後の景色が変わります。

私たちが現場でやっていること

こうした考え方を、テイルウインドの受託開発に落とし込んでいます。

中心にあるのは、業務でよく出てくる機能を、再利用できる「積み木」として育てておく発想です。会社ごとに毎回ゼロから作るのではなく、確かめ済みの積み木を組み合わせる。そのうえで、完成の合格ラインを先に決め、品質を工程の中で担保する。AIの速さを、整えた土台の上で安全に走らせるイメージです。

AIで「とりあえず動くもの」は、もう誰でも作れる時代になりました。だからこそ、価値の在りかが、静かに移っていくのだと思います。

速く作れること自体は、もう武器になりにくい。けれど、壊れたものを直し続ける苦しさは、AIがどれだけ進んでも変わりません。だからこそ、壊れずに使い続けられることにこそ、これからの価値が宿るのだと思います。

この変化は、発注する側と作る側の関係も、静かに変えていくのかもしれません。

「安く速く作ってもらう」関係から、「壊れないものを一緒に設計する」関係へ。

もし、外注したシステムの品質に心当たりや不安があれば。

あるいは、これからAIを使った開発を考えているなら。ぜひお気軽にご相談くださいませ。


よくある質問とその答え

バイブコーディングとAI駆動開発は、どう使い分ければいいですか?

試作品やアイデア検証など「捨ててもいい段階」は勢い重視のバイブコーディングが向きます。本番として使い続けるものは、設計を人間が握るAI駆動開発に切り替えるのが安全です。

どこまでAIに任せて、どこから危ないのですか?

部品単位の実装はAIに任せて大丈夫です。危ないのは、全体の構成と部品どうしのつながり(地図)まで丸ごと預けてしまうこと。ここは人間が握り続ける工程です。

“速いだけ”の作り手か、堅い作り手かは、どこで見極められますか?

「完成の合格ラインを先に決めますか」「全体の設計図は誰が持ちますか」「直したときの検査はどう回しますか」。この3つを尋ねて、言葉に詰まらないかどうかが一つの目安になります。

関連記事

お気軽にご相談ください

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

お問い合わせはこちら