AIロックスター開発者の後始末
本記事は「ロックスター開発者」という存在と、AI(LLM)が生成するコードの類似性を論じています。ロックスター開発者は高度な技術を持つが、保守が困難なコードを残して去り、その後のチームに負担をかけます。AIツールも同様に、短時間で大量のコードを生成し、システムの複雑性を増大させます。著者はAIを慎重に利用し、エンジニアリングの主導権を保ち、シンプルさを重視することを推奨しています。
ロックスター開発者と一緒に仕事をしたことがある人は多いでしょう。彼らはチームに加わった当初、エネルギーに満ち溢れ、新しい技術やパラダイム、アーキテクチャの素晴らしいアイデアを持っていました。その最先端のアイデアは他のメンバーを時代遅れに感じさせました。彼らはコアアーキテクチャを書き換え、新しいビルドプロセスやツール、言語を導入し、ほとんどのプルリクエストを却下して基準を引き上げました。誰も彼らのコードを理解できませんでしたが、それを認める者はいませんでした。最も困難なタスクはすべてロックスターに割り当てられ、彼らは誰よりも速く完了させました。数年後、彼らは飽きて、より挑戦的なプロジェクトを求めて去っていきました。
彼らの去った後、他の開発者がプロジェクトを引き継ぐと、コードの理解に苦しみました。データの流れを追うのは難しく、バグを修正するためにラップトップでコードを動かすだけでも一週間かかりました。半分のコードは未知の言語で書かれ、残りは聞いたこともないライブラリを使用していました。上司にコードのリライトを提案しても、ロックスターが書いたという理由で信じてもらえませんでした。
私は多くのチームやエージェンシーで、こうしたロックスターの後始末を手伝ってきました。実際、私は乱雑なコードベースを理解し救出するという挑戦が好きです。それは絡まったストリングライトの箱をほどいて再び使えるようにするようなものです。その過程で、ロックスターには共通のパターンがあることに気づきました。彼らはコーディングと新しいパラダイムを学ぶことを愛し、常に自分の能力の限界に挑戦し、最も賢いコードを書きますが、他人が扱いやすいコードを書くことにはほとんど関心がありません。
現在、人工知能が同様の問題をもたらしています。新しいチャットを開始するたびに、チームにロックスターを追加するリスクがあります。AIエージェントは昨日のことを覚えておらず、数分で数万行のコードを生成し、システム内の他のコードとの整合性や理解しやすさを考慮しません。AIはおそらく適用できないベストプラクティスを主張し、複雑さがメリットを上回る場合でも「念には念を」の方法を強制します。コードレビューを依頼すると、多くの不同意な改善点を列挙します。基準が引き上げられ、多くの開発者がLLMを使わなければ遅れを取ると感じています。しかし、最終的に取り残されるのはLLMにすべてのコードを書かせる人々だと私は信じています。
生成されたコードが多すぎると、システムの複雑さは指数関数的に増大し、理解する唯一の方法はLLMを使うことになります。開発者、チーム、企業全体が生成AIに依存し中毒になる可能性があります。
数百のAIロックスターの後始末は、一人の人間のロックスターの後始末ほど楽しくありません。少なくとも人間のロックスターには何らかの設計意図があり、最善を尽くそうとしていました。しかし、バイブスコードで生成されたコードは、異なるチャットやコンテキストで作成され、多くのロックスターが一つずつ機能やバグ修正を追加したようなものです。技術的負債は時に返済不可能なほど蓄積されます。
長持ちするソフトウェアを構築するには、LLMをロックスターのように振る舞わせない方法があります。エンジニアリングを主導し、LLMに小さなスニペットを生成させることで、チーム全員が理解しやすいコードを書くことができます。もしLLMの動作が理解できなくなったら、ブレーキを踏んでください。スピードを落とし、品質を確保し、過剰なエンジニアリングを防ぎ、アーキテクチャを問題の複雑さに合わせて簡素化することが重要です。時にはLLMをツールボックスにしまい、自分でコードを書くことも必要です。職人技は常に私たちの手にあり、機械に外部委託できないものです。