AIは私たちをより自分らしくさせる
AIは悪いエンジニアを良いエンジニアにするのではなく、単に彼らを速くする。それは私たちの本質を変えず、私たちをより自分らしくする。怠惰またはずさんなプログラマーにとって、AIは低品質のコードの出力を加速し、AI自体が既存のパターンを疑問なくコピーする傾向があるため、技術的負債が固定化され大規模に拡散する。
AIは悪いエンジニアを優れたエンジニアにするのではなく、ただ彼らを速くする。それは私たちの本質を変えず、私たちをより自分らしくする。力の増幅器であり、良い意味ではない。
かつては、怠惰またはずさんなコーダーは自己制限的だった。彼らはゆっくりと動いた。怠惰であるがゆえに、大きな変更を加える動機がなかった。彼らのコードや構造は貧弱かもしれないが、生産性もまた貧弱だった。彼らの悪い判断の爆発半径は小さく保たれていた。今やAIエージェント(そして経営陣がその使用を迫る中)により、同じ人物が同じ判断力、同じ盲点を持ちながら10倍のコードを出荷する——ただより速く複合する。
これは最悪の意味での平等化である:価値に関係なく出力を引き上げる。
私はこれを仕事で、いくつかの大規模な共有リポジトリで目にしている。例えば、KubernetesワークロードのIAMロールを管理する中央リポジトリや、可観測性のためのサービス監視コードを管理する別のリポジトリなどだ。これらのリポジトリとパイプラインは中央で所有されているが、コードの所有権は分散されており、ディレクトリ構造によって断片化されている。チームが新しいサービスを追加する必要がある場合、一般的なアプローチは既存のサービスのコードを見つけ、それをコピーし、最小限の変更で動作させることだ。誰もそのモジュールがそもそも適切に設計されているかどうかを立ち止まって尋ねない——ただパターンを見てコピーするだけだ。これは何年も続いてきた。そして続けば続くほど、誰もがそれが正しいアプローチだと確信する——結局、誰もがそうやっているのだから。誰も自分たちがコピーのコピーを扱っていることに気づかず、元のソースがしっかり考え抜かれたものではなかったかもしれない。
AIはまさにそのワークフローに適合する。乱雑な共有リポジトリを指してサービスを追加するよう依頼すると、AIは怠惰なエンジニアとまったく同じことをする:最も近い既存の例にパターンマッチングしてコピーする。それは「このモジュールは本当に良いのか?」とは尋ねず、「ここには何があるのか?」と尋ねる。人間が最小抵抗の経路を取るように、AIは最小抵抗の経路をデフォルトとする。違いは、人間はそれについて罪悪感を感じるかもしれないが、AIは自信を持ってコピーを出荷することだ。したがって、AIは怠惰なエンジニアを速くするだけでなく、彼ら自身も怠惰なエンジニアのように振る舞う——エンジニアと同じように悪いパターンを破ることを避ける。それは技術的負債を永続させる。
結果として二重の打撃が生じる:悪いエンジニアは向上せずに速くなり、問題を修正するためのツールは既存の混乱を大規模に、自信を持って、人間がためらうかもしれない自己疑念なしに固着させる傾向がある。
(Rickyがこれを書きました。LLMは編集に使用されました。)