今回は、ChatGPTを含むAIの進歩によりエンジニアの仕事がどうなるのかについて、自分なりに考察してみました。
素人の妄想には過ぎませんが、少しでもエンジニアとしてのキャリアを歩んでいく上でヒントになれば幸いです。
AIによって奪われる部分と奪われない部分
結論から言うと私はAIがエンジニアの仕事を完全に奪うことはないと考えています。
具体的には以下のような仕事は完全に代替されることはないです。
- 事業部や顧客との仕様調整
- ドメイン知識を含むコードの実装
- 最終的なコードレビュー
なぜならこれらの「ドメイン知識」が必要な仕事は、AIに説明して任せるよりも人間が行った方が速いからです。(もちろんAIがサポートしてくれる部分はあるとは思いますが)
また、どんなにAIが自動でコードを書いてくれても、人間の最終的なチェックは必要です。
そのため、プログラミングスキルの需要が失われることはないでしょう。
逆に、以下のような仕事は完全にもしくは一部代替されます。
- ミーティングの議事録や要約
- テストコードの実装
- 単純なロジックの実装
特にドメイン知識が絡まない単純なロジックの実装やテストコードの実装は自動化されるでしょう。
実際、私は今GitHub Copilotを使っていますが、既にテストコードはある程度自動で書いてくれています。
「完全なる自動化」には至ってはいませんが、将来的にAIの精度が上がれば完全に自動化されることでしょう。
AIは我々の仕事を奪うものではなく効率化するもの
ここまで述べてきたように、AIがエンジニアの仕事を完全に奪うことはないです。
検索による調査やコーディングを「効率化」するものと捉えた方が適切でしょう。
そのため、AIを敵対視するのではなく、味方につける意識で向き合った方が健全だと私は考えています。
具体的には、AIツールを食わず嫌いするのではなく、積極的に情報収集して試す姿勢を持つことが大切です。
AIに代替されるスキルかどうかを見極めて仕事をする
とはいえ、AIの進歩度合いによっては完全に代替されるスキルも出てくるでしょう。
それに備えるために大切なことは、常日頃から「AIに代替されるか」を、意識しながら仕事やスキルを選択することです。
例えばレジ打ちなどは分かりやすい例です。
完全に機械に代替される未来がハッキリと見えています。
そのため、いくら高速レジ打ちのスキルを高めても近い未来に使い物にならなくなることは明白です。
そのような状況でスキルにしがみついていても意味がありません。
サンクコストに縛られることなく、キッパリと見切りをつけることが大切です。
AIが完全に仕事を奪ったとしても問題はない
自分の仕事を奪う「敵」が目の前に現れたとき、人々の行動は二種類に分かれます。
一方は、「素直に変化を受け入れた上で新たな道を進む人」もう一方は「変化に徹底的に抗う人」です。
後者のわかりやすい例だとラッダイト運動があります。
これは1811年〜1818年にイギリスで起きた運動です。
産業革命にともなう「機械」の台頭により自身の仕事が奪われることを恐れた労働者たちが機械の打ち壊し運動を行いました。
この運動の結果がどうなったかは、現代の状況を見ればすぐに分かるでしょう。
いくらテクノロジーの流れに逆らっても無駄であることは歴史が証明しています。
なぜなら、人というものはどこまでも怠惰であり、より効率的で楽なものに流れるのは明確だからです。
いくら抵抗しても長期的に見れば無駄ということです。
だからこそ、エンジニアとして生きていく上で大切なのは、AIの進歩から目を背けて抵抗することではなく、積極的に学んだ上で柔軟に「変化」していくことです。
そのためにも、「変わってほしくない。。」と思うのではなく、変わったときに柔軟に動けるだけのスキルや経験、思考の柔軟性を備えておくことが大切です。
新しいものに対して食わず嫌いになるのではなく、とりあえず調べたり使ったり触ってみて判断する習慣を持っておくと良いでしょう。
おわりに
今回の私の主張を簡潔にまとめると以下の通りです。
AIがエンジニアの仕事を完全に代替することはない。
ただ、一部は代替するので、「AIに代替されうるスキルか」は考えながら勉強や仕事をする必要はある。
「AIの台頭」という大きな変化に抗うのではなく、変化の波に乗り自分自身も変化していくことが大切
AIの台頭に恐れ慄くのではなく、テクノロジーの進化を受け入れながらエンジニアライフを楽しんでいきましょう。
最後まで読んでいただきありがとうございました。
追記
ChatGPTにも同じテーマで書かせてみました。
ChatGPTとエンジニアの未来 ~written by ChatGPT~
まあまあ同じ結論な気がします。