2024.6.8
Chat-GPTでエンジニアは大量解雇されるか

何かChatGPTの登場以降、意識高い系メディアで「エンジニアの大量解雇」という見出しをよく目にする。
日頃こういう、目を引くような見出しに踊らされて、クリックしてしまうのだけど、何故か生業に関することだとタイトルだけで萎えてしまう。
実際、エンジニアが大量解雇という話は2024年6月時点ではあまり聞かない。優秀な企業は、効率化が進んだ先に別の仕事が生まれて、ビジネスのスピード感が早くなるだけで、解雇なんてされないんじゃないかと思ったりもする。決裁のスピードを開発が追い越すようなことがあれば、その時は、それ以上の開発効率は不要になるということはあるだろうけど、そんなことはあり得るのだろうか。

エンジニアは本当にいらなくなるのか
そろそろ本題に入ろう。エンジニア大量解雇については、今のところないだろうというのが平凡なエンジニアの僕の意見である。
前提としてChat-GPTは間違いなく私達の作業効率を上げてくれる。AIそのものの性能を疑う意見ではないということは留意していただきたい。
エンジニアの仕事はChat-GPTに奪われない理由は単純でChatGPTにしてもGitHub Copilotにしてもプロンプトを打ち込むユーザーインターフェースだからである。
間抜けな理由に見えるかもしれないけど、結構真面目に考えた答えである。プログラムを書くだけであればChatGPTは既に多くのプログラマを凌いでいるだろう。だけど、実際に開発する上では、機能要件があり非機能要件があり、環境構築があり、プログラミングがあり、テストがある。
そして、結局最後に手を動かすのは、パソコンの目の前の自分である。インフラを作るのも、実際にテストするのも、GPTが解決できないエラーが出たらデバッグするのも、結局自分がやらなきゃいけない。
新しい技術を取り入れたり、前例の少ないことに挑戦しないといけない場合は、Chat-GPTだけでは難しい場面も多くなるだろう。前例の少ないことの挑戦というと、ハイテクなことばかりではない。ちょっとした技術要件が発生するとググっても見つからないみたいなことはしょっちゅうだろう。
そんなことを書くと、プログラムを書いてくれるからエンジニアがいらないというのはあまりに短絡的な話だということは理解してもらえるかと思う。
屁理屈は百も承知だが、ChatGPTでエンジニア大量解雇とか言ってるメディアは、エンジニアをどれだけ解雇したのかはっきりさせてから話を始めてみてほしいとか思ってしまう。
ノーコード・ローコードでもエンジニアは不要にならなかった
ノーコード、ローコードの登場でエンジニアいらないんじゃとか言ってたけど、結局システム開発案件はおろかWebサイト制作すらなくならない。というかむしろ開発会社では、ローコードの開発案件が来たりする。
結局餅は餅屋じゃないけど、なんぼエンジニアリングの敷居が下がったところで、専門外には手を出したくない人が多く、一定の品質を担保するなら素人がするよりも専門家に頼むのがいいというのが結論なのかもしれない。そういうと専門職はなくならないだろう。求められるレベルはより高くなるだろうけど。
Chat-GPTの出現でエンジニアの必須スキルは変わるかもしれない。
AIがプログラムを書いてくれるようになると、プログラミングするのがアイデンティティだったというエンジニアは寂しい思いをするかもしれない。
GPTがプログラムを書いてくれることで、プログラムの工数は格段に少なくなるのは間違いない。それによってエンジニアのスキルの優先順位は多少変わるだろう。
間違いなく言えるのは、プロンプトの入出力の能力、即ち国語力の重要性がより高くなるし、エンジニアリングの知識はやはり必要になる。何も知らない人がプロンプトを入力できるはずもないし、アウトプットの良し悪しが判断できるはずもない。地道作業を省力化できるだろうが、そこへ至るまでの地道な学習は省けないのかなというのが、今の所の所管である。ただ、学習そのものは、ChatGPTの出現によって効率的な方法があるかもしれないので、時間効率を上げることはできるだろう。
エンジニアが作業しなくてよくなる未来
現実的にどこまで自動化ができて、本当にエンジニアがいらなくなる未来は来るんだろうか。AIが自らプロンプトもなく動き出すのは流石にSF過ぎるかなと思うが、例えばこういうのはどうだろう。
プロンプトを打ち込んでインフラや動作環境を自動構築した上で、プログラムを書いて動作確認するとこまで、AIが行う。IaCとかCI/CDの構築を考えると、意外とそんなに遠くない未来にエンジニアがプロンプトを書くだけでシステムが出来る機能をクラウド事業者が出すかもなんて思ったりもする。
プロンプトを書くとインフラの自動構築をするためのJSONがテストコードとプログラムファイル、DBを定義するSQLが出てきて、後は動作確認するだけ、みたいな。
まあ、AIに成果物のイメージを伝えるのと、出てきたアウトプットが要件をクリアしてるかという判断は結局必要なんだろうけど。