バイブコーディングについての真実、あるいは嘘

チョン・ドヒョン - ROBOCO首席コンサルタント
私は86年、Apple II——正確には、AppleのOEM物量を横流しして裏市場で流通させた「清渓川(チョンゲチョン)2号」でプログラミングに入門しました。95年から職業プログラマーとして働いてきたので、いつの間にか30年近くコーディングを続けてきたことになります。長い間、ソフトウェア開発にまつわる数え切れないトレンドの変化を経験してきましたが、バイブコーディングの登場ほど衝撃的な変化はありませんでした。昨年12月からは、バイブコーディングで実際のプロダクション開発を行っています。最近SNSを見ていると、このバイブコーディングに対する懸念と期待が入り混じっているように見えます。私の経験をもとに、この新しい現象について話してみたいと思います。
TL;DR
- バイブコーディングは単なるAI補助のコーディングではなく、人が問題を定義しAIが解決を主導する開発方式に近いものです。
- ソフトウェアの知識、問題の分解、テスト、アーキテクチャといった既存のエンジニアリング能力は、依然として重要です。
- 一時的な流行というより今後も発展し続ける流れであり、企業と開発者にはこれを理解して活用する姿勢が求められます。
第一に、バイブコーディングとはAIで開発することを指すのでしょうか? 当たっているとも、外れているとも言えます。数年前から開発者はすでにGitHub CopilotやChatGPTのようなAIを使ってきました。ただ、従来の方式が人主導の問題解決だったのに対し、バイブコーディングは人が問題を定義し、AIが解決までを担う方式です。自動車にたとえるなら、これまでの開発はマニュアルからオートマへ、そしてナビゲーションまで来た状態です。バイブコーディングは、目的地さえ告げれば連れて行ってくれる自動運転にもっと近いものです。
第二に、バイブコーディングは本当にソフトウェアの知識がなくても可能なのでしょうか? これもまた、そうでもあり、そうでもありません。AIはアルゴリズム問題のような比較的狭い範囲の問題を解くのに非常に効果的です。しかし一定規模を超えるプロジェクトでバイブコーディングがうまく機能するには、明確な問題定義と適切なコンテキスト境界の維持が不可欠です。現在のAIツールは、過度に複雑なコンテキストを扱うのが苦手です。したがって問題を適切に細かく分割する能力、すなわちソフトウェアエンジニアリングに対する基本的な理解は依然として必要です。この状態がどれだけ続くかはわかりません。LLMとバイブコーディングのツールが急速に発展しているからです。確実に言えるのは、現時点のバイブコーディングは、少なくとも大半の問題解決において、関数の単位を超えてマイクロサービス規模のコンテキストを処理することに何の問題もない、ということです。
第三に、バイブコーディングは過ぎ去る流行でしょうか? いいえ。すでにインターネットやスマートフォンのように世に出ており、私を含めバイブコーディングで開発をしている開発者は実際に大勢います。バイブコーディングの有用性はすでに検証されたものであり、流行のように消えることなく継続的に改善されていくでしょう。バイブコーディングを支える中核技術であるAIの性能も急速に発展しています。いまは難しいと感じる問題も、じきに解決されるはずです。今後バイブコーディングは、ソフトウェアだけでなくAIを用いて現実のさまざまな問題を解決する重要な道具として定着していくでしょう。もちろん悪用しようとする者も出てくるでしょうから、それに対する備えは必要です。
第四に、バイブコーディングは大規模開発には使えないのでしょうか? いいえ。現在はAIの性能上の限界がありますが、十分に解決可能な問題です。AIがうまく処理できる大きさに開発を分割すればよいのです。プロンプトエンジニアリングでAIが考慮すべきコンテキストを制限したり、いっそマイクロサービスへ移行したりするのも良い方法です。十分に可能であり、効果的です。重要なのは、一定規模を超えるプロジェクトでバイブコーディングを使うには、それなりの方法論とプロセスが必要だということです。
第五に、バイブコーディングはバグが多い? そのとおりです。しかし人が書いたコードも同じです。人であれAIであれ、規模が大きくなればバグは増えます。肝心なのは、バイブコーディングがうまく動く実装規模を保てるよう、細かく分割しながら開発を進めていくことです。SOLID原則の「O」にあたる、修正には閉じており拡張には開いている構造が、ここで真価を発揮します。また一方で、バイブコーディングにおいてもTDD(テスト駆動開発)は非常に有用です。ただし人のTDDがテストを先に書いてから実行コードを書くのに対し、AIはほぼ同時にテストと実行コードを作ります。こうして書かれたテストコードは、その後の変更に対する頼もしい防護壁になってくれます。
第六に、バイブコーディングはまったく新しい開発方式なのでしょうか? まだそうではありません。自動運転が登場しても自動車にハンドルが残っているように、バイブコーディングも既存のソフトウェア開発の優れたベストプラクティスを受け継いでいます。テストコード、SOLID原則、クリーンアーキテクチャ、DDD、CI/CD、静的コード解析といった既存のベストプラクティスは、バイブコーディングでもそのまま通用します。むしろAIがこれらの原則をより徹底して守れるようにしてくれるため、ベストプラクティスがもたらす利点を最大化できます。ただし遠からず、完全な自動運転車からハンドルが消えるように、バイブコーディングもコードそのものを見せない、あるいは隠しても問題のない水準へと発展していくと私は見ています。さらには、AIのためのプログラミング言語やフレームワークが登場する可能性すらあります。
最後に、バイブコーディングは大企業では使えないのでしょうか? バイブコーディングの普及は、クラウドコンピューティングの導入と似た様相を見せると予想しています。大企業の立場からすると、バイブコーディングを素早く導入するのは容易ではないでしょう。しかし時間が経つにつれ、コンプライアンスのような問題はクラウド事業者が解決策を提供してくれるはずです。技術に対するインサイトを持つ企業は可能性を確かめ、導入を急ぐでしょう。大企業に比べて身軽なスタートアップは、すでに速いスピードでバイブコーディングを導入しています。とはいえ、ビジネスの問題を定義し解決することは、依然として人の役割です。
まとめると、バイブコーディングは一時的な流行ではありません。まだ足りない部分はあるものの、非常に強力な可能性を秘めており、絶えず進化しています。重要なのは、これを理解し正しく活用できる私たちの姿勢です。