AI News HubLIVE
サイト内リライト3 分で読了

自分の頭を使え:LLM時代のエンジニアリング標準

LLMの普及により、ソフトウェアエンジニアは「バイブコーディング」の罠に陥り、コードの真の所有権を失う危険性がある。本記事では、コードの理解と所有権を維持し、厳格なエンジニアリング慣行と人間によるレビューの重要性を説く。

ソースHacker News AI著者: me2too

大規模言語モデル(LLM)の登場により、ソフトウェア開発は専門家だけのものではなくなった。誰でもAIを使ってソフトウェアを書けるようになったことは良いことだ。しかし、私は多くの熟練エンジニアが「バイブコーディング」(vibe-coding)の罠に陥っているのを目撃している。彼らは設計し、考え、実装するという従来のプロセスを放棄し、代わりに大量の質の疑わしいコードを高速に生成している。それは平均的なユーザーに期待されるものであり、資格のあるエンジニアの仕事ではない。

速度の罠

LLMは光速でコードを生成するが、この利点は適切に導かれなければならない。あなたのツールが個人のスクリプトから他人に使われるものに変わると、問題が発生し始める。LLMに修正を頼むことは、コードベースの制御を失う正確な方法だ。コード所有権の概念を考えてみよう:自分でコードの仕組みを説明し、バグを特定できるなら、それはあなたのコードベースだ。しかし、すべての編集をLLMに頼っていれば、ソフトウェアを管理しているのではなく、AIにもはや理解できないランダムなコードを操作させていることになる。

たとえ大規模なチーム開発であっても、速度だけが目標ではない。AI支援開発では、コミット内容、副作用、テストの更新、ベストプラクティスに細心の注意を払う必要がある。最終的に、LLMがコードを生成したとしても、あなたはその動作を説明できなければならない。安定した開発プロセスなしに単にLLMをすべての問題に投入すれば、コードベースは急速に制御不能になる。

所有権 vs. 保管権

あなたは単に速く動きたいのか、それとも保守可能でスケーラブルで安全で、本当に自分のものと言えるシステムを構築したいのか。純粋なカウボーイ(cowboy)は最速で結果を出すことだけを気にし、後は他人にコードのメンテナンスを任せる。これはスケーラブルではなく、コードを引き継いだ者はリライトを検討し、あなたの(実際にはあなたのものではない)設計判断を非難するだろう。カウボーイには所有権がなく、あなたは所有者ではなく保管人として行動している。所有者のメンタルモデルは異なる:システム全体のマップを頭に持ち、アーキテクチャの選定理由、エッジケース、モジュール間の依存関係を理解している。AIとの関係も健全で、LLMを生産性向上ツールとして使い、すべての出力をレビューし、コミットされたコードを一行ずつ説明できる。バグが発生した場合、原因となるコード領域を特定し、修正が全体に与える影響を理解した上で迅速に対処できる。

しかし、組織やプロジェクトは開発者に「速く、速く、速く」とプレッシャーをかけ、彼らを所有者から保管人へと静かに格下げしている。彼らはより速く動いていると思っているが、実際にはシステムの制御をAIに明け渡し、技術負債が遅れて襲いかかるのを待っているだけだ。

AIの正しい活用:インフラと新しいネットiquette

個人開発者も企業も、基本に立ち返り、強固なエンジニアリング慣行とガードレールを設定すべきだ。理想的な環境とは:共有目標に向かって働く人々、コミットされたコードの真の所有権、コード品質・安全性・長期的保守性を保証する構造化された環境でエージェントと人がシームレスに協働する。基本ルールはシンプルだ:人間とエージェントの役割と責任を定義し、カウボーイを禁止する。従うべき標準を設定する。開発者とエージェントがルールと標準を遵守するためのツールを整える。CI/CDですべてを強制する。人は人と話す。AI支援コーディングは適切な所有権のもとで行う。エージェント生成コードは人間がレビューすることを必須とする。人間が書いたIssueにAIの生出力で応答することを禁止する。

これは1980年代のネットiquette(初期のコンピュータネットワークとUsenetで生まれた)の復活だ。誰かが時間をかけて書いたものに対して、AIが生成したスラップ(slop)で返すことには私は激怒する。あなたも時間をかけて読み、適切な回答を書くべきだ。自分の頭を使え。

ツールに関しては、強いCI/CDが明白な提案だ:リンター、フォーマッター、プリコミットを使用し、テストスイートは人間がレビューし正確であることを確認する。さらに、AIのカスタマイズを活用する:明確なガードレールを定義したAGENTS.mdファイル、そしてエージェントの思考とツール使用を導く少数の人間が書いたスキル(skills)を用意する。

結論

AIは生産性向上のための増幅器である。良いエンジニアリング習慣を増幅すれば、品質を損なうことなく速度を生み出し、コードベースの真の所有権を保証する。怠惰を増幅すれば、ノイズでリポジトリを埋め尽くし、すぐに所有権のない保管人になってしまう。ツールを活用し、ワークフローを加速させよ。しかし、エンジニアとしての判断力を決して手放すな。自分の頭を使え。