バイブコーディングという地獄
AIに全てを任せた危険な実験
Claude Code(月100ドル)に課金し、バイブコーディングに挑戦してみました。
(バイブコーディングとは、AIに振動的に高速でコードを生成・修正させ続ける開発スタイルです。)
今回は危険を承知でAWSの認証情報まで渡し、デプロイも含めて完全にAI任せにするという実験を1か月間行いました。
結論から言うと、最初の1週間は天国、その後は地獄でした。
最初の1週間
初週の生産性はとても良かったです。
エラーが出ても、そのままClaudeに投げれば瞬時に解決策を提示し、修正までしてくれます。UIデザインも仕様書を渡せばモダンなコンポーネントが次々と生成されました。
うまくいったコードはGitHubにコミットし常に良い状態をキープするようにしてました。
AWSへのデプロイもAI任せ。1週間でデモアプリが完成し、多少のバグはあったものの、ちゃんと動作していました。
そして訪れたデグレ地獄
しかし、2週目から雲行きが怪しくなりました。新機能を追加するたびに、「デグレ」が頻発するようになったのです。
最も辛かったのは、AIの自信満々な態度です。「修正完了しました!完璧に動作するはずです」と言われて確認すると、全く直っていない。これが何度も繰り返されると、精神的にかなり疲弊します。
コードを確認してみると、確かに8割方はちゃんと動いているのですが、残り2割で謎の実装をしていることがあります。例えば、同じ処理を微妙に違う方法で複数箇所に書いていたり、不要な依存関係を追加していたり。
ちょっとマシな地獄
このようなことがあり、最初はソースコードを一切見ずに進めていましたが、途中から確認するようにしました。するとデグレ地獄が解消されるようになりました。(というかここらへんはAIに頼るより人がやったほうが速いのでは)
ただ開発速度は大きく下がったため、バランスが難しく感じました。
(結局開発は楽になったのだろうか。)
バイブコーディングとの付き合い方
この経験から学んだのは、バイブコーディングは「プロトタイプ作成」や「概念実証」には最適だということです。
しかし、本番運用を見据えた開発では、以下の工夫が必要でしょう:
- 定期的な人間によるコードレビュー
- 重要な部分は設計書を書く
- デグレが起きたら、その日の作業を一旦止めて原因究明
AIとの協働は確実に開発を加速させる部分はあります。しかし、完全に任せきりにすると、後で大きなツケを払うことになります。バイブコーディングは強力な道具ですが、使い方を間違えると振り回される。そんな1ヶ月でした。時間は早くなるのですが、ストレスはたまるなあと思いました。
やはり銀の弾丸はないんだなあと思いました。
参考記事
Discussion
AIがあればジュニアエンジニアはいらないと言う人がいますが、まだ必要そうですね。
amazonのkiro(有料)やそれをもとに作られたcc-sddを使用してみてはいかがでしょう。いわゆる仕様駆動開発のためのツールです。
正直、リファクタのような具体性の強いタスクしかAIに任せることができていません。そのリファクタも、自分自身で答えは見えててあとは手を動かすだけ、みたいなものです。
なんだかんだ管理工数だけ増える印象があるので、面倒かかる子の世話を見る親のような気持ちがないと使えない気がします。愛です。
地獄? 疑獄? の感想よくわかります。
バイブコーディングが決して悪いわけじゃないけど、ContextWindowやToken量を考量したうえで、明確な仕様を伝えて(ゆるぎないLLMとの契約)交わさないと、いくらTemperture=0に設定しても、LLMはよかれと思って、コードの追加や修正をおこなっちゃいますね。
私の現時点での使い方は、少数メソッド単位ぐらいの小さなモジュールにわけて、常にLLMへ自己レビューを掛けて、コードの劣化や、暗黙の修正を必ず明確に提出させるようにしてます。 でもコッソリ修正は0に抑えることはまだできません。
AIとの付き合い方、作法をこちらが把握してないというだけのような。人間の方のバージョンアップも必要に思います
本当にこれだと思う。社内向けツールならもうAIで良い
売り物作るなら流石にプロの手が欲しいけど…