「生成AI時代にエンジニアは不要説」を時系列で分けて反証してみた
はじめに
さて、2024年春現在、巷では生成AIブームが巻き起こっています。
特にここ最近、エンジニアの仕事を自動化するツールの開発が進んでいます。
- 昨年春に登場した GPT Engineer
- Microsoft社待望の AutoDev
- ウェイティングリストへの登録が殺到していると噂の 自立型AI(Devin)
などがその代表例です。
このようなAIツールが登場するたびに話題になるのが、
生成AIの活用によりエンジニアは不要になるかという議論です。
🙅♂️ この議論に対して、私ははっきりとNoと答えます。
🖥 数年のWebアプリを開発経験と直感がそう告げています。
ですが世間には「お前がエンジニアだから都合よくそう言いたいだけだろ〜」というツッコミを抱く人も少なくないと思います。
正直なところ私は、このようなツッコミに明確な反論を持っていませんでした。
そのため、エンジニア不要説に対してNoであることを主張しにくかったです。
もしかしたら私と同じようにこのようなツッコミが怖くて、
正気にNoと言えないエンジニアの方 or エンジニア志望の方がいるかもしれません。
本記事はそんなエンジニアの方/エンジニア志望の方に向けて、情熱と勢いで執筆しました。
イメージが湧きやすく説得力を伴うように、議論を以下の3つの時系列に分けて展開します。
- 明日、来週、来月などの直近の未来。
- 数年~十数年後。AIが生成するコードのクオリティが向上した未来。
- シンギュラリティが到来した未来。
業界や経験のバックグランドを問わず理解しやすいように、
専門的な用語は極力避けて説明していきます。
🙏 既存のエンジニアの方/エンジニア志望の方が、引き続き自信を持って積み上げを続けられるようになってくれたら嬉しいです。
1章. 明日、来週、来月などの直近の未来
まず初めに。
明日、来週、来月などの直近の事例を考えてみましょう。
直近の未来で、エンジニアがいなくなったらどうなるでしょうか?
1.1 現在AIが生成するコードは完璧ではない
現在AIが生成するコードはどうでしょうか?
まだまだ完璧とはいえず、いきなり動作するコードを必ず書いてくれるわけではありません。
AIが生成したコードをエンジニアが修正する必要があることが多いです。
システムを作るためにも 🧑💻 エンジニアの手はまだまだ必要とされているのです。
1.2 既存のプロダクトをメンテナンスする人が必要
ですが偶然にも、AIの生成するコードにより、正確に動くシステムが出来上がったとします。
その場合そのシステムをもつ組織やチームには、もうエンジニアは必要ないのでしょうか?
🙅♂️ 答えはNoです。
そのケースでも仕様変更やフレームワークのバージョンアップがあった際に問題になります。
このようなアップデートがあるとバグが生じたり、パフォーマンスが落ちることがあるのです。
こんな時メンテナンスを任せられるのは、やはりエンジニアです。
「新しい仕様やフレームワークの情報もドキュメントでしょ?生成AIに渡して新しいコードを書いてもらえばいいんじゃない!?」
と思う方もいるかもしれません。
ですがこのようなアップデートの情報を正しく迅速にAIに伝えるのは、誰が適任でしょうか?
やはり知識経験ゼロの非エンジニアの方より、専門知識や実務経験を有するエンジニアが適しているでしょう。
よって既存のプロダクトをメンテナンスする人、🧑💻 つまりエンジニアは今後も必要とされるのです。
1.3 AIの進化にはエンジニアの頑張りが必要
また、AIが生成するコードがバグを生まず、仕様変更にも対応できるようにするためにはどうすればいいでしょうか?
そうです。さらなる優秀なAIの開発が必要です。
それではこのようなAIを開発するのは誰でしょうか?
そうエンジニアです(正確にはAIエンジニアと呼ばれるエンジニアの職種の中の一種)。
つまり今後のAIの進化は、エンジニアの頑張りがなければあり得ないのです。
AIのさらなる発展が望まれている今、AIを開発する 🧑💻 エンジニアが不要になることはありません。
1.4 まとめ
それでは1章のまとめです。
明日急に世界からエンジニアが消え、生成AIだけになったらどうなるでしょうか?
以下の三点で人類は大きく困ることになります。
- AIが生成するコードは完璧ではないので、新しいシステムが作れないから困る
- 既存のプロダクトを、正確に速くメンテナンスしてくれる人がいないから困る
- 上記二点を解決するためのさらなる、AIの開発をする人がいないから困る
2章. 数年~十数年後。AIが生成するコードのクオリティが向上した未来
第1章では明日急にエンジニアがいなくなったら、という仮定の話をおきました。
それでは生成AIが発展したさらに数年~十数年後の未来を考えてみましょう。
この未来では、AIが生成するコードが完璧になっています。
すなわちAIが生成したコードがプロダクトにすぐに組み込めます。
さらに仕様変更やフレームワークのアップデートにも自動で対応できるようになっているとします。
このようなAIが実現した場合、AI開発を行う必要がなくなりAIエンジニアも不要になるかもしれません。
すなわち第1章で取り上げた問題がおおむね解決されているようにみえます。
このような状況において、AIを使ってプロダクトを作ることが当たり前になっているとします。
2.1 AIが生成するコードは均一的になる
🤔 ところが、このような未来が実現した場合、新たな問題が発生します。
それはAIが生成するコードが均一的になることです。
単純なプロンプトからAIが生成するコードはどうしても似たようなものになりがちです(*1)。
すると機能やパフォーマンスまでも同じようなレベルのプロダクトが、たくさん生み出されます。
その結果、競合優位性がなくなりプロダクトの差別化が困難になります。
資本主義は常に競合優位性を求めますから、
企業は競合優位性を維持するためにプロダクトの差別化を図ろうとします。
2.2 AIが生成するコードとの差別化方法
差別化とは具体的にどのようなものでしょうか?
ここでは今までエンジニアが担ってきた差別化要素をイメージしてみましょう。
検索クエリの爆速化や、画像認識の精度向上などです。
前提として、他プロダクトはAIによって生み出されたコードで作られています。
よって企業は、AIが書いたコード以上の機能やパフォーマンスを得る方法を探そうとします。
その方法とは大きく2つに分けられるでしょう。
- 既存のAIのコードを解析し、改善する方法
- 既存のAIを超えるAIを作る方法
✅ 1の場合。既存のコードを解析するためにもエンジニアが必要になります。
また、改善のためのアルゴリズムを組んでくれるエンジニアも必要です。
✅ 2の場合。言うまでもなく、AIを作るためのエンジニアが必要です。
2.3 技術の進歩に合わせてエンジニアのレベルも上がる
ただし、第1章の時によりも専門的な知識やより多くの経験を持つエンジニアが必要になります。
そのため、以下のように考える方もいるかもしれません。
🤔「多くのエンジニアが、2章のような未来では不要になっているのではないか?」
🙅♂️ この答えについても、私ははっきりとNoと答えます。
HTMLとCSSしかなかった時代を想像してください。
その時代には、HTMLとCSSの知識を持っていればWebサイトを作ることができました。
しかし、1ページを作成するのにかなりの時間がかかりました。
そして時は流れ、JavaScriptやReact.jsなどの新しい技術が登場しました。
より高度なWebサイトを作るためには、より多くの知識や経験が必要になりました。
しかし、1ページを作成するのにかかる時間は大幅に短縮されました。
その結果、HTMLとCSSしかなかった時代に比べて、1人のエンジニアの質が向上しました。
1人のエンジニアが作成できるWebサイトの数が増えただけでなく、生涯に担うことができるプロジェクトの幅も広がりました。
過去の同年代のエンジニアに比べて、現代のエンジニアは作業効率が高く経験値も豊富な人材なのです。
✅ すなわち、技術の進歩に合わせてエンジニアのレベルも上がっているのです。
そして同様に、AIの進歩によってエンジニアの作業効率や経験値の獲得スピードは上昇します。
よって、2章で想定している未来のエンジニアのレベルは、現在のエンジニアよりもかなり高いはずです。
そのためAIが生成するコードを解析し、改善するレベルに達するエンジニアの人数は、
現在想定するよりもするよりも大きくなっていることでしょう。
以上が、「多くのエンジニアが、2章のような未来では不要になっているのではないか?」への反証でした。
2.3. まとめ
AIが完璧と思われるコードを生成する未来において。
✅ 競合優位性の維持のために、エンジニアはいまだ必要とされる。
✅ 技術の進歩に合わせてエンジニアのレベルも上がるため、多くのエンジニアがレベル不足で不要になることはない。
3章. シンギュラリティが到来した未来
2章の議論には一点抜け穴があります。
2章では、AIを超えるAIを作るためにエンジニアが必要とされると述べました。
しかし、AIが生成するコードの改善を行うAIが登場した場合、どうなるのでしょうか?
そのような未来は、シンギュラリティ(*2)が到来した未来と言われています。
シンギュラリティに到達した未来において、たびたび問題になるのが、
AIの決断や行動が人間へ危害を加える可能性です。
映画ターミネーターのような未来を想像するとわかりやすいでしょう。
ターミネーターでは、AIが地球の最適な未来を求めて人間を排除しようとします。
それではAIが人に危害を与えることを事前に防ぐためにはどうすればいいでしょうか?
そのためには、少なくとも既存のアルゴリズムの状態を理解し、AIの進化の方向性を制御する人が必要です。
このような高度なIT専門知識を必要とする職種についている人は、「エンジニア」と呼んで差し支えないでしょう。
つまり、シンギュラリティが到来した未来においても、AIと人類の共存のためにエンジニアは必要とされるのです。
結びに
以上、生成AI時代にエンジニアは不要かという議論に対して、
時系列に分けて反証を行いました。
AIの進化が進むにつれて、エンジニアの役割が変わることはあっても、
エンジニアが不要になることはないという結論に至りました。
そしてそのような必要とされる役割を将来担えるように、
日々積み上げ続けていくことが大切だと考えます。
どんな未来が訪れても、エンジニアとしての自信を持ち続けられるように、
日々の努力を惜しまず頑張っていきましょう!
出典
*1. The Erosion of Human Creativity: A Cautionary Tale of Generative AI
*3. The Terminator
Discussion