本動画は、AI時代においてエンジニアリングがより重要になるという主張を展開したものである。AI がコード生成を可能にしても、動作するコードと設計されたシステムには大きな違いがあり、エンジニアの責任は削減されるのではなく拡大されているとする。投機的なコーディングとエンジニアリングの本質的違い、新たに生まれるエンジニアリング分野、人間に求められるスキルについて詳細に論じ、AI 時代のエンジニアリング三原則を提示している。

エンジニアリングへのラブレター
これはエンジニアリングへのラブレターや。わしは AI がエンジニアリングをより重要にするもんやと固く信じとる。それを詳しく説明したるわ。エンジニアやない人たちがこれを理解してへんと思うし、ジュニアエンジニアたちがますます恐れとるからな。
彼らは大規模でシニアエンジニアと働くのがどんなもんか詳しく経験してへん。わしはある。シニアエンジニアと働いたことがあるし、プリンシパルエンジニアとも働いとる。技術仕様書をレビューする時に、めちゃくちゃ強いエンジニアの頭脳や、そのコレクションが部屋にあるのがどんな感じかわかっとる。
この動画で、なんでわしがエンジニアリングという学問分野がどこにも行かへんと強く確信しとるか話したい。実際、もっと踏み込んで言うたるわ。エンジニアリングは AI 時代前よりも今の方が重要やと言う。
恐怖は現実やが、それは逆さまや。そうや、確実に。定型コードは自動生成できる。それは疑わへん。いつも見とる。そうや、AI は自然言語から動作するコードを書ける。それは本当や。でも動作するコードと設計されたシステムは全く別世界や。
同じもんに近くもない。実際、多くの人がそれを知ったんは、友達や家族向けにはローンチできるかもしれんが、実際のプロダクションには準備できてへんシステムをバイブコーディングする時や。
エンジニアリングが今より重要になる理由の一つは、まさに AI がコードを書けるからや。AI が君のためにコードを書いてくれる時、AI 生成の失敗の爆発半径は指数的に高くなる。
やから置き換えられてるわけやない。エンジニアは置き換えられる危険にあるわけやない。エンジニアは AI に対して、AI と共に、AI とのパートナーシップでより大きな責任のポジションに就くよう求められとるからや。それについては後で詳しく話すが、わしはそれを主張として示したい。声に出して言わなアカンと思うからな。
わしの立場はこうや。エンジニアリングがどう機能するか理解してへんエンジニアは、AI 時代で確実に役割を失うやろう。正直言うて、彼らの多くは以前にも役割を失っとったやろう。
エンジニアの才能格差
わしがいろんなエンジニアと仕事してきて面白いのは、エンジニア間の才能ミックスがどれだけ変動するかがわかることや。同じレベルのエンジニアでも、実際の能力やビジネスへの影響において世界が違う。エンジニアと働いたことがある人なら誰でも同じこと言うやろう。
わしがアマゾンで働いとった時のインターンが、そこで知ってたシニアエンジニアより多くの仕事をして価値を提供した。ただそういうもんやった。彼はやる気があって、素晴らしい課題があって、何かをプロダクションに入れることができて、良い仕事をした。言うまでもなく、彼はオファーをもらった。
要点は才能は変動するということや。才能は常に変動してきた。エンジニアリングが困難で才能が変動するという事実を、AI がエンジニアリング分野に与える影響と混同してはアカン。
AI からエンジニアリング分野への影響は確実にある。この動画の残りで詳しく話すが、AI イコール エンジニアリングに悪いという単純な話やない。それが主に見てるもんやから、うんざりしとる。やからエンジニアリングへのラブレターとして動画を作ってるんや。
バイブコーディングと民主化の誤解
最初の部分に取り組もう。AI 生成コードについて話した。このバイブコーディングの部分について話そう。人々はバイブコーディングがエンジニアリングを置き換えると話しとる。
今や誰でも lovable.dev に意図を話しかけて、動作するソフトウェアを手に入れられる、少なくともそれがアイデアや。AI ツールは、コードの民主化を生み出すより、訓練されたエンジニアに乗数効果を生み出すと主張したい。
コードを民主化するのは知ってる。今まで全くコーディングしたことない人がコーディングできるようになったのも知ってる。でもエンジニアはもっとできるようになった。
エンジニアは建築的意図を運ぶ専門知識をもっと簡単に圧縮できる。基礎的な技術システムを理解してるからや。エンジニアやない人は、正直言うて、チャットボットを手に入れてバイブコーディングする能力を得た時、わしは彼らがモノを作るのを見たが、首を吊るのに十分なロープを頻繁に手に入れるのも見た。
エンジニアはコーディングが持つ制限を理解してる。コードを読む方法を理解してる。システムコンポーネントがどう連携するか理解してるから、結果として速く進める。エンジニアやない人が首を吊るロープを手に入れるなら、エンジニアはロケット燃料を手に入れる。
やからデジタル格差は、コーディングできる人からエンジニアリングできる人へと急速にシフトしとる。そこで一旦止めたい。実際、わしは従来のコンピューターサイエンス背景の人だけがエンジニアリングできると信じてへん。
ソフトウェアコンポーネントがどう組み合わさるかを理解してるなら、それがますます重要なスキルや。システムを効率的にエンジニアリングできるなら、バックエンドがフロントエンドとどう連携するか理解してるなら、セキュリティの観点から攻撃面がどんなもんか理解してるなら、ソフトウェアをプロダクションに移行する方法、その要件がどんなもんか理解してるなら、これらはコンピューターサイエンスでだけ学ぶスキルやない。
実際、多くのエンジニアは彼らがコンピューターサイエンス専攻でそれらを学ばなかったと言うやろう。彼らは古典的なコンピューターサイエンスを学んだ。エンジニアリングは頻繁に現場で学んだもんや。
でもそれはソフトウェアエンジニアだけに限定されたもんやない。多くの人がエンジニアリング原則を学べる。わしが観察したのは、ソフトウェアエンジニアがバイブコーディングで速く進む理由の一部は、彼らがすでにそれらを自分の中に取り込んでるからや。
エンジニアリングの原則を自分の中に吸収してるから、それがネイティブに感じられる。それが本当の差別化要因や。コンピューターサイエンスの学位を持ってるからやない。JavaScript や TypeScript やその他すべてを知ってるからやない。エンジニアリングの方法を知ってるからや。
それは励みになる。AI 時代に効率的に構築する方法を学ぼうとしてるなら、エンジニアリングのスキルを学ぶだけで速くできるということやからな。
新しいエンジニアリングスキル
この AI 移行を通じて多くのエンジニアと働いた経験から、わしが新しいエンジニアリングのコアスキルとして見てるもんをいくつか示したい。
AI コーディング部分から移って、この動画で探求してるエンジニアリング領域の他の部分に入る前に、効果的なプロンプティングはエンジニアリングスキルやということを残したい。わしはコースを教えたことがある。効果的なプロンプティングのコースを教えた。
ますます、これは認めたがらへん真実やと思う。効果的なプロンプティングは、ある程度のエンジニアリング理解を必要とするエンジニアリングスキルや。エンジニアリング理解が多いほど、プロンプティングは効果的になる。
人間の責任とは何か
バイブコーディングの感覚から、エンジニアリングへの恐怖を取り除くことから、変わらへんと思う人間の責任、まだエンジニアにある責任に移ろう。これらの一部は Amazon、Google などの大規模システムでエンジニアにより多く求められるもんもあるし、小さなチームでもまだ機能するもんもある。
でも人間の責任をここで呼び出したかったんは、AI の責任について多くの時間を費やして話すが、人間の構成要素についてはあまり話さへんからや。人間の構成要素は、コードを x 倍に乗算する時により重要になってるとわしは主張する。
一つ目は、意図を正しい仕様に翻訳するのは人間の責任や。不変量を名付ける、危険を名付ける、成功基準を名付ける、人間のニーズをシステムの端と境界に翻訳する。何かができるかどうかだけでなく、何かをすべきかどうかを決める。
大企業で働いてるなら何十億人の人々に影響を与える可能性があるシステムの重みを担ってる。やから意図を仕様に翻訳するということは、AI システムが持たへん程度の身銭を切ることを含んでる。
二つ目に呼び出したいのは、人間が確率システムに対して保証を書く責任があることや。AI は大規模では行動的に機能的確率システムや。常に X や Y やない。大規模では確率や。尤度を契約に変えてるんや、システムをエンジニアリングしてるなら。
結果を保証できなアカン。端を保証できなアカン。セキュリティをある程度保証できなアカン。基本的に、人間の仕事の多くは、これらの確率システムを取って、維持できる契約をそれらに対して書くことや。
やから確率的やなく決定論的な境界を作れなアカン。パイプライン全体で大規模に機能する確率予算を定義せなアカン。絶対に起こってはアカンことが本当に起こらへんことを確実にせなアカン。これはわしがスケールについて多く話したが、小規模でも真実や。
ChatGPT は同じプロンプトを与えても同じ応答をくれへん。微妙な違いがある。エンジニアとしての君の仕事、エンジニアリングの役割は、そのような変動がシステムにとって有害でないことを確実にすることや。
大規模に考えるのも人間の責任や。非常に大規模なフットプリントまでスケールアップした時の創発的行動を理解せなアカン。これは大企業特有やと思う。でも 1 億台のボックスでの創発的行動を理解するのは独自のスキルセットや。
非常に少数の人間が持つ人間スキルセットや。アルゴリズムがボトルネックになる時と、どこでボトルネックになるかを知るのは人間スキルで、それは本質的に AI とのリスクに関わってくる。AI はコードを削除するよりコードを書く方がはるかに得意や。
大規模で本当に良いエンジニアと見るもんの一つは、何を削除できるかを知ってることや。システムが大規模でどう動作するかを直感できること、複雑なシステムで安定から混沌への相転移がどこで起こるかを直感できること。プリンシパルエンジニアがそれをやるのを見た。
それは素晴らしいスキルや。人間スキルで、彼らが処理してる何兆ものイベントのために 10 億分の 1 のイベントが実際に定期的に起こることを効果的に扱う方法を理解してることを意味する。
そのスケールで働いたことのないエンジニアなら恐怖を感じさせたくない。これがわしがエンジニアリングで話してる非常に大きなスキル配列のうちの一つだけやということに気づくやろう。わしの意図は、1 億台のボックススケールで働くエンジニアだけが生き残ると伝えることやない。
代わりに、AI がこれらのシステムを理解する助けをますます提供しても、それがエンジニアリングの非常に人間的なまま残る一面やということを呼び出そうとしてる。
最後に呼び出したい人間スキルは経済的エンジニアリングや。知能をユーティリティのように管理できなアカン。レイテンシ、品質、コストをトレードオフを通じて最適化できなアカン。追加の制約があっても価値を優先する劣化した体験を設計できなアカン。
非効率がどこで重要で、どうマージンに影響するかを理解できなアカン。特にトークンが知的でトークンがお金のかかる時代に、システムをエンジニアリングせなアカン。どうやって知能を経済的に、コスト効率的に提供するか?それは人間スキルで、スケール不変のスキルや。小規模でもそれを気にすべきや。
新しいエンジニアリング分野の出現
人間の責任についていくつか話したが、愛してるエンジニアリング領域を巡回しながら、新しい分野が生まれてることについても話したい。エンジニアリングが変わってるのは絶対に真実やからで、そうやないふりをしたくない。
やからわしが AI 時代でエンジニアリングがシフトし始めてる方法をいくつか提案して、それを見た後で人間スキルに戻って再検討しよう。
セマンティックエンジニアリング、それは新しい分野や。データフローやなく意味フローをどうデバッグするか?インジェクション攻撃に対してセマンティックファイアウォールをどう構築するか?今日もちょうど新しいインジェクション攻撃を見た。誰かが ChatGPT の名前フィールドを使ってプロンプトインジェクションができるやつや。
インジェクション攻撃はあらゆる形やサイズで来る。人々は今、Reddit ボードで白い文字を白い背景に置いてインジェクション攻撃を入れることができる。システムが君のプロンプトと読んでるコンテキストコンテンツを区別できへんからや。
エンジニアがこの問題に対処する方法を見つけるのはエンジニア次第や。適切に行動を拒否するシステムを設計するのもエンジニア次第や。そして、それはモデルメーカーだけやない。これらのシステムをインストールするエンジニアも同様に行動する責任がある。
境界エンジニアリング。エンジニアは LLM の確率的世界とソフトウェアに期待する決定論的世界の間の空間を設計せなアカン。一貫したと感じるインターフェースを作らなアカン。そして、すべてのインターフェースが AI によってその場で作られるわけやないと言うために出て行く。そうやないと思う。
人間の機関を保持する方法で人間-AI 境界を維持できなアカン。エンジニアリング責任の一部として、大規模なソフトウェアでの人間と LLM 協力の間の境界をマッピングする方法を見つけることがますます重要になってる。
メモリと知識エンジニアリングも別の分野や。AI システム障害の組織的メモリをどう構築するか?データやプロンプト、さらにはモデル重みを厳密にバージョン管理するにはどうするか?コンテキストウィンドウを経済的に管理するにはどうするか?セマンティック法科学をどう構築するか?プロダクションにあるシステムで、事前に完全にデバッグできなかったシステムをどうデバッグするか?
それが安全性と保証エンジニアリングに繋がる。ライブ評価文化をどう作るか?危険と軽減策と監査の証拠変更の間の明示的なマップを持つ安全ケースをどう構築するか?敵対的入力を前提として設計するにはどうするか?システムが確率的な時に、システムが何を考えてたかをどう示すか?
これらが新しいスキルなのには理由がある。完全な答えはまだ持ってへんが、今日のエンジニアは、わしが話したコアエンジニアリングスキルセットを使って、AI 時代でこの種の問題を攻撃するよう求められてる。
人間スキルの再確認
これらの新しいエンジニアリングスキルが出現してる世界で、本当に目立つ人間スキルを再検討して聞いてみよう。最初にいくつか話した。意図から仕様への重要性について話した。確率システムとそれらに対してどう保証を書くかについて話した。大規模で考えることについて、経済的エンジニアリングについて話した。
スケールに関係なく、これらの新しいエンジニアリング分野のどこにいても役立つ他の人間スキルがある。新しいもののフレーバーを与えたかった。そして同じままのものに戻ってきた。
システム直感は同じままや。良いエンジニアはボトルネックを感じる。解決する問題を感じる。創発的障害を認識する。
共感はエンジニアリングスキルや。共感はマシンが必要とする精度と人間が扱う曖昧さの間の橋渡しを必要とするからや。効果的に、それが AI 時代でわしらみんながやってることや。共感は何百万のユーザーが君の API をどう誤用するかを理解することを必要とする。人間の性質を考慮するシステムを構築する方法を理解することを必要とする。
不確実性下での判断。それも別のエンジニアリングスキルや。非常に不完全な情報で高価な決定をすることを必要とする。完璧よりも十分良いがいつ勝つかを知ることを必要とする。ちなみに、これは本当に良いシニアエンジニアの区別する特徴の一つや。制約内で適切なトレードオフを選ぶことを必要とする。ランダムさがいつ役立つか対役に立たへんかを決めることを必要とする。
別の人間スキルは複雑性の統制や。実際に機能して価値を提供する複数の LLM を含む知能のシンフォニーを指揮するためにツールチェーンを調整できなアカン。コンポーネントが事前に書かれた契約をますます持たへん分散システムを管理できなアカン。
セマンティック構成性が従来のソフトウェアエンジニアリングの規則に従わへんことを理解せなアカンし、それらを作る手助けをせなアカン。統制する複雑性がたくさんある。
エンジニアリングの観点から複雑性を統制することは常にあった。今はより困難になってる。
なぜこれがすべて重要なのか
なんでわしがこれを書いてるんか?なんでこれがすべて重要なんか?真実は、エンジニアがいなかったら、わしらは本当に困ったことになるということや。賭けが今まででもっとも高い。AI は大規模で失敗を出荷することを非常に簡単にする。
わしが言った通り、システムはオープンインターネットからの段落の指示を受け入れるようになる。攻撃ベクターはすごく高い。モデルの劣化は警告なしに全くシステムを破損する可能性がある。
現実は、LLM が言語を話せて確率的で知能を活用できるこの野生の世界を認識せなアカンということや。エンジニアがそれを運用可能で安定したプロダクションシステムに格闘して入れる手助けをする。それらのシステムに観察可能性を持ち込む手助けをする。それらのシステムをデバッグする手助けをする。それらのシステムに適切なエネルギーと計算フットプリントを見つける手助けをする。
エンジニアは最終的に文化的建築家や。人間の判断を保持するワークフローを設計する手助けをする。AI 推論を検査可能にするインターフェースを構築する手助けをする。うまく設計されてるなら自動化バイアスとスキル萎縮を防ぐ手助けをする。
最終的に、無知を認めなアカンシステムを構築できるから、尊厳を維持する手助けをする。エンジニアは今、責任が少なくなったんやなく、多くなってる。それがわしが君らに一緒に座って考えてもらいたいテイクアウェイの一つや。
AI 時代のエンジニアリング三原則
AI 時代のエンジニアリングの新しい三つの法則として提案するもので終わりたい。わしがこの三つを選んだのには理由がある。
一つ目、何が不変かを書けへんなら、システムをエンジニアリングしてへん。これはバイブコーディングとエンジニアリングの根本的違いを捉えてる。AI 時代では、LLM は正しさやなく尤度を与えるということを理解せなアカン。
やから不変量、変わらへんもんが、エンジニアリングとギャンブルを分けるもんや。多くのバイブコーダーはギャンブルしとる。確率的コンポーネントが予期しないことをする時に生き残る性質を考えさせる。レジリエンスエンジニアリングをすることを強制する。
動作させることと動作の意味を定義することの違いや。正しく見えることとここで常に真でなければならないことの間の違いや。
エンジニアリングの第二法則とでも言うか。プロダクションで測定できへんなら、本当に構築してへん。これは AI が可能にするデモ文化を超えることを必要とする。プロトタイプを生成するのは本当に簡単になった。
今や AI はデモをほぼ無料にするが、プロダクションは違う。プロダクションは本当に変なことをする実際のユーザーを意味する。スケール効果を意味する。エッジケースを意味する。モデル ドリフトを意味する。エンジニアリングは観察可能性、テレメトリ、セマンティック法科学を主張する。
ワークブックで一回動いたコードを出荷するだけやあかん。プロダクションをエンジニアリングの基準として常に主張してきた。今はそれを達成するのがより困難や。やから三番目の法則でそれを再確認してるんや。
三つ目の法則、なぜ失敗したかを説明できへんなら、システムを所有してへん。また、エンジニアリングで責任を強調してきたが、今はより重要や。AI システムは規制された空間、何が起こったかを説明できなアカン空間に入ってる。
人間の責任は説明、責任、バックが止まる場所を所有することを要求する。システムで何が起こったかを非常に賢いエンジニアやない人に説明できへんなら、たぶん自分のシステムを本当に理解してへんし、たぶん本当にエンジニアリングしてへん。
やからこの三つの法則は実際に一緒にフィットするように設計されてる。AI 時代の新しいエンジニアリング ライフサイクルの三つの部分になるように設計されてる。
一つ目は仕様や。システムを構築する時に約束するもの、確率システムに関係なく固着する契約をどう書くか。それが不変の部分や。二つ目は検証や測定や。プロダクションで何かを提供したことをどう証明するか。三つ目は責任や説明や。結果の所有権をどう取るか。
最終的に、成功するエンジニアは構築する前に考えて、プロダクションで検証して、結果を所有するエンジニアになるやろう。それは新しいスキルやない。それがわしがこの動画を作った理由の一部で、最初に戻ってくる。
これはエンジニアリングへのラブレターや。AI 時代でエンジニアリングは進化してるが、ここでその感覚を与えたと望むが、エンジニアリング原則は驚くほど一定や。機能するシステムを設計する必要性は変わらへん。もし何か一つでも持って帰ってもらうなら、コンピューティングにはエンジニアリングが必要やということを認識して帰ってもらいたい。エンジニアリングは流行遅れにはならへん。
むしろ、AI 時代で手に入るコンピューティングの複雑さが 100 倍、1000 倍に増加することで、熟練したエンジニアへの需要が増加するやろう。
やからそういうわけや。それがわしがエンジニアがどこにも行かへんと思う理由や。そしてそれがわしらがもっと彼らを評価せなアカンと思う理由や。


コメント