AI時代におけるソフトウェアエンジニアの”価値”ってなんだ?
ChatGPTの登場からはや3年ほど立ち、いまやOpenAI / Google / Anthropicといった企業が日々しのぎを削る大AI時代が到達している。システム開発の現場でも、Cursor / Claude Code / Codex などのコーディングエージェントはなくてはならない存在になっている。※業界によってはセキュリティ的に認められない場合もあると思うが。
2025年10月現在では、Claude Codeが一斉を風靡した時代が徐々に終わりを迎え、Codex CLIがトップに躍り出つつある印象を受ける。しかし、Claude CodeもWeb版やSkillsといった新しい機能をリリースしてシェアを奪われまいとしているようだ。
私自身、システムエンジニアとしてコーディングを含む開発実務に携わっているが、生成AIがなかった時代のそれとは明らかにスピード感が違う実感がある。
生成AIがなかった時代は、何かコードを書こうとする場合は使う言語のリファレンスを参照しながら上から下までタイピングしていき、コンパイルし、実行していた。コンパイルエラーや実行時エラーが出たらエラーメッセージとにらめっこしてQiita、Zenn、StackOverFlowを巡回し、ああでもないこうでもないと試行錯誤を経てようやく正解に辿り着けた。もちろん、プロジェクト固有の事項はリポジトリのソースを読み込んだり、仕様書を読み込んだり、場合によっては人に聞いたりして地道に情報を集める必要があった。
生成AI時代の開発は、全く違う。なんとなく頭の中にある業務要件やビジネス要件、実装方式をチャットでAIエージェントに伝えると、エージェントがインターネットや既存リポジトリにある大量のコードやドキュメントを一瞬にして読み込み、理解したうえで、次々とソースコードが生成される。コンパイル、実行、デプロイのコマンドもAIが自動生成して実行する。問題が発生したら、その箇所を指摘することで関連箇所の修正まで自動的に実行される。この間、人間が実際にソースコードやコマンドをタイピングすることはほとんどない。いわゆるVibe Codingだ。
もちろん、Vibe Codingでなんでも解決するわけではない。AIとの会話にはコンテキストの制限があるし、指示と乖離したコマンドを実行することもある。存在しないメソッドを呼び出してコンパイルエラーを吐き、至るところに似たようなコードを書いて保守性を低下させることもある。
それら、Vibe Codingによって得られる利点と、逆にもたらされる悪影響を人間が軌道修正、尻拭いするマイナスを差し引いても、生成AIを用いた開発はそれがない場合と比べて2〜3倍のスピードで開発が進む。調子がいいときには、人間は最初にAIに指示を出してあとはEnterキーを連打するだけで実際の成果物が完成しているのだ。
こう聞くと、じゃあもうソフトウェアエンジニアの仕事なんて誰でもできるじゃないか、AIさえあればエンジニアなど要らないだろうという不要論が持ち上がってくる。
しかし、これは大きな間違いだ。
実は、AIによるアウトプットの質は、AIを利用する人間側の能力に大きく左右される。これは、自身がAIを使っていることと、自身の周りやインターネットで様々な事例を見たうえで導きだした持論だ。なぜそのように言えるのか。
AIは、「それらしいもの」を超高速で出すことを得意とする。この「それらしいもの」はAI自身が学習しているデータ、コンテキスト、インターネット上の情報量などにもよるが、感覚的にはおおよそ6割〜8割程度の完成度であると考えている。さて、問題は残りの4割〜2割はなんなのかという点だ。
ソースコードを例とすると、おおよそ以下のようなパターンだ。
- 言語の文法を無視した記述でコンパイルが通らない
- 存在しないライブラリを読み込む、存在するライブラリから存在しないメソッドを呼び出す
- 実行時に発生した例外を握り潰して正常終了しており、想定した結果が得られていない
- 既存のライブラリで実装すべき処理をすべてベタ書きする
このような不備は、コンパイル、実行、コードレビュー、テストという後工程で気づき、修正する必要がある。しかしながら、AIは自身が引き起こしたバグの問題点を見つけて修正するのがかなり不得意だ。
上記のような問題に直面すると、問題の根本原因とは全く関係ないあちこちに手を加えて状況を更に悪化させていき、利用料上限まで堂々巡りするか最悪の場合はrm -rfなどですべてをやり直す、などの選択をとってしまう。このような事態に陥ったときは、人間が問題箇所を特定し、取り除いてやらなければならない。これは、その言語やソースコード、ライブラリの仕様などを理解していなければできないことだ。「それらしいもの」を「完全な成果物」として仕上げるのは依然として人間の仕事であり、スキルが求められるのだ。
今現在、AIが代替するのは0からだいたいのものを作るあげていくいわば「作業」の工程であり、それ自体を主とするコーディングの業務は相当に減っていくと考えている。しかしながら、プログラミング言語をはじめとする知識・技術を身につけなくていいわけではない。むしろ、自分自身として持ち合わせる知見・キャパシティを最大限に高めつつ、時間のかかる作業のみをAIに代替させ、それを素早く100%の成果物に仕上げることこそ、現代のソフトウェアエンジニアに求められる価値なのだ。