今や、私がこれまで「開発」に費やしていた時間の95%は、AIがやってくれるようになった。
一人のエンジニアとして、日々の業務がどう変わったか、正直に書く。
コードを書く仕事からの卒業
もともと、エンジニアの仕事は単にプログラムを書くだけではありませんでした。
新機能の要望があれば、実現可能かを調査し、設計を行い、既存の機能に影響がないかを確認した上で、実際にコードを書き、テストをして本番環境へ反映させる。
大まかにはそのような流れです。
しかし、AIが登場したことで、その前提が大きく覆りました。
今では、AIに「何がしたいか」を伝えるだけで、実現可能かを調査し、「このような設計はいかがですか?」と提案してくれます。
もちろん完璧ではないので、少しずれている部分を指摘したり、質問を重ねたりして方向性を整えていきます。
そして、実際のコードもAIが書いてくれます。
人間が書くよりも構造的に美しくないことはあるかもしれませんが、きちんと動作するものを出力してくれます。
たまに信じられないような不具合を出すこともあるためチェックは必要ですが、一つ一つの処理の分岐点を確認しながら、入力と出力を確認するといった、少し抽象的なチェックに変わりました。
かつては時間がかかっていたテストコードの作成すらAIが行ってくれるため、手作業で細かくコードを書く機会は、今ではすっかりなくなってしまいました。
現在の私の役割は、AIの提案を確認し、許可を出すか、修正の方向性を示すだけです。
具体的なコードの指示やリファクタリングの指摘といった作業は、人間相手にするよりも必然的に減っていきました。
今の私がやっていること
では、「コードを書かなくなったエンジニアは一体何をしているのか?」と疑問に思われるかもしれません。
現在の私の主な業務は、ひたすら仕様を作ることです。
Googleスライドを操作して新しい機能の仕様をまとめ、提案を行うという日々を送っています。
また、「これはどうなっている?」「あれはできる?」といった質問に対して調査し、回答することも多いですが、その調査自体もAIに任せています。
ただ、すべてをAIに任せられるわけではありません。
AIが作った成果物を本番環境に反映して動かしたり、セキュリティのチェックを行ったりといったシビアな部分は、引き続き人間が担っています。
ここを自動化してしまうと、「何かあった時に誰が責任を負うのか?」という致命的な問題が発生するためです。
責任を負い、最終的な判断を下すことは、依然として人間にしかできない重要な役割です。
エンジニアのスキルは別の場所で活きる
仕様作成や売上データの確認など、一見すると非エンジニア的な業務が増えましたが、だからといってエンジニアのスキルが不要になったわけではありません。
例えば、朝夕にさまざまなデータを確認するような手作業が発生した場合、普通ならレポートを見に行って一つずつ確認すると思います。
しかし私の場合は、AIを活用して毎日自動でデータを回収し、チェックするシステムをすぐに構築してしまいます。
非エンジニアが同じことをしようとしても、自分のパソコン上だけで動くものは作れるかもしれませんが、社内のサーバーに安全にアップロードし、関係者に公開できる仕組みを作ることは簡単ではありません。
非エンジニア的な業務を遂行するために、一瞬でシステムを作って自動化できるのは、やはりエンジニアとしての知識と経験があるからです。
世間では「AIによってエンジニアの仕事がなくなる」と言われることもありますが、私はそうは思いません。
単純な作業はなくなりましたが、代わりに営業や企画に近い領域へと足を踏み入れ、そこでエンジニアのスキルを活用していくことができます。
技術的なことを誰かに依頼せず、すべて自分で完結できるため、むしろこの恩恵を最も受けているのはエンジニアなのかもしれません。
新しい働き方へのシフトを楽しむ
正直なところ、私はもともと地道にプログラムを書く「機械いじり」のような作業が好きでした。
ただ一方で、しっかり仕事として成果が出て対価が得られるのであれば、手法にはそこまでこだわらないという考えも持っています。
そのため、プログラミングという作業から離れ、より上流の設計や管理といった作業に移ることも、「たった1回限りの人生、全く違うジョブを経験してみるのも面白いな」と割り切って楽しんでいます。
知人の中には「プログラムが書けなくなって悲しい」と嘆いている人もいます。
手段であるはずの技術そのものが目的になっていた人にとっては、少し辛い時代になったのかもしれません。
これからは、より高い視点から開発に携わりつつ、これまでは手の回らなかった分野にも積極的に挑戦していきたいと考えています。