世界を動かす技術を、日本語で。

バイブエンジニアリング

概要

  • Vibe coding はAIによる即興的・無責任なコーディングを指す用語として定着
  • 対極にあるプロフェッショナルなAI活用手法を vibe engineering と提案
  • LLMやコーディングエージェントの進化で現場のエンジニアリングが大きく変化
  • AI活用には従来以上の 上級エンジニアリングスキル が求められる
  • vibe engineering は新たな開発文化の象徴として注目

Vibe CodingとVibe Engineeringの対比

  • Vibe coding :AIに丸投げし、コードの中身や品質を深く考えずに動けばOKとするコーディング手法
  • Vibe engineering :熟練エンジニアがLLMを活用しつつ、成果物に対して責任と自信を持つ開発スタイル
  • Vibe engineering は、AIを使いこなすための深い知識・経験・管理能力を前提
    • コーディングエージェント(Claude Code, Codex CLI, Gemini CLI等)の普及
    • 複数エージェントを並行稼働させることで生産性向上
    • 精神的な負荷は高いが、成果は大きい

LLM時代に求められる上級エンジニアリングスキル

  • 自動テスト の整備
    • テストが充実していればエージェントが安全にコード改修可能
    • テスト不足だとバグ混入や動作未確認のリスク増大
  • 事前計画・設計
    • 高レベル設計を先に作り、エージェントと反復的にプランを詰めるプロセス
  • ドキュメントの充実
    • LLMは全コードを一度に把握できないため、良質なドキュメントがAPI活用や実装生成の鍵
  • バージョン管理の徹底
    • 変更履歴の追跡やリカバリが容易に
    • LLMはgit操作も得意、バグ原因特定やbisectも高水準
  • 自動化・CI/CDの活用
    • フォーマット・Lint・プレビュー環境への自動デプロイ等の整備
    • LLMは自動化スクリプト作成も得意
  • コードレビュー文化
    • AI生成コードも人間同様にレビューし、品質担保
  • エージェント管理スキル
    • 明確な指示・文脈提供・フィードバックが重要
    • マネジメント経験が意外と役立つ
  • 手動QAの徹底
    • 自動テスト以外にエッジケース発見・検証能力
  • リサーチ力
    • 問題解決のための最適手法選定と検証
  • プレビュー環境の用意
    • 本番反映前に安全に新機能を確認可能
  • AI委任範囲の直感
    • どこまでAIに任せ、どこを人間が担うかの見極め
  • 見積もり力の再構築
    • AI活用で開発速度が大幅向上し、従来と異なる見積もりが必要

Vibe Engineeringの意義と文化

  • AIツールは既存のエンジニアスキルを増幅
    • 経験豊富なエンジニアほどAI活用の恩恵が大きい
  • Vibe engineering は"vibe coding"と明確に一線を画す概念
    • 責任感・計画性・品質志向のAI開発文化
    • 軽妙さと真剣さのバランスが特徴
  • 用語としての “vibe engineering” は冗談半分だが、現代的なAI開発の本質を捉える
  • “Coder”と“Engineer”の区分に否定的だが、この場合は意図的な区別が有効
  • AI時代の新しい開発者像、および開発現場の進化を象徴

Hackerたちの意見

より良い言葉は「拡張エンジニアリング」(AE)だと思う。エンジニアが最高の仕事をするためにインスパイアされる何かが必要だよね。AIの力を使って自分の能力を広げられるなら、確かに最高の仕事ができる。だから拡張エンジニアリングなんだ。でも、雰囲気を楽しむっていうのは、あんまり関係ないかな。AEは「先進エンジニアリング」の略にもなるかもね。AIが最新のエンジニアリング知識にアクセスして理解する力を与えてくれるから、それを自分の仕事に活かせるんだ。

より良い言葉は「拡張エンジニアリング」(AE)だと思う。特別な名前が必要だとは思わないよ。単にエンジニアリングだし。参考に本を使うときに「本支援エンジニアリング」なんて言わないでしょ。単なるエンジニアリングだよ。 > でも、雰囲気を楽しむっていうのは、あんまり関係ないかな。YOLOエンジニアリングって呼べばいいんじゃない?それか、機械にアウトソースした無責任なLMAOエンジニアリング。 > AEは「先進エンジニアリング」の略にもなるかもね。AIが最新のエンジニアリング知識にアクセスして理解する力を与えてくれるから、それを自分の仕事に活かせるんだ。ああ、もう。

何と呼ぶかについてあまり心配しなくてもいいと思うよ。特別なラベルを付けることで、AI支援のコーディングが一部の開発者だけのものだと仮定して、従来のエンジニアリングと区別されることになるから。いつかは、AIの助けなしにコードを書くのが珍しいアプローチになるだろうから、その過渡期には「雰囲気」を置き去りにすることになるよ。

ハトがランダムな報酬をおやつディスペンサーからもらうと、自分の行動に対する反応だと思って、いろんな面白いダンスや動きを始めるんだよね。

「テストを書く」とか「計画する」みたいな面白いダンス。

ソースが一つか二つ必要?「鳩が面白いダンスをするのを見る」っていうソーシャルメディアのスパムのせいで、グーグルで調べられないトピックだよ。

これはLLMの制限を乗り越えるための素晴らしい方法がたくさんあるように見える。でも、ここにいる人たちがどう思っているのか気になるな。キャリアのソフトウェアエンジニアの中で、LLMを使ってコーディングの生産性が10%以上向上した人いる?コードがあまり書けない人や新しい分野にいる人には、始めるのに大きな違いがあるのは分かるけど、やり方が分かっている人には、実際に動かすのが難しくて壁にぶつかることが多いと思う。時々はうまくいくこともあるけど、エージェントの出力を細かく管理しすぎることになって、結局面倒になることもあるし、コードの質を犠牲にすることもある。

アイデアのプロトタイピングにはすごく便利で、コストをかけすぎてコードに愛着が湧かないのがいいね。ゲームのチェンジログ用にインテリジェントな差分を生成することを試してたんだけど、どんな変更を強調するかのアプローチが見えなくて悩んでた。雰囲気コーディングの前は、実装を一つやってみて、かかった時間と出力を見て「まあ、これでいいか」と思ってたけど、雰囲気コーディングのおかげで、重い作業を自分で考えずに済んで、3つの異なるアプローチをプロトタイプできたんだ。それで、どの結果が他よりも魅力的かを感じ取ることができた。数分で動かせるようになったから、数時間かけるよりも、いくつかのアプローチを捨てるのも全然気にならなかったよ。

キャリアのソフトウェアエンジニアの中で、LLMを使ってコーディングの生産性が10%以上向上した人いる? いや、同じ地点に到達するのにただ努力を減らしただけで、もっとはやってないよ。

もっと向上してると思う(40年以上コーディングしてるからね)。結構いい結果が出てるし、プロンプトをうまく作ることが大事だと感じてる。技術的に結果がどうあるべきかを知っていると、大きな違いが出るね。AIと議論したり、自分でやったりすることが少なくなってきてるし。小さな生産性向上や生活の質を上げるスクリプトをたくさん作らせてるし、それがいろんなことをスムーズにしてくれる。コーディングよりも「ソリューションエンジニアリング」に向かっている気がして、解決策について考える時間が増えて、いろんなアイデアを試す余裕ができてるんだ。

私の経験では、微妙に間違ったコードを生成することが多いんだよね。デバッグに時間を無駄にしちゃう。でも、人間が書いたコードの例を与えて、それを説明してもらうと、結構いい説明をしてくれる。あと、「今までやったことない複雑なタスクXYZを達成したいんだけど、どうすればいい?」みたいな質問にも、正しい方向に進むためのコードサンプルをくれる。自分のコードをデバッグする手助けもしてくれるし、見逃してたことを指摘してくれる。アイデアを出し合うのにいいペアプログラマーみたいだけど、無監督でコードを書かせるのはちょっと信頼できないかな。

人々がその「ブースト」を自己報告するのが得意だとは思わないな。もっと実証的な証拠が必要だよ。歴史的に見ても、そういう研究を行うのがすごく苦手で、通常はものすごく高額だし。お金を持ってる人たちはエンジニアリングに興味がないから、FUDや生産性のハイプを広めるために他の動機があることが多い。個人的には、これらのツールが今よりもっと進むとは思えないな。グリーンフィールドプロジェクト以外のものには対応できず、常に望ましくない結果を出しちゃう。人々がどんな魔法の呪文やエージェントの組み合わせを設定しているのかはわからないけど、それを「エンジニアリング」と呼ぶなら、最近ではその言葉に意味があるのか疑問だよ。いつかこれらのツールがそこにたどり着くかもしれないけど、期待しすぎない方がいいよ。

Hacker Newsで議論の続きを見る