Simon Willisonの記事を読んで、ちょっとモヤモヤしている。
Willisonは25年のキャリアを持つエンジニアで、「バイブコーディング」と「エージェンティックエンジニアリング」を明確に区別してきた人物だ。前者はコードを見ずに雰囲気でAIに任せるもの。後者はセキュリティや保守性を理解したうえでAIを道具として使うもの。自分もその区別、納得してた。
でも彼は最近こう言っている。「その区別が自分の中でぼやけてきた。かなり不快だ」と。
具体的には、Claude CodeにJSON APIエンドポイントを作らせたとき、もはやコードを一行一行レビューしていないらしい。「SQLクエリを叩いてJSONで返す、みたいなやつは普通に正しく作ってくる。テストも書く、ドキュメントも書く。わかってる、ちゃんとやってくれるって」と。
で、彼がその罪悪感をどう処理したかというと、「昔マネージャーをやってたとき、他チームのImage Resize Serviceを使うのにコード全部読まなかった。ドキュメント読んで、動かして、問題出たら掘り下げる。それと同じだ」という整理をした。
これ、読んだとき「あ、自分もそうなってきてるな」と思った。
最近、個人開発のリポジトリでClaude Codeにモデル切り替えの処理を丸ごと任せた。出てきたコードを眺めて「まあ動いてるし」で本番に出した。テストはCIで通った。でも自分はそのコードをちゃんと読んでいない。
これ、バイブコーディングじゃないか?
個人ツールだから「バグっても自分だけが困る」範囲ではある。Willisonも「個人ツールで自分だけが傷を受けるならバイブコーディングでいい」と言ってる。でも仮にこれがチームのプロダクトだったら?ユーザーのデータを扱う処理だったら?
Willisonが言う「deviance の正常化」って表現が刺さった。少しずつレビューをサボることに慣れていって、ある日「そういうものだよね」になる。それが一番怖い。
自分なりに整理すると、こういう判断軸がいまのところしっくりきている。
AIが書いたコードを「他チームのサービス」として扱うのはわかる。でもそれが成立するのは、「そのサービスが実績を積んでいる」場合だ。Claude Codeが「JSONをJSONとして返す」処理を正しく書くのは経験上わかってきた。でも認証まわりやトランザクション処理は?エラーハンドリングの端っこは?そこはまだ自分で確認する必要があると思っている。
要は、「このパターンはAIが得意かどうか」を自分の中に蓄積するしかない。それがないまま全部任せるのはただのバイブコーディングだ。
Hacker Newsでも279件のコメントがついて議論になってたけど、答えは出ていない。正直、出ないと思う。
自分は来週、直近でAIに書かせてレビューしていないPRを洗い出してみるつもりだ。どのくらいの割合か、数字で見てみたい。
Willisonは25年のキャリアを持つエンジニアで、「バイブコーディング」と「エージェンティックエンジニアリング」を明確に区別してきた人物だ。前者はコードを見ずに雰囲気でAIに任せるもの。後者はセキュリティや保守性を理解したうえでAIを道具として使うもの。自分もその区別、納得してた。
Claude Codeが「信頼できるチーム」になってきた
でも彼は最近こう言っている。「その区別が自分の中でぼやけてきた。かなり不快だ」と。
具体的には、Claude CodeにJSON APIエンドポイントを作らせたとき、もはやコードを一行一行レビューしていないらしい。「SQLクエリを叩いてJSONで返す、みたいなやつは普通に正しく作ってくる。テストも書く、ドキュメントも書く。わかってる、ちゃんとやってくれるって」と。
で、彼がその罪悪感をどう処理したかというと、「昔マネージャーをやってたとき、他チームのImage Resize Serviceを使うのにコード全部読まなかった。ドキュメント読んで、動かして、問題出たら掘り下げる。それと同じだ」という整理をした。
これ、読んだとき「あ、自分もそうなってきてるな」と思った。
自分のPRを振り返ると正直ヤバい
最近、個人開発のリポジトリでClaude Codeにモデル切り替えの処理を丸ごと任せた。出てきたコードを眺めて「まあ動いてるし」で本番に出した。テストはCIで通った。でも自分はそのコードをちゃんと読んでいない。
これ、バイブコーディングじゃないか?
個人ツールだから「バグっても自分だけが困る」範囲ではある。Willisonも「個人ツールで自分だけが傷を受けるならバイブコーディングでいい」と言ってる。でも仮にこれがチームのプロダクトだったら?ユーザーのデータを扱う処理だったら?
Willisonが言う「deviance の正常化」って表現が刺さった。少しずつレビューをサボることに慣れていって、ある日「そういうものだよね」になる。それが一番怖い。
どこに線を引くか、自分なりに考えてみた
自分なりに整理すると、こういう判断軸がいまのところしっくりきている。
AIが書いたコードを「他チームのサービス」として扱うのはわかる。でもそれが成立するのは、「そのサービスが実績を積んでいる」場合だ。Claude Codeが「JSONをJSONとして返す」処理を正しく書くのは経験上わかってきた。でも認証まわりやトランザクション処理は?エラーハンドリングの端っこは?そこはまだ自分で確認する必要があると思っている。
要は、「このパターンはAIが得意かどうか」を自分の中に蓄積するしかない。それがないまま全部任せるのはただのバイブコーディングだ。
Hacker Newsでも279件のコメントがついて議論になってたけど、答えは出ていない。正直、出ないと思う。
自分は来週、直近でAIに書かせてレビューしていないPRを洗い出してみるつもりだ。どのくらいの割合か、数字で見てみたい。