世界を動かす技術を、日本語で。

LLMが私のソフトウェアエンジニアリングキャリアを脅かしていて、どうすればいいかわからない

概要

  • 10年にわたる ソフトウェアエンジニア としての経験と専門性の変遷
  • AI・LLM の進化による専門知識・デバッグ力の価値低下
  • コード品質・アーキテクチャ の重要性の変質
  • 雇用市場における ジェネラリスト化 と需給バランスの変化
  • 今後のキャリア選択や専門性維持の困難さ

AI時代におけるソフトウェアエンジニアの専門性の揺らぎ

  • キャリア初期 はWebフロントエンドから始まり、直後にバックエンド領域へ転向
  • 金融・会計・決済 といった専門ドメインでの開発経験
    • PCI準拠、二重帳簿、エスクロー、リコンサイル、決済ライフサイクル、銀行送金の冪等性など
  • プロダクトマネージャー やステークホルダーとの密な関係構築
  • ドメイン知識 を武器にキャリアを差別化

第一の柱:ドメイン固有知識の形骸化

  • 金融系企業への転職と同時に AI(ChatGPT, Claude) の積極活用を推奨
  • 設計ドキュメント の作成もAI支援で効率化
    • かつては「LLMは確率的オウム」と軽視
    • AIの活用で設計や意思決定まで迅速化
  • 蓄積した 専門知識 や実務経験の価値がAIによって希薄化
    • モデルが専門的なシステム構築もこなせるよう進化

第二の柱:デバッグ力と分散システム知識の陳腐化

  • LLMによる コーディング支援 の一般化
    • Claude CodeやCodexの登場
  • 難解なバグ や分散システムの問題もAIが一撃解決
    • Claude 4.5以降、90%のバグはAIが解決
    • デバッグ経験や直感の価値が大幅に低下
  • 人間の役割 はAIの出力レビューや舵取りのみ
    • 「汎用的なエンジニア」へと地位が変化

第三の柱:コード品質・アーキテクチャの変容

  • リファクタリングや設計志向 を重視してきた経験
    • DDD, Hexagonal, Clean Architectureなど
  • AIエージェントは コードベースの整合性維持が不得手
    • 循環依存、重複コード、不適切なコメント、SOLID原則の無視
  • コード品質が「 テイスト(taste)」の一言で片付けられる現状
    • 機械が読むためのコードが主流化
    • 人間のための高品質なコードの需要が減少

雇用市場と今後の展望

  • 専門性の価値低下 により、エンジニアはジェネラリスト化
    • 需要の減少でジェネラリストの価値も低下
  • チーム配属前提の採用 やドメイン知識不要の募集が増加
  • キャリアの方向性 に迷い
    • LLMが苦手な分野へのシフト検討(例:研究職、手仕事)
    • 研究職も将来的にAIに代替されるリスク
  • 専門性の積み上げ が無価値化する時代への戸惑い

エンジニアの専門性とAI時代の生存戦略

  • AI時代に価値が残る専門分野 の模索
    • 例:高度な数理、統計、機械学習、創造的・手工芸的分野
  • 人間ならではの価値 の再定義
    • クリエイティビティ、対人調整、現場感覚
  • キャリアの柔軟な転換 と自己投資の重要性
  • AIと共存する働き方 へのマインドセット転換

Hackerたちの意見

木工の趣味を職業にすることを考えた方がいいかな… 業界の未来についてどう思っても、職人の木工でプロとして成功するのは、職人のソフトウェアより難しいと思うよ。

業界の未来についてどう思っても、職人の木工でプロとして成功するのは、職人のソフトウェアより難しいと思う。市場のほんの一部、もしかしたらその一部のさらに一部だけが、手作りの品にお金を払う意志があるけど、現代的でレトロなもの(スチームパンクなキーボードとか)だとボーナス。手作りのソフトウェアにお金を払う人はゼロパーセントだよ。

何を木工って言うかによるかな。デッキ(庭やキャラバンなど)を作ったり、物置やフェンスを作ったりしてる人と一緒に働いてるけど、彼は本当にうまくやってるよ(正直、すごく上手いしね)。

カスタム家具やキャビネットはすでにかなり厳しい市場だし、木工はプログラマーの趣味として一般的だから、もし多くの人が本気でやり始めたら、市場はすぐに供給過多になると思うよ :)。自分が作った家具を売ってみたらどうかって言われたこともあるけど、趣味をキャリアに変えるのは一度失敗したから、もう二度と同じ過ちを犯したくないし、少なくともソフトウェアはまだそこそこ良い給料をもらえるからね。

手彫りのユニークな形のドアがある歴史的な家を持ってるんだ。ドア枠が腐ってしまって、木工職人に4千ドル払って交換してもらった。ドア自体を交換するのには簡単に2万5千ドルかかるよ。だから、手彫りのドアがある歴史的なエリアに引っ越せば、そこそこいいお金が稼げるかもね。

layoffs.fyiを見てみて。彼はすぐに解雇される可能性が高いよ。もし明日じゃなくても、AIがもっと良くなるまで数年待つことになるだろう。これは一方通行の道、下り坂なんだ。木工じゃなくて、農業だ。土地を手に入れて、自分の食べ物を育てな。経済には全く参加しないこと。それが唯一の生き残り方だよ。

会社は今、いくつかの役職で再度採用を行っていて、ドメインの知識はもはや強い差別化要因じゃなくなった。以前は「ソフトウェアエンジニア - エリア」って書いてたけど、今は「ソフトウェアエンジニア」だけで、チームの割り当てはオファー受け入れ後に決まる。 > 確かに、ドメインに深く入るチャンスがなかった優秀なエンジニアには良いことだけど、長年ドメイン知識を蓄えてきた他の優秀なエンジニアが同じ土俵で競争しているのは悲しいことだね。著者の未来のビジョンが正しければ、有能なソフトウェアエンジニアは安全だろう。ドメイン知識は良いエンジニアリングの原則を適用するよりもずっと早く学べるからね。ドメイン知識が主な競争優位のエンジニアは、エンジニアリングがそれほど優れていないかもしれない。他の業界で彼らが蓄積したドメイン知識を活かして雇用される可能性はあるけど。

ドメイン知識は良いエンジニアリングの原則を適用するよりもずっと早く学べる。1週間前にドメインの専門知識が本当の防壁であるというスレッドがあったよ: https://news.ycombinator.com/item?id=48340411

それは未来に対してかなり楽観的な見方だね。俺はドットコムバブルの崩壊を覚えてるし、その後の数年もね。2002年から2003年には、ソフトウェアエンジニアの失業率が40%くらいだったんだ。実際、それがもっと高くならなかったのは、業界を離れて配管工(や他の職業)になった人が多かったから。今回はもっと悪化すると思う。ドットコムバブルの崩壊では、ビジネスじゃないところに資金が流れて、資本市場がほとんど機能しなくなったんだ。でも今はそうじゃない。確かにAI企業には大量のお金が流れ込んでるけど、変化はもっと構造的なんだ。他の業界も同じような経験をしてる。1980年代には、いくつかの業界が意図的に壊されたり、オフショアに移されたりして、未だに回復してないところもある。これには社会的、経済的、政治的な影響が続いてると思う。テクノロジーの分野でも同じことが起こるなんて、みんなちょっと甘く見すぎだよ。

「ドメイン知識は、良いエンジニアリング原則を適用するよりもずっと早く学べる。」それが普遍的に正しいとは思わないな。簡単に身につくドメイン知識に自信を持ちすぎてる優秀なソフトウェアエンジニアが、ERPシステムの失敗を招くことが多いんだ。ITの世界には、ビジネスルールをシステムに組み込むことが全てっていう部分がたくさんあるからね。

ドメイン知識は、良いエンジニアリング原則を適用するよりもずっと早く学べる。部分的には同意しないな。大まかなドメイン知識はすぐに学べるけど、その知識を微妙に磨いて、特にユニークで「ソフトウェア開発ハウス」とは考えられないような組織に対して複雑さを考慮するのは、何年もかかることもある。なのに、まだ「プロフェッショナル」なソフトウェア開発者が良いエンジニアリングプラクティスを守ってないのを見かけるよ。 > ドメイン知識が主な競争優位性のエンジニアは、エンジニアリングがそれほど得意じゃないかもしれない。ドメイン知識がないエンジニアにも同じことが言えるよ、少なくとも俺の経験では。もしかしたら、単に運が悪かっただけかもね…

ドメイン知識は、良いエンジニアリング原則を適用するよりもずっと早く学べる。ほんとに?俺は逆の意見だな。専門的な知識を得るよりも、方法論を改善する方がずっと早いよ。前者はアプローチの問題だから、強制したり早めたりできる。後者は、その人の学習の好みや能力、当時の状況に依存するから、合理的な支援を超えて強制することはできないんだ。それに、早い段階では急激に成長する傾向があるから、自己強化的なんだよね。

貴重なドメイン知識の開発と取得は、難しくてリスクが高く、高価で遅いプロセスなんだ。だって、貴重なドメイン知識は昨日のものじゃなくて、今日のもの、明日のものだから。ドメイン知識が重要な分野では、それはエンジニアリングと深く絡み合ってるから、ジェフ・ディーンにUnreal Engineをゼロから開発させることはないよね。とはいえ、ドメイン知識の専門家が完全に内面化したり、適切に実践したりしていないSWEの原則はまだたくさんあって、ドメイン知識が価値を持つ限りそれは続くと思う。ソフトウェアエンジニアリングもまた別のドメインだからね。

ドメイン知識は、良いエンジニアリング原則を適用する方法を学ぶよりもずっと早く習得できるよ。どんなドメインを考えてるの?

え、何それ?俺は一日中LLMを操縦してるけど、金融商品を扱うなんて絶対に無理だわ。その最初の柱はまだ残ってるし。著者は自分の影響を理解してないのかもしれないけど、リバートされたPRの証拠があるから、深い知識の領域から出ると、エージェントに対して「それは違う」って言えなくなるんだ。著者が話してるのと同じような分散システムにアクセスできる最も優秀なエージェントも、定期的に間違えるし、視野が狭いし、常にバカなことを言ってる。チームのエンジニアたちの専門知識が、彼らを正しい方向に戻してるんだよ。

残念ながら、ソフトウェア関連の業界はみんなLLMやコード生成を取り入れてるね。銀行やフィンテック、保険もそう。みんな同じような懸念を抱えてるけど、そういうのは「心配しなくていい、納期やROIがそれだけの価値があるから」と軽くあしらわれちゃうんだよね。

え?俺は一日中LLMを操縦してるけど、金融製品の舵を取るなんて絶対に無理だよ。君の特定の雇用主がどれくらいこの状況を維持できるかは分からないけど、俺が個人的に関わってるフィンテック企業は、昨年から開発者向けに何らかのAIアカウントを持ってるところばかりだよ。ジェーンストリートみたいなところでも、従業員がブログを投稿してる(そのうちの一つは約60分前にHNのフロントページに載ってた)けど、彼らは主にエージェントを指示してるって言ってる。君の特定の雇用主はどれくらい持ちこたえられると思う?

チームのエンジニアたちの専門知識が、プロジェクトを軌道に戻すんだ。でも、どうして同僚たちがあなたより「専門家」じゃないって確信できるの?以前のLLMがあった頃は、99%の企業で優秀なエンジニアと普通のエンジニアが一緒に働く余地があったんだ。LLMが登場した今、もう「普通の」エンジニアは必要ないから、残るのは「最高の」エンジニアだけだと思う。ここはHNだから、この記事を読んでるエンジニアはみんな、自分が会社や街、国のトップ10-5%にいると思ってるだろうし、だから自分がLLMの影響を受ける「普通の」エンジニアじゃないと思ってるんだろうね。統計的には、たぶん間違ってるよ。結局、これはエゴの問題なんだ。あなたがロックスターじゃない可能性が高いし、LLMが最終的にあなたの仕事を奪うことになるよ。いつものように、ここでの勝者は企業と経営者だけ。私たちのほとんどは、チェーンの最後のサルで、結局損をするんだ。

バーナーアカウントで投稿してるから、自分を特定されないようにね:私は規制された製品のフィンテックで働いてる。Mythosにアクセスできるんだけど、Mythosが私たちのコードベースの一部を特定して、特定の規制に準拠していないと自信を持って主張したんだ。それによって、私たちは大きなリスクを抱えているって。でも、実際にはそうじゃなかった。もちろん、規制が何を要求しているかを幻覚で捉えてしまったんだ(問題のコードはすでに人間の法律顧問によってレビューされていたから)。これが(いわゆる)最先端のモデルなんだ。私たちはコードを書くのにたくさんのgenAIを使ってるけど、実際に準拠した金融商品を構築するためにこれらのツールに頼ることは、短期的にはあり得ないよ。完全に狂ってると思う。確かに、多くのフィンテック企業がこれらのエージェントを使って加速してるけど、実際に人間が掘り下げずに製品を出荷するために使ってる人は、リスクの世界に自分をさらしてるんだ。

一日中LLMを操縦してるけど、それがずっと続くとは限らないよ。多くの企業が「AI工場」にお金を投資してて、ソフトウェア開発を自動化する方向に進んでるんだ(つまり、LLMを操作するためにJiraのチケットやリニア、トレロのカードを使うってこと)。

「その最初の柱はまだそこにある。著者は自分たちの影響を理解していないかもしれないが、私は元に戻されたPRの証拠を見て、深い知識の領域から外に出ると、エージェントのことをもうバカだとは言えなくなる。私たちの最も有能なエージェントは、著者が話しているような分散システムにアクセスできるが、定期的に間違っていて、しばしば視野が狭く、常に愚かだ。チームのエンジニアの専門知識がそれを軌道に戻している。もう一つの層があると思う。あなたにはドメイン知識がある、確かに。でももっと価値があるのは、さらに多くを見つけるための知恵だ。AnthropicやOpenAIがトレーニングデータに金融規制を入れたところで、AIシステムは未来を予測したり、複雑な状況でクライアントやパートナー、規制当局に手を差し伸べたりすることは決して学べない。」

1年前は同意してたけど、ギャップはどんどん小さくなってるね…これらのものは90%の仕事をこなせるし、残りの10%のために本当に会社に必要な人はどれくらい?前ほど必要じゃないよね。

複雑な要件のReg PRについてだけど、初期PRまでの時間がすごく短いのが見えてる。レビュー担当者と開発者の間でピンポンが始まるんだ。私のケースでは(すべてではないけど)、開発者が雰囲気でコーディングした部分があって、要件を深く理解してなかったり、コードを理解してなかったりするから、修正するのに何度も繰り返しが必要になる。これを人間の問題だと主張することもできるけど、私が見ているのはそのネット効果なんだ。複雑なケースでは、以前は適度に長いPR時間と適度に長いレビュー時間の合計が、非常に短いPR時間とさらに長いレビュー時間に置き換わったように思える。これらのケースで本当に利益があるのかはわからない。時には、コードが機能的に正しくても、冗長すぎる(例えば、中間関数が多すぎる)から、将来のレビューに影響を与えると思う。

LLMを一日中操縦してるけど、いいメタファーだね。飛行機は自動操縦ができる高度な機械だけど、最終的には人間が操縦しないといけないんだよね。

著者の気持ちには共感するな、ほとんど同じ立場だから。ちょっと強調したいポイントがあるんだけど… 計算機は100%正しい答えを出すけど、それでも会計士を雇う理由は、みんなが会計士になりたいわけじゃないからだよ。人々は、ソフトウェアエンジニアになりたくないからこそ、ソフトウェアエンジニアを雇うんだ。

面白いことに、今年はAIの助けで税金の申告ができて、会計士はいらなかったよ。

会計士は、法律や規制、手続き、官僚主義など、計算機ができることを超えた専門的な知識を持ってるよね。これをソフトウェアエンジニアリングに当てはめると、確かにいいポイントだと思う…ただ、あなたが言いたかったこととは違うかもしれないけど。

今日のLLMなら、そうだね。でも、もし彼らが信頼できる方法で契約者レベルに達することができて、提供する企業が責任を持つ気があるなら(自信が高くて、他は保険でカバーされているから)、安いAIエージェントを雇って契約を果たすことができるかもね。設計、実装、デプロイ、運用、サービスやウェブサイトのメンテナンスを、以前のエンジニアのように。計算機は会計士の代わりにはならないけど、オンライン会計サービスは多くの場合そうだね。これも、AIがその信頼性に達すれば運営できるかもしれない。でも、今日のLLMではまだSFの話だね。

「計算機」って職業があったけど、もうそんなことはないね。 https://en.wikipedia.org/wiki/Computer_(occupation)

俺のキャリアパスは、作者と驚くほど似てるんだ。変なことに、彼が最初に崩れる柱として挙げてるのは、今のところ一番無傷だと思ってる。LLMは、我々のビジネスの特有の部分、つまり地方税規制や会計プロセスの特性、我々の台帳実装の具体的な部分ではしょっちゅう失敗する。リファクタリングや言語間の翻訳、既存コードのバグ追跡には優れてるけど、我々のドメインを拡張する際には微妙に間違ってることが多い。これは、俺が働いてきた会社が、まさにモートを築くために複雑なドメインに取り組んでいるからかもしれない。クローンを作るための本が存在しないからこそ、ビジネスが成り立ってるんだ。知識は内部に留まるしね。それに、AIで設計ドキュメントを早めようとするフィンテックのマネージャーは、金銭を扱うビジネスにはあまりにも無頓着すぎると思う。特に小さな取引が大量にある場合、数百万が誤って割り当てられるのは簡単すぎるからね。こういうバグはいつも厄介で、ロジックを修正するのが第一歩だけど、その後に不正確に計算されたデータを不変DBで修正したり、赤テープやクライアントとのコミュニケーションを整理したりしなきゃいけない。そうすると、修正が新しい機能や可視性に影響を与える「お約束」になっちゃうんだよね(「2月2日にデータにバンプがあるのを忘れないで、事故Xがあったから」って感じ)。

LLMはうちのビジネスの具体的な部分ではいつも失敗するんだよね。地元の税法とか、会計プロセスの特性、台帳の実装の詳細とかね。うちの会社も複雑な規制や特定のドメインに特化したシステム実装が多いから、AIはそれに苦労してたんだ。でも、整理されたclaude.md/agents.mdファイルのおかげで問題を解決できたよ。それに加えて、supermemory.aiも導入したから、新しく決定したことはAIエージェントが新しいセッションを始めるときに常に思い出せるんだ。

自動化の達人たちが、自分たちの役割が自動化されていることを嘆いているのは、ある種の皮肉だね。彼らの努力で過去に侵食された仕事も、同じように思っていたのかな…プログラミングや論理などはスキルやツールキットなんだ。社会の最適な状態は、誰もがそれを適用できることだと思う。特定のコンピュータサイエンスのカーストだけじゃなくてね。昔は、書記がその努力に対して良い報酬を得ていた時代もあったし。ここで学ぶべき教訓は、ツールキットをアイデンティティや生涯の仕事として扱わないことだね。仕事の本質によって、もしツールが安くて広まれば、それは実際には成功であって裏切りじゃないんだ。

あなたは、社会の最適な状態はみんながプログラミングや論理を使うことだと言ってるけど、これらの発展の明らかな最終結果は、誰もそうしなくなることだよね。

Claude CodeをOpus 4.7で使ってるんだけど、生成されるコードが間違ってるわけじゃなくて、ただ書きすぎる傾向があるんだよね。特定の機能について考えて、それをコードにうまく組み込む方法を見つける価値はまだあると思う。Claudeはしばしばスタックの一部(たぶんプレゼンテーション層)を選んで、それをそのまま突っ込んでくるから。数週間後にそのデータが別のところで必要になったとき、Claudeはコードを再利用できない(たぶんサービス層で)から、なんか「ポート」しちゃうんだよね。誰かが注意を払ってないと、コードの量が倍になって重複したロジックができちゃう。ClaudeみたいなAIツールがこれを改善するのは、すぐには無理だと思う。私の職場では、コストを節約するためにOpus 4.7をあまり使わないようにというプレッシャーがすでにあって、誰かが「シンプルなバグ修正には小さいモデルを使う」って言ってた。これがうまくいくこともあるけど、実際にシンプルなバグ修正だって事前にわかることってどれくらいあるんだろう?コストが上がるにつれて、これらのツールを使って「すべてのコード」を書くことへの関心が減っていくと思う。人々が安くて効果の薄いモデルに移行するにつれて、そのコードをレビューするプレッシャーも薄れていくんじゃないかな。どうなるか見てみよう、もしかしたらこの投稿の著者が心配してるほど劇的には変わらないかもしれないし。

ソフトウェアエンジニアリングでAIを使うことで得られたポジティブな点はたくさんあるよ。(1) 長い繰り返しのテキスト編集セッションがなくなった。例えば、名前空間を変更したり、古くなったAPIを「正しい」ものに置き換えたりすることね。AIはほぼ完璧なテキスト修正を簡単にやってくれる。(2) コードレビューで細かいことを指摘するバイクシェディングがなくなった。例えば、「std::stringstreamの代わりにstd::formatを使うべき」とかね。AIが既存の指摘に合わせてくれるから、わざわざ気にしなくてもいい。(3) 普通の人たちがコンピュータに話しかけるだけでアプリケーションを作れるようになった。これがソフトウェアの現状に新しい風を吹き込むかもしれない。今はみんなWordやExcel、Jira、Photoshopみたいな同じ膨れ上がったアプリを使わざるを得ない状況だから、普通の人も問題を解決できるようになって、Microsoftに頼らずにスプレッドシートプログラムを使えるようになったんだ。

いつもスティーブ・ジョブズの「アイデアは安い」という名言を思い出す。もし実行がすべてなら、最先端のLLMが実行を解決するなら、アイデアは今や豊かさへの入り口だけど、豊かさだけでは「粘り強さ」は保証されない。私が思うに、見落とされがちなのは、人間の「意欲」と「配慮」で、より良い言葉がないからこう言ってるけど、要するに多くの人が十分に気にかけていないか、物を作ったり、維持したり、所有したりしたくないってこと。確かにV1を早く出すことはできるけど、その後も続けられるかどうかが大事だよね。おそらく起こることのいい例がSuno、AI音楽のやつだと思う。みんな試したことあるか分からないけど、今は本当にいいものを作ってる。何が起こってるかというと、多くの人が自分の小さな宇宙で遊んで、すぐに飽きて離れてしまう。そして、ほんの一部の生産的なクリエイターだけが残って「仕事のような」環境にしてる。私たちは「委任」と「実行」のスケールと経済を変えたかもしれないけど、考慮すべき他の要素もまだたくさんあると思う。

もし実行がすべてなら、最先端のLLMが実行を解決するなら、アイデアは今や豊かさへの入り口だけど、豊かさだけでは「粘り強さ」は保証されない。彼らは実行を「解決」するわけじゃない。もし十分にプッシュして、実際に動くコードを得られるシステムを整えれば、彼らは実行を解決できる。今のところ、デフォルトではそれができるわけじゃない。もしかしたら3年後かも。彼らは速く進んでるけど、より良いRustコンパイラを作ってくれって頼んで、座って見てるだけで結果が出るわけじゃない。

この人は最初から肉の盾として雇われたんだ。彼らが決定を下すことを許されない責任を負うために。