LLM時代のシニアソフトウェアエンジニアの軌跡とは? Hacker Newsの議論
「Ask HN: シニアエンジニアの現在の軌跡は?」というHacker Newsのスレッドは、58件のコメントを生み、コンセンサスは得られませんでした。コメント投稿者の間で支配的な見解は、シニアエンジニアリングの役割は再定義されつつある——コードを書くことから、エージェントを指揮し、品質を所有し、組織内の政治を乗り切ることへ——というものであり、廃止されるわけではないというものです。少数派の見解は、アーキテクチャ自体が強化学習の次のターゲットとなり、役割は数年以内に大幅に縮小するというものです。
スレッドの出発点となった質問
元の投稿者は、フロンティアラボが単に優れたソフトウェアアーキテクチャと悪いソフトウェアアーキテクチャのデータセットを構築し、コードや数学で行っているように強化学習を適用できないのはなぜか、と尋ねました。そこには正解か不正解かが存在します。投稿者はこの問題の重要性を率直に述べました:
「2024年にはLLMが派手なオートコンプリートだったことを考えると、今ではエージェントを使って『ソフトウェアファクトリー』を構築するという話が出ています。この発展を止めるものは何だと思いますか? なぜソフトウェアアーキテクチャは、1、2年後もエージェントにとって難しいのでしょうか?」
投稿者自身の結論はプログラマーにとって悲観的なものでした:「(ビジネス的には)実際のソフトウェアプログラマーのスキルへの需要は、数年で90%なくなると思います。そして、製品リードなど、より対人スキルを持つ人々が優遇されるでしょう。良い時代でした。」
最も強力な反論:アーキテクチャはそもそも重要でなくなるかもしれない
構造的に最も興味深い返答はakoboldfryingからのもので、彼は質問の前提が間違っていると主張しました——エージェントがアーキテクチャを学べないからではなく、アーキテクチャは人間の認知限界を回避するためにのみ存在するからです。
「モジュール性や抽象化レベルなどの組織化原則を適用・強制するという意味でのアーキテクチャは、現在主に複雑さを管理するために行っています——システムのできるだけ多くを私たちの限られた脳に収めるために。十分に大きなシステムでは、効率的に作業するためにこれは必要です。しかし、これらの『松葉杖』を使わずに『全体を頭の中に保持』できるのであれば、実際にはそれらは不要です。それらは廃止できるオーバーヘッドになります。」
このコメント投稿者は、これを誰もアーキテクチャを計画しない「Hello world」スクリプトになぞらえました。モデルがコードベース全体をコンテキストに保持できるなら、アーキテクチャの規律は自動化されるべきスキルではなく、任意のオーバーヘッドになるという議論です。
スレッドからの証拠:エージェントはすでにアーキテクチャに近づいている
あるコメント投稿者jwrは、スレッド内でFable 5.1およびAstraとして指名された2つのモデルをアーキテクチャ設計文書に使用した直接的な経験を報告し、結果は人間の仕事と競合するものだったと述べました:
「私は彼らとアーキテクチャ設計文書に取り組みましたが、彼らは非常に優れていました。彼らの提案のいくつかは私の解決策より優れていました。彼らはまだシステムアーキテクトを完全に置き換える段階ではありませんが、近づいています。」
同じコメント投稿者は、モデルの範囲外にあるものを特定しました:「何を構築するか、そして複雑な情報を人間が理解できる方法で提示する理解可能なユーザーインターフェースをどう作成するかという未解決の問題がまだあります。それはAIがまだできないことです。」
2人目のコメント投稿者zeryxは、エージェントでビデオゲームを構築しようとしたことを説明し、エージェントが個々のコードを書き、基本的な失敗モードを捕捉するスクリプトを書き、VMを起動してAutoHotkeyでゲーム状態をトリガーし、スクリーンショットやGIFを撮って自分たちが構築したものを評価することで、ゲームをプレイすることさえできたと報告しました。失敗は実行ではなく、別のところにありました:
「楽しさを最大化するために直感的に何を構築すべきかを知ることは、他の非論理的な人間の経験と同様に、決してRL可能にはならないでしょう。」
スレッドがエージェントにとって依然として難しいと述べていること
複数のコメント投稿者は、自動化に抵抗すると彼らが考える一連のタスクに収束し、その理由は通常の「AIはコードを書けない」という議論とは異なります。
組織的コンセンサス。 accurrentはシニアの役割自体を政治的なものと定義しました:「私の意見では、シニアソフトウェアエンジニアとは、大規模な組織でコンセンサスを推進する人です。LLMが近いうちにその問題を解決するとは思いません。」同じコメント投稿者は、バックエンドでは、レースコンディションの追跡やコンテキストウィンドウに何が収まるかの推論には依然として人間の監視が必要であり、シームレスな移行のためのテストの設計にもそれが必要であると述べました。
悪いアイデアへの反発。 jgiliasは、現在のモデルはむしろ同意的すぎてこの役割で役に立たないと主張しました:
「モデルにはアライメント問題があります。つまり、悪いアイデアに十分強く反発するにはアラインされすぎています。権力関係などで実際には反発できないこともありますが、仕事はそれでも_どうにか_成し遂げる必要があります。そこで人間は、時には悪いアイデアを単に無視し、時には物語に合わせて演じつつも実際に必要なことを行い、時には他に方法がないときは、かかとを踏ん張って悪いアイデアが根付く前に殺すことで、それをナビゲートします。エージェントは昨日存在したSOTAモデルの能力でこれを行うことができました。しかし、そのためには真剣にミスアラインされる必要があるでしょう。」
説明責任。 papa-smurfはソフトウェア開発からシステムコンサルタントへ転身し、堀を明確に述べました:「(コンサルティングの)仕事の主な堀は、顧客が常に非難を負う人間を必要とすることです。それが私です。同様の役割は比較的安全だと思います。」
何を構築するかの決定。 fergieは質問を本質にまで絞りました:「結局のところ、マシンに何をするよう指示するかを決め、実際にマシンにそれを指示する誰かが必要です。それがJavaScriptであれ平易な英語であれ、それは実際には重要ではありません。」
リフレーム:シニアエンジニアからテクニカルリードへ
スレッドで最も繰り返された予測は、職名は残るが職務内容は変わるとういうものです。gregwebsは直接的に述べました:
「シニアエンジニアとすべてのSWEポジションは、テクニカルリードに近くなるでしょう。AIを指揮し、非ソフトウェアエンジニアがAIを指揮してソフトウェアを開発するよりも、費やした$/時間あたりの価値が高く生み出せるなら、あなたは依然として多くの価値を生み出すことができます。これは現在、プロトタイプでないほとんどのものに当てはまるはずです。仕事は『コードを書く』ことから『ソフトウェアを出荷する』ことに変わりました。テクニカルリードです。」
同じコメント投稿者は、単純な人員削減に反する供給側の議論を追加しました:「しかし、ソフトウェアは1000倍増えるでしょう。したがって、適応する人には機会が続くかもしれません。」
bradfaは役割の収束について並行した指摘を行い、プロダクトマネージャー、プロジェクトマネージャー、スクラムリーダーはLLM以前からエンジニアリングチームに存在しており、これらの役割はタスクの委任であり、別種の仕事ではないと述べました:
「現在、これらの役割はすべて部分的にLLMにオフロードできますが、エンジニアリングを導き、ビジネス/顧客とインターフェースする人間がループにいることは依然として価値があります。全体的に何を構築するか、次に何を構築するか、後で何が来るか、製品がビジネス目標とどう関連するかを知ることは、依然として非常に人間的な取り組みです。」
スレッドが推奨するスキル
RugnirVikingは特定の技術的方向性を推奨しました:「パフォーマンス、テスト、可観測性にもっと焦点を当てることを提案します。人間の理解+品質/保守性がお金になるところです。それらをエージェントで作ることを学んでください。」同じコメント投稿者は、「AIの使用はスキルである」という考えに関する別のHacker Newsの議論にリンクし、次のように結論付けました:「エンジニアが本当に絶滅するとは思いませんが、その数は減るかもしれません。」
accurrentは、プロトタイピングが十分に安価になり多くのコンセプトをテストできるようになったため、フロントエンドでは美学とUXの直感が新たに価値を持つようになったと指摘し、ロボット工学では「LLM支援コーディングがあっても、速度が上がっていると感じないほど多くのクロスファンクショナルな問題がある」と述べました。
異議:経済性は未証明であり、強気な見方は自己愛的である
スレッドの全員がエージェント能力が制約条件であるという前提を受け入れたわけではありません。sdcfgyは制約は財政的かつ政治的であると主張しました:
「経済性と現実は未証明で不透明です。私たちが持つ証言のほとんどは、重く投資した人々や、現在低い割引レートで技術を支払っている人々によるものです。技術を提供する企業は財務的に健全ではなく、地政学的に強く連携しており、多くの人にとってリスクです。それが機能するかどうかは議論の余地がありません:それは大きな経済的または政治的な失敗が地平線にあるように見えます。したがって、未来を考える前に待って見るべきです。」
ameliusは採用自体を罠として捉えました:「AIに強気なすべてのバイブコーダーは、私たちがAIを訓練していることを認識する必要があります。AIが私たちを置き換えるのを助けているのです。私たちは基本的にクリスマスに投票する七面鳥です。私たちは料理されています。」
fergieはシニアの給与に対する下方圧力の別の説明を提供しました:「SWE給与の上限には_確かに_何らかの圧力があるように_思えます_。それは単なる願望かもしれないが、もし本当なら、実際の仕事の減少よりも求職者の増加に起因するのではないかと思います。AIはすべての空席に対する応募数を増やしたようです。」
zeropは採用が実際にどこに落ち着くかについてより狭い主張をしました:「LLMはコーディングで成功を収めることができました。なぜなら、誰かがそれが生成する仕事(コード)をレビューしているからです。もちろん、コードの品質は時間とともに向上しています。私の意見では、Human-in-the-loopシナリオ以外では、AIはビジネスで大きな採用を見ないでしょう。」
需要側の議論:ほとんどの人はコンピューターと話したいと思っていない
dimbletimbersは、スレッドの参加者が競争を体系的に過大評価していると主張しました:
「開発者やHNの人々は、平均的な人がコンピューターについてどれだけ知っているか、気にかけているか、またはコンピューターと対話したいと思っているかを過大評価していると思います。仕事が何になろうとも、コンピューターと話すのが好きで、メールやYouTubeを表示する以外のことをさせる方法を知っているなら、あなたは時代の先を行っており、そこに留まれるでしょう。」
testeriusはこの点を一般的な労働議論に拡張し、プログラマーを数学者、医師、生物学者、営業担当者、マーケター、教師、アーティストと並べました:「もちろん、プログラマーや数学者を排除することはできますが、その場合、自分で物事を理解し処理する必要があります。『何が起こっているのか』を確認できる誰かが依然として必要です。」
frangonfは同じ主張の最小版を作りました:「ソフトウェア(そして他の分野もすぐに同じように打撃を受ける可能性がある)がまだ『間違っている』可能性があり、マシン支援があっても台無しにすることができるなら、ソフトウェアに携わる人々は依然として居場所があります。」
スレッドの着地点
タイムラインを知っていると主張するコメント投稿者はいませんでした。スレッドの実際の成果は、候補となる堀のリスト——組織的コンセンサス、説明責任、何を構築するかの決定、美的・UX的判断、パフォーマンスと可観測性の仕事、そして悪いアイデアを却下する意欲——と、2つの真に相容れない予測です。1つは、アーキテクチャはエージェントが吸収する学習可能なスキルであり、その後その規律は不要なオーバーヘッドになるというものです。もう1つは、アーキテクチャはエージェントがそもそも必要としなかった人間の記憶限界の回避策であり、彼らがそれを学べるかどうかという問題は本題ではないというものです。
複数のコメント投稿者は、実存的な枠組みに分析ではなくダークなユーモアで応じました。Zealotuxは書きました:「私は害虫駆除ビジネスを始めるか、路上で見つけた家具をリノベーションすることを検討し始めました。シニアエンジニアのための他のアイデアがあれば教えてください。」自己を「ほぼ公式にグレイビアード領域」と称するsitzkriegは、「養蜂を始めることを考えています。100匹の蜂に刺されるのは、どんなソースからのLLMコードと対話せざるを得ないよりはまだ楽しく聞こえます。」と述べました。sharpshadowはスレッドの不安を最も簡潔に表現しました:「手書きのコーディングは禁止されるでしょう。リスク要因が大きすぎます。あなたは全能者と通信するシャーマンになるかもしれません。」