はじめに
藤井聡太八冠がハマっていると話題の「バイブコーディング」。AIと対話しながら高速で実装を進めるこのスタイルは、実務の現場でも強力な武器になりつつあります。
私もGASツール開発等で取り入れていますが、やってみて痛感するのは 「AIは完璧ではない」 という現実です。AIの指示通りに書いたが動かない、意図とズレた結果——そんな時、前に進めるのは、「元エンジニアとしての知見」でした。(現在はディレクターとして開発に関わっています。)
本記事では、GASツール開発の実体験をもとに、AIにはどこを任せて、人間は何を判断すべきか、バイブコーディングを成功させるための 「勘所」 を紹介します。
バイブコーディングの3つのポイント
バイブコーディングは「全自動」ではなく、「AIとの対話」から成果物を得る営みです。3つのポイントを押さえることでバイブコーディングの質を高めていきましょう。
1. 成果物の「解像度」を極限まで高める
バイブコーディングにおいて、最もエネルギーを注ぐべきは「プロンプト入力の工夫」ではなく、その手前の 「成果物のイメージの具体化」 です。
自分の中で成果物のイメージがぼんやりとしたまま、「いい感じに作って」と指示を投げても、返ってくるのは無数の「コレジャナイ」成果物だけです。手書きのメモでも構いません。まずは 「出力される画面やデータの形」 を明確に定義できているかが、とても重要です。
しかし、最初から完成系のイメージが見えていることは多くありません。そこで1つ目のポイントです! AIを「コーダー」としてではなく「要件定義のパートナー」として使うこと です。
1-1. GASでのツール作成の実践例
例えば、「スプレッドシートのA~C列の情報をいい感じに出力したい」という曖昧な状態なら、あえてそのままAIに相談します。
自分:「スプレッドシートのA~C列の情報をいい感じに出力したい。」
AI: 「どんな「いい感じ」に出力したいのかを教えてもらえますか?例えば:
- メール送信したい
- Slack通知に流したい
- 別のシートに整形して出力したい
- etc...」
自分: 「報告用の資料として使いたい。」
AI: 「いくつか確認させてください。
- 出力形式について
a. メールに添付して送信したい
b. Slackに投稿したい
c. etc...- レイアウトについて
a. シンプルな表形式で良いか
b. etc...- タイミングについて
a. 毎日・毎週など定期的に出力したいか
b. 手動で出力したいか」
このように対話を重ねることで、「報告用の資料として整形したい」→「ではレイアウトは?」→「タイミングは?」と、必要なピースが埋まっていきます。
バイブコーディングにおける第一の仕事は、コードを書きはじめることではなく、 AIとの対話を通じて「成果物のイメージの具体化」 なのです。
2. 一度に頼み過ぎない、繰り返しで成長させる成果物
ある程度具体的なアウトプットのイメージを伝えたことで、GASのプログラムが生成されました。指示通りに、実行してみると、報告書のような成果物が表示されます。
【週次報告書】今日の日付
- 案件1
- 案件2
- 案件3
イメージを伝えて、コードが出てくる。
「一発で動いた。素晴らしい!」と思ったけれど、よく見ると実務で使うには足りない点が見えてきます。リストの中身が、 リリース済み や 開発待ち が一覧になっているので、結局手作業で分類し直さなければならず、使えるレベルにはなっていません。
自分:「A列に状況が書いてあるから種別ごとにまとめて下さい。また、『開発待ち』は報告書に載せなくていいから除外して下さい。」
AI: 「修正完了です!変更点は...」
AIは即座に修正してくれます。出力されたコードを貼り付け直して実行!
これぞ、 バイブコーディングの真髄 です。
手軽に修正を指示して、出力されたコードを反映、即座に確認を繰り返すことで、クオリティがUPします。
【週次報告書】今日の日付
## 【リリース済み / リリース待ち】
- 案件1
- 案件2
## 【開発中】
- 案件3
## 【開発待ち】
- 案件4
「あれ?『開発待ち』が消えていない……」
AIに複数の指示を一度に渡すと、いくつかの指示を見落とすことがよくあります。場合によっては混乱して、関係のないところを修正し始めることも。
AIとの対話は、一つずつ丁寧に。 これが結果的に、素早く理想の成果物にたどり着く近道となります。
3. AIも「散らかった部屋」では仕事ができない
AIとのキャッチボールを繰り返し、ついに理想通りの動作をするツールが完成しました。「動いた!大成功!」 と感じる瞬間です。
個人的には、動いているのだから完了!としても、悪くはないと思います。しかし、完成したコードをよく見てみると、D列のデータを読み込んでいるのに結局使っていないなど、意外な「無駄」が潜んでいるケースがあります。確かに、今の規模ならそれでも動きますし、動くなら最小のコストで最大の成果です。
AIは、渡されたコードの中に「使われていない死にコード」があったとしても、それを「必要なもの」として解釈し、律儀に整合性を取ろうと努力します。その結果、不要なコードが雪だるま式に増え、AIの思考(コンテキスト)を圧迫し始めます。
だんだん指示を出しても「AIが指示を聞かなくなった」「別の場所が壊れるようになった」というケースが頻発し挫折してしまう人も多いのではないでしょうか?
多くの場合の要因はキャパオーバーです。
- AIへの指示が積もり積もって、何をすべきか整理できなくなった(=キャパオーバー)
- コードが肥大化しすぎて、何をすべきか整理できなくなった(=キャパオーバー)
(1)のケースは、指示出しを初期化することで解決するケースが多いですが、(2)は深刻です。
そこで必要なのが、 定期的な「コードの再整理(リファクタリング)」 です。
3-1. コメントで「AIの道しるべ」を作る
再整理といっても、我々が血眼になってコードを解読する必要はありません。ここでもAIを頼ります。
プログラムの中にある「コメント」は、人間だけでなくAIにとっても重要な「要約」になります。
もしコードの内容がわからなければ、 「この処理のコメントを追記して」 と依頼しましょう。コメントさえ読めば「ざっくり何をしているか」が把握できることで、人もAIもコードの意図が把握しやすくなります。
3-2. ファイルを分割して「ひと口サイズ」にする
1つのファイルに「データの取得」「計算」「メール送信」「Slack通知」など、あれやこれも詰め込まれていると、AIも処理に難儀します。
そんな時は、 「このファイルを機能ごとにリファクタリング(分割)して」 とお願いしてみましょう。
- format.gs: ただの整数を「N円」に変換する処理、日時を日付に変換する処理
- main.gs: 全体の流れを制御する処理
このように、例えば「変換処理」だけを別ファイルに切り出すだけでも効果があります。
人間が読みやすいコードは、AIにとっても読みやすいコードです。
「適切な分割単位(ひと口サイズ)」 に保つこと。これが、バイブコーディングで大きなシステムを作り切るための、もっともエンジニア的な、そして賢い戦略です。
おわりに
バイブコーディングの本質は、高速なタイピングでも、複雑な構文の暗記でもありません。それは 「AIという優秀だけれど、完璧ではないパートナー」 と、いかにうまく付き合うかというコミュニケーションの技術でした。
「成果物の解像度を高める」「少しずつ育てる」「部屋を片付ける」。これらはすべて、エンジニアが頭の中で行っていた「設計と管理」そのものです。コードを書く実作業がAIに置き換わった今、私たちに求められているのは、まさにこの 「コミュニケーションスキル」 なのかもしれません。
思った様に動かなくても、諦める必要はありません。AIと適切なコミュニケーションをとることで、きっと解決できます。
かつてプログラミングは限られた技術者の特権でしたが、バイブコーディングは、アイデアを持つすべての人にその扉を開きました。ぜひ、あなたもAIと共に、新しいモノづくりの世界へ飛び込んでみてください。
