AIで仕事がなくなる、とか。最近よく聞かれる。正直、自分もついていくのがやっとで。
でもね、ソフトウェアエンジニアの仕事が「なくなる」っていうのとは、ちょっと違う気がするんだよな。なんていうか…仕事の中身が、ごそっと変わる感じ。コーディングっていう作業自体は、そのうちAIの方がうまくなる。これは、たぶん、もう避けられない。
じゃあ、もう終わりか?って言われると、全然そんなことはない。むしろ、ここからが本番かもしれない。
先說結論
プログラミングは手段であって、目的じゃない。だから、AIがコードを書くようになっても、ソフトウェアエンジニアの仕事は残る。ただし、やるべきことの「中心」がズレていく。コードを書く人から、もっと大きな「システムを設計して、責任を持つ人」に変わっていくんだと思う。
じゃあ、エンジニアの役割ってどう変わるの?
正直、まだ誰も正解は持ってない。でも、たぶんこっちの方向に進むんじゃないかなって思うことを、いくつかメモしておく。
結局のところ、僕らの仕事って、コンピュータに「何を」してほしいかを伝えて、それがちゃんと動くようにすることだった。今まではその「伝え方」がコードだったけど、これからはもっと違う形になる。
AIの書いたコード、本当に信じていい?レビューの重要性
AI、特にGitHub Copilotみたいなツールは、簡単なCRUD処理とか、定型的なコードはあっという間に作ってくれる。これは、すごく便利。でも、AIが学習したコードって、ネット上のあらゆるコードだから…中には質が低いものや、古い書き方も混ざってる。
だから、AIが生成したコードのレビューっていう作業は、なくならない。むしろ、前より重要になるかも。AIのコードが本当に要件を満たしているか、セキュリティ的に問題ないか、変なクセがないか…。そういうのを見抜く「目」が求められる。単調な作業から解放される分、こういう品質管理の部分に集中できるようになる、って考えた方がいい。
「全体」を見る力。システム設計の価値が上がる
コードがコモディティ化するってことは、部品を作るのがすごく簡単になるってこと。でも、家を建てる時、木材や釘がたくさんあっても、良い家が建つわけじゃない。設計図が一番大事。
それと同じで、ソフトウェア開発も、個々の機能(部品)をどう組み合わせて、ビジネスの価値(家)を作るかっていう「システム全体の設計」が、めちゃくちゃ重要になる。この部分は、まだAIには難しい。顧客の本当の課題は何か、どの技術を組み合わせるのが最適か、将来の拡張性はどうするか…。こういうのを考えるのが、人間のエンジニアのコアスキルになっていくはず。
AIモデルの面倒を見るのも仕事になる
AIをシステムに組み込んだら、それで終わりじゃない。そのAIモデルがちゃんと期待通りに動いているか、監視して、パフォーマンスが落ちてきたら再学習させたり、調整したり…。こういう「AIの運用」も、エンジニアの新しい仕事になる。
結局、AIが出した結果の責任は、人間が取らないといけないから。AIを便利なブラックボックスとして使うだけじゃなくて、その中身をある程度理解して、管理できるスキルが必要になってくる。
ソフトウェアエンジニアの仕事、昔と今でどう違う?
頭の中を整理するために、ちょっと表にしてみる。あくまで個人的な見解だけど。
| タスク | これまでのやり方 (Before AI) | これからのやり方 (With AI) |
|---|---|---|
| 仕様策定 | 顧客と話して、ドキュメントに落とし込む。地道な作業。全部ゼロから。 | AIに「たたき台」を作らせる。でも最終的な「なぜ」を定義して、合意形成するのは人間。対話能力がもっと大事になる。 |
| コーディング | 設計書を見ながら、ひたすら書く。タイピングの速さも大事だったり。 | 定型的な部分はAIに任せる。人間は、もっと難しいロジックや、AIが書けない部分に集中。書くより「レビューする」時間が増える。 |
| テスト | テストコードを書く。これも結構な手間だった。手動でのテストも多い。 | テストケースの生成や、簡単なテストコードはAIが自動化してくれる。人間は、もっと複雑なシナリオや、エッジケースのテスト設計に頭を使う。 |
| デプロイ・運用 | DevOpsパイプラインを組んで、自動化。それでも監視は人間が目で見てることが多かった。 | 異常検知とか、自己修復とか、AIが運用を支援してくれる。でも、そのAIを監視・チューニングするのは人間の役目。 |
| スキルセット | 特定の言語やフレームワークに詳しいことが強みになった。 | 言語はツールの一つ。それより、システム全体を設計する力、問題を解決する力、そしてAIを使いこなす力が重要になる。 |
こう見ると、やっぱり「なくなる」んじゃなくて「変わる」んだよな。もっと上流工程というか、頭を使う部分にシフトしていく感じ。
そういえば、この話、海外と日本で少し温度差がある気がする。アメリカのテック界隈だと「AI Engineer」みたいな新しい職種が生まれてるけど、日本では経済産業省とかが言ってる「DX人材」の文脈で語られることが多い。つまり、既存のエンジニアがAIスキルを身につけて、業務を変革していく、みたいな。国が求めている方向性も、新しい専門家を育てるというより、全体の底上げに近いのかもしれない。この辺の違いは、結構面白い。
じゃあ、これからどうすればいい?
特に、これからエンジニアを目指す人とか、若手の人たちが不安に思うのは当然だと思う。いくつか、個人的に大事だと思うことを書いておく。
- コードは書き続ける。でも、楽しむために。
AIが書くからって、コードを理解しなくていいわけじゃない。むしろ、良いコードとは何かを知らないと、AIのコードをレビューできない。ただ、昔みたいに「書けること」自体が給料になる時代は終わるかも。だから、純粋に作ることを楽しむっていう気持ちが、すごく大事になる。 - 数学とか、基礎的な考え方。
AIのモデルって、結局は数学の塊だから。統計とか線形代数とか、基本的なことを知っていると、AIを「ただ使う」だけじゃなくて、その仕組みを理解して応用できるようになる。急に全部やるのは大変だけど、敬遠しない方がいい。 - DevOpsとアジャイル。
AIで開発スピードが上がるなら、それを支えるインフラや開発プロセスはもっと重要になる。速く、安全に、何度もリリースできる体制を作れるスキルは、これからもずっと価値が高い。 - とにかくAIを使ってみる。
怖がって避けてるのが一番もったいない。ただのツールだから。自分の普段の仕事で、何か自動化できないか?って考えて、小さなツールでも作ってみるとか。そういう「AIで何ができるか」を考えるクセが、市場での価値になる。
結局、確実なことなんて何もない。不確実だってことだけが、唯一確実なことなのかもしれない。
でも、それを「怖い」って思うか、「面白そう」って思うかで、だいぶ未来は変わってくる気がする。個人的には、後者でありたいな、と。
…で、あなたは、AIの未来に対して、正直、ワクワクする?それとも、やっぱり不安?よかったら、あなたの考えも聞かせてほしい。
