私は最近、私のエンジニアリングチームに交渉できない電話をしました。 私は開発者に、毎日コードを書く、再構築し、テストするためのワークフローにAI ボットを組み込むよう促している。現在の環境では、テクノロジーの世界は「手動のみ」のコードがバイクでF1レースに勝つように感じるようなスピードで動いている。 Using AI is no longer optional. しかし、もし私が完全に正直であるならば、この任務は私を信じられないほど不安にさせます。エンジニアリングの責任者として、私は「自動的な中途半端さ」の恐ろしい可能性とスピードの必要性をバランスをとっています。 Falling into “The Dead Loop” について 私が見ている生産性の最大の殺人鬼は、ツールの欠如ではなく、 私たちは皆、あなたがAIを信じるような催眠的トランスを経験しました。 完璧な解決から Dead Loop. 1 早い距離 通常はこんな感じです: AIは、正しいように見えるコードブロック(複雑なJava Spring Bootコントローラ)を生成しますが、実行時に失敗します。 エラーをAIに返す。 AIは監督に対して「謝罪」し、同じ破損した論理をあなたに与え、たぶん変数名または2つを交換します。 2時間経過するまで繰り返します。 この2時間の間に、経験豊富なエンジニアは、論理をゼロから書いたり、単位テストしたり、コーヒーを飲んだりすることができたが、「Dead Loop」は、仕事のように感じるから危険だが、実際にはただの高価な車輪回転である。 「Big Picture」を失う AI はマイクロのマスターですが、マクロの初心者です. それは数秒で欠陥のない regex または簡潔なヘルパー機能を書くことができます. しかし、その機能が私たちのアプリケーションアーキテクチャ全体の長期的なスケーラビリティにどのように影響するかについてゼロの概念を持っています. 開発者がコピーペストされたAIのスナップに過度に依存すると、コードベースは「フランケンシュタイン」プロジェクトのように見え始める - 個別に動作する部品のコレクションだが、まったく一緒に属さない。 そして、大量の それは今日では明らかにならないが、私たちが再現しようとしている時から1年後に私たちの生活を悪夢に変えるだろう。 Leaky Abstractions Technical Debt リーダーとして、私たちは一貫したシステムの構築をやめ、一連の無関係なスクリプトを単に「管理」し始めることを恐れている。 3 シンプルなルール 私たちのエンジニアリングの利点を明確に保つために、私はチームのすべての開発者が従わなければならない3つの「地上のルール」を確立しました。 1.高速インターンとして扱う AIを非常に速く、非常に熱心なジュニアインターンとして考えてください。インターンはあなたに長時間の仕事を節約することができますが、あなたはラインごとにレビューなしに彼らのコードを生産にコミットすることは決してありません。 If you can't explain what the AI wrote, you aren't allowed to merge it. タイトル:Let It Type, Don't Let It Think AI を使用して「機械的な」コード - 繰り返しのボイラープレート、データフォーマットを変換したり、Vue または Tailwind で基本的な UI コンポーネントを書く - しかし、アーキテクチャ的決定 - データベースのスケジュールやセキュリティ プロトコルの背後にある「なぜ」は、人間の脳から来なければなりません。 , not the . 労働 論理 3.10分ルール あなたがボットと議論したり、特定のバグの修正を「エンジニアに促す」ことを試みたりするのに10分以上費やした場合、 時には、「古い学校」のドキュメントを開き、自分で書く方法は、解決策への最も速く、最も信頼できる方法です。 turn it off. Bottom Line 「シニア・エンジニア」の定義が変化する時代に入りつつあるが、それはもはや単にシンタクスをどれだけよく知っているかではなく、安全でスケーラブルな結果を生成するためのツールのセットをどれだけよく指揮できるかという問題だ。 私は私のチームが世界で最高のツールを持っていることを望みます。私は私たちが市場で最も速いソフトウェアハウスになることを望みます。しかし、私は私たちが私たちの「エンジニアリング腸」を失わせることを拒否します。ボットを使用してコントロールを維持し、AIがあなたのために重い思考をすることを決して許さないでください。