【ITニュース解説】“Software Engineering is dead”
2026年10月07日に「Dev.to」が公開したITニュース「“Software Engineering is dead”」について初心者にもわかりやすく解説しています。
ITニュース概要
AIの進化で「ソフトウェアエンジニアは不要になる」との意見は間違いだ。エンジニアの仕事はコード作成だけでなく、問題発見・解決、システムの基盤設計、複雑なデバッグなど多岐にわたる。AIは強力なツールだが、人間ならではの深い思考や判断は代替できず、将来もシステムエンジニアは不可欠だ。
ITニュース解説
最近、「ソフトウェアエンジニアリングは終わった」という言葉を耳にする機会が増えている。特に新しいAIモデルが登場するたびに、このような主張が繰り返される。この主張の背景には、「コードを一切書かずにソフトウェア製品を構築したマイクロソフトやGoogleの幹部と話をした」というような、一部のデータサイエンティストの発言があるようだが、この見解は誤りであると考える。
まず、技術的な観点から「ソフトウェアエンジニアリングはコードだけではない」という点を指摘できる。エンジニアの仕事は根本的に問題解決であり、コードはその問題を解決するための手段に過ぎない。AIは問題を検出し、解決策を提示できる場合もあるが、人間のように製品とインタラクトし、その使い心地や課題を深く理解することはできない。どんなに優れたプログラマーでも、すべてのエッジケース(例外的な状況)を事前に予測することは難しい。自動テストによって生産時のエラーを減らすことはできるが、ゼロにはならない。これは、ソフトウェアやAIがソフトウェアとインタラクトできても、人間とは根本的に異なるため、人間のような深い理解や洞察力を持てないことによる。
次に、ソフトウェアエンジニアリングが「インフラストラクチャに関わる」という重要な側面がある。コードが実際に動作するための基盤、つまりインフラストラクチャの設計はエンジニアの仕事の大きな部分を占める。どのようなアーキテクチャを採用するか、どのクラウドプロバイダーを利用するか、アプリケーションにどれだけのリソースを割り当てるか、CI/CD(継続的インテグレーション・継続的デリバリー)のアプローチを用いるか、変更をどのように追跡するかなど、多岐にわたる決定を下す必要がある。AIはこれらの決定に対して提案をすることはできるが、最終的な判断を下すのは常に人間である。AIがモノリシックなアプローチを提案しても、開発者がマイクロサービスを望むなら、人間がAIにその指示を与えなければならない。つまり、AIは指示された「汚い仕事」を効率的にこなすことはできるが、完全に自動化されているわけではないのだ。製品の動作を決定するプロダクトオーナーが人間である限り、スケーラブルな(規模が大きくなっても対応できる)システムを設計するためには、ソフトウェアエンジニアリングの専門知識が不可欠となる。
さらに、現在のAIは「単語を予測するために作られている」という本質的な限界がある。AIがプログラミングに優れているのは事実だが、その理由は、プログラミングが特定の順序で単語を記述する作業と非常に似ているためだ。AIは学習したデータに基づいて単語の並びや内容を予測する。これは、プログラミングを文法や意味によって変化する自然言語のように捉える見方であり、プログラミングの本質を捉えきれていない。AIのエージェントシステムも、大規模言語モデル(LLM)から特定の形式で吐き出されるコマンドに従う開発環境に過ぎない。もし人間がLLMと同じ形式で指示を書けるなら、そのエージェントシステムは単なるループ実行環境として機能する。これは一見すると何かすごいことをしているように見えるが、魔法のようなものではなく、どんな開発者でも作成できるようなコンテキストで動作しているだけなのだ。異なる複数のマイクロサービス間でのデバッグ作業など、複雑な問題解決には、AWS、Jenkins、IntelliJといった様々なツールを横断的に使いこなし、コード、ログ、リリース、テストを統合的に管理する能力が求められる。現状のAIがこれを代替することは不可能に近い。仮に特定のツールに限定されたシステムを構築できたとしても、明日システムがAzureに移行すれば、そのAIエージェント全体を破棄して新しいスタックに合わせて再構築する必要がある。しかし、人間であれば新しい環境にも適応して対応できる。もしAIがそのような複雑な作業をすべてこなせたとしても、そのために消費される「トークン」の数は想像を絶する量になるだろう。人間の脳が開発プロセス全体で思考という形で生産するトークンとは異なり、LLMは全ての層を繰り返し使うため、非常に非効率なのである。
技術的な理由だけでなく、人類学的な側面からも「ソフトウェアエンジニアリングは死んだ」という主張の背景を読み解くことができる。一つ目の人類学的な理由として、「大企業の幹部とテーブルを囲むことが、その人物がすべてを知っていることを意味しない」という点が挙げられる。2020年には、サム・アルトマンやイーロン・マスクが「あと数ヶ月でホワイトカラーやブルーカラーの仕事はすべてなくなる」と発言した。その後も、AnthropicのCEOが「あと2年で人間の労働は不要になる」と述べ、NvidiaのCEOも「1年後には英語がプログラミング言語になる」といった予測を立てている。しかし、これらの予測は外れてきている。AIは急速に進化する分野であり、誰もが正しくも間違ってもいる可能性がある。特に、AI関連の製品(トークンなど)を販売している企業の幹部の発言は、経済的な利害関係が絡むため、その言葉を鵜呑みにすることは危険である。人々は彼らが過去に語ったナンセンスを忘れ、金融的な利害から来る主張を聞き続けてしまう傾向がある。
二つ目の人類学的な理由として、「ソフトウェアエンジニアリングは現代で最も嫌われている職業の一つ」という見方がある。パンデミックの間、多くの職種が停滞しリスクに晒される中、リモートワークが可能なソフトウェアエンジニアだけは安定した仕事を享受できた。その時期、多くの開発者が高給を誇り、モルディブなどのリゾート地でノートパソコンを広げる「豪華なライフスタイル」をSNSなどで発信した。これは、世界中が自宅に縛られている中で、会社で対面で働く人々から不満や嫉妬の感情を呼び起こした可能性がある。その「復讐心」が、今「ソフトウェアエンジニアは死んだ」という願望につながっているのかもしれない。実際、歌手、翻訳家、作家、教師など、日常的に言葉を使う他の多くの職業があるにもかかわらず、新しいAIモデルが登場するたびに「歌手は終わりだ」「作家は存在理由がない」といった声はあまり聞かれない。なぜソフトウェアエンジニアだけがこれほど標的になるのか、その背景には社会的な感情も関係している可能性があるのだ。
結論として、「ソフトウェアエンジニアリングは死んだ」という主張は、技術的な現実と社会的な背景のいずれから見ても、極めて短絡的であり、現実を反映していない。ソフトウェアエンジニアの仕事の本質は、コードを書くことだけに留まらず、複雑な問題解決、インフラ設計、そして変化する環境への適応能力にこそある。これらは、現在のAIには代替できない人間の重要な能力である。