HN 日本語サマリー

← 一覧へ戻る
プログラミング

AIなしの1ヶ月

One Month Without AI (blog.bustikiller.com)

188 pointsby saibotk228 コメント

要約

筆者は、自身が開発・保守するFOSSプロジェクト「LibreWeddingPlanner」へのAI貢献を拒否し、AIに対するスタンスを明確にしました。しかし、仕事ではAIを使い続け、その結果、自身がより愚かで、怠惰で、劣った開発者になっていると実感しました。AIコーディングエージェントの使用は、コードの理解度低下、過度な依存、集中力の分散、そして最終的には開発者としての能力低下を招くと筆者は警告しています。

全文翻訳

数ヶ月前、私が開発・保守しているFOSSプロジェクト「LibreWeddingPlanner」へのAI貢献はもう歓迎しないと決めました。AIによる貢献が多かったわけではありません。実際、これまでの貢献はすべて翻訳と機能リクエストでした。しかし、将来の面倒を避け、AIに対する明確なスタンスを取りたかったのです。しかし、FOSSへの貢献にはAIを使用していませんでしたが、仕事では使い続けていました。私の職場では、そして多くの開発者の友人たちの間でも、仕事にAIを使うことは非常に一般的です。ある程度の恥ずかしさを感じながら、この経験と、それが私をどのように愚かで、怠惰で、そしてより劣った開発者に変えていったかをお話しします。 甘い始まり 友人が「試してみるといいよ、とてもパワフルだと感じる。一度使い始めると、やめられなくなる。何日もかかっていたタスクが、数時間でできるようになる」と言いました。いいえ、コカインの話ではありません。ある程度はAIの使用を中毒だと考えていますが。 VSCodeの強化されたオートコンプリートを有効にし(あるいは自動で有効になったのか?)、他のコード生成モデルをダウンロードして使用するようになりました。 子供の頃、両親が「学校の門でキャンディーを配る悪い奴らに気をつけろ、あれはキャンディーではなくドラッグだ」と言っていたのを覚えています。20代の頃は、「ああ、まるでドラッグを無料で配っているみたいだね?」とからかっていました。30代になった今、彼らは本当にそうしているのかもしれないと思います。 AIコーディングエージェントを使い始めると、物事は非常に早く制御不能になります。最初は、AIに機能の実装を依頼したり、特定のコードのテストを作成させたりします。もしあなたが長年TDDの人間であれば、まずAIにテストを作成させる傾向があるでしょう。そうすれば、後でコードを書くことができます。しかし、あなたはもうコードを書かなくなります。AIにそれをやらせるだけです。TDDの目的の半分(コードの実装方法によってテストが偏らないようにすること)は失われます。しかし、あなたは非常に速く進んでいると感じ、気にしなくなります。 ある日、エージェントが私のコミットに署名しているのを見て、私はその設定からオプトアウトするために駆け込みました。まるで、そのコードが自分のものだと偽りたかったかのようです。なんてこった。 コントロールの喪失 そこで止まっていれば、それほど悪くはなかったでしょう。しかし、人間の脳のほとんどはそうは機能しません。もし何かを気に入って、それが2倍の量で手に入るなら、あなたはそれを手に入れるでしょう。 私はJiraのチケットの説明全体を貼り付け、AIにそれを実装させ始めました。やったー!!とてもパワフルだ!! 比較的慣れていないコードベースで作業していると、タスクを完了するために本当に必要な変更が何であるかを見失い始めました。AIがプロジェクトのすべてのコード行を読んだのだから、必要ならそれでいい、と思っていました。コントロールは幻想です。 他の人たちとこの件について議論しましたが、彼らも自分が本番にプッシュしているコードのすべてを100%理解しているわけではないと同意しました。20%も理解していないと bet します。マジで怖い。 しかし、それだけでは止まりませんでした。 小さなタスクがあったら、それをAIに与え、約30分でPRができました。その30分間、私は何をしていたのでしょうか? 集中力を変えていました。 すぐに、私は複数のエージェントを同時に、複数のgit worktreeで、異なるタスクで作業させることができることに気づきました。フルパワー!Tokenmaxxing! ACL(コマンドラインインターフェース)経由でエージェントをJiraに接続し、「別のworktreeでこのJiraチケットに取り組んで」と指示するだけでした。そして、それは作業を開始しました。私は恍惚としていました。 タスクがそれほど小さくなかった場合、あなたは私が自分で取り組んでいたと思うでしょう? とんでもない。もちろん、AIにそれをより小さなタスクに分解させ、それらに取り組ませるでしょう。AIはその後、私がよく理解していない変更の山を含む、非常に説得力のあるPRを提供してくれるでしょう。どうやって、私はその変更のコードレビューを依頼するつもりだったのでしょうか? 私の同僚はどう言うでしょうか? なぜ私がこれをしたのか、あるいはあれをしたのかと聞かれたら、私はどう言うつもりだったのでしょうか? それがすべてAIであり、私はAIの羊飼いに過ぎなかったことをどうやって認めるつもりだったのでしょうか? だから、私はコードを理解するように自分を強制しました。コードベースのアーキテクチャを理解したかったわけではありません。自分が何をしているのかわからないという屈辱を避けたかったのです。 ある時点で、AIエージェントが非常に多く稼働しており、コンテキストの切り替えが私には多すぎました。20分で簡単にできたはずのタスクが、AIエージェントには5分かかり、その後、私がレビューするのに2日かかりました。なぜなら、他にたくさんのことがあったからです。そして、AIやコンピューターはコンテキストスイッチが得意かもしれませんが、私はそうではありません。私は疲れ果てていました。 完璧に書かれたPRを承認するだけなら、それは良いでしょう。しかし、各PRについて、コード、テスト、スタイルを確認し、フィードバックを提供し、別のことに切り替え、戻ってきて、プッシュし、PRのコメントがないか確認し、CIがパスしたか確認し、待って、リンターが文句を言う。そして、文字通り1時間で完了できたはずのものを、2日かけて納品することになります。 私の個人的な経験では、AIのパフォーマンスが倍増することは単なる幻想です。倍増したフラストレーションと疲労は保証されます。 AIに与えたタスクで、そのままマージできたものは一つもありませんでした。 もちろん、コミットやPRの説明は自分で書いていません(これは2024年ですか??)。AIが私の代わりにやってくれて、7段落の説明で何をしたかを説明してくれました。私はその説明を読むのをやめました。つまり、私はそれをやれと言ったので、言われた通りにやったと仮定しました。説明は他の人のためです。説明がなければならないからですよね? AIはプロフェッショナルに聞こえるのが非常に上手なので、あなたはリラックスしてそれに任せてしまいます。実際、コードが良いと思っていたわけではありませんが、時間が経つにつれて説得され、怠惰になり、自己満足になります。あなたは疑問を持つことをやめ、なぜ悪いのかを説明できないという理由だけで、かつては決して受け入れなかったコードを良いものとして受け入れるようになります。あなたはコントロールを失いました。 ほとんどのAI開発者はそれを否定するでしょうが、心の奥底ではそれが真実だと知っています。ただ直視したくないだけです。 数ヶ月が経過し、ある日、私は数ヶ月間自分で一行もコードを書いていないことに気づきました。自分でコミットすらしていませんでした。何度もAIエージェントのチャットに「コミットしてプッシュして」と書いていました。一体何なんだ。それが怠惰でなければ、何が怠惰なのかわかりません。 AIは、私が与えたすべてのタスクを解決できませんでした。半分も解決できませんでした。 何度も、私はAIエージェントに「このパターンを適用して」とか、「仕様では、テストのセットアップをbeforeブロックに分離し、アサーションを別のブロックに追加してください」と言う必要がありました。まるでジュニアを指導しているかのようでした。誤解しないでください、私は指導が大好きです。何年もやってきましたし、指導者と被指導者の両方にとって良いことだと思います。しかし、機械を指導するつもりはありません、すみません。 しばしば、AIが書いたコードの品質が著しく低下していることに気づきました。最初から優れていたわけではありませんが、「おい、前にやったことだろう、なぜ再びそれができないんだ?」という感覚を得ました。だから、もう一度説明するようにプロンプトを出すか、私の好みを書いたファイルにリンクする必要がありました。 「なるほど、あなたの意味するところがわかりました。混乱させてすみません。もう一度やり直します。」そして、それは私が要求していたものではない、ひどい間違いを再び犯しました。 これは、Googleが検索結果の品質を低下させ、ユーザーに複数回検索させ、広告を数倍多く表示させるようにした戦略を思い出させました。もしそれがGoogleにうまくいったなら、AIにうまくいかないはずがないと思いませんか? 特にAI企業が経験している不確かな経済状況を考えると、彼らがそれをしないと思いますか? まさか。彼らはこれを、そしてそれ以上をやります。 他の日には、エージェントが30分間応答せずに停止しているのを見ました。どうすればいいでしょうか? あなたは自分でタスクを引き受けて作業したと思いますか? 絶対に違います。私は言葉による鞭を取り、権威的に、私の実際のコードを要求しました! AIエージェントはひどく謝罪し、30分で提供できなかったものを20秒で提供しました。トークン費用を見ると、それは全く何もせずに30ドルを費やしていました。もし私が請求書の支払い者だったら、完全に感じるでしょう。