エンジニア読者が抱える仕事やキャリアのお悩みに、注目企業のCTOやさまざまな領域の第一線で活躍する技術者が回答します>音声で聴きたい方はこちら今回から、Vol.11~15に出演したカミナシの原トリさんと10Xの石川洋資さんがゲストとして再登場。これまで同様、エンジニアからの質問や相談に応えていく。今回のテーマは、最近話題に拍車が掛かっている「AI」について。『ChatGPT』などが生成するコードのクオリティーの高さに注目が集まる中、エンジニアに求められるものはどのように変化していくのか。MCのばんくしさんも共に、それぞれの考えを聞かせてくれた。取締役CTO石川洋資さん(@_ishkawa)【今回の相談】(Yさん・35歳)AI技術の普及によって、誰もがコードを書ける時代がやってくると言われていますが、これからのエンジニアの役割はどのように変化すると思いますか?それによってエンジニアが身に付けるべき知識・スキルはどのように変化すると思いますか?AI活用が必須の時代、エンジニアへのニーズは「エンジニアリング」に帰結?河合:このテーマだけで3時間くらい話せそうですね。お互いのスタンスを知る意味でも、お二方の意見をお伺いできますか?石川:今、ソフトウエアエンジニアに期待されている役割の幅って広いですよね。テックリード的な仕事、と言うのでしょうか。プロダクトで何を解決しようとしているのか、技術的にどんなアプローチをとるのか、どういう計画でプロダクトの価値を検証していき、その計画をどうアーキテクチャに落とし込むのか......これらの具体的な検討事項で出てきたものを、今後はAIが担っていくことになると考えています。Copilot』だと、コメントに従った作業をしてくれる。関数をつければその通りに実装してくれます。これからのソフトウエアエンジニアはより抽象度が高い部分に脳みそを使うようになっていくんじゃないかな、と思うんです。昔、Twitterで「映画のハッカーはキーボードをカタカタしているけど、実際のハッカーはPCの前で考えている時間の方が長い」というツイートを見たことがあるんですけど、今後はそれがさらに進むんだろうなと思います。河合:コードを書く時間は確実に減るでしょうね。こっちが聞きたいわ」という気持ちです(笑)ジェネレーティブAI(生成AI)がコードを書いてくれるようになった世界でソフトウエアエンジニアの役割や身に付けるべき知識・スキルがどういう風になっていくか、という観点で僕の考えを端的に言うと、プルリクエストのレビューを書くのが上手いエンジニアが重宝されるだろうな、と思います。多くのWebアプリケーション開発の場合、プルリクエストのレビューの価値は、メンテナンスアビリティーやコードの意図をクリアにしていくことにあると思うんですよ。その中でバグも発見できたら超ファインプレー、みたいなね。僕がジェネレーティブAIと一緒に仕事をするとしたら、プルリクエストのレビューを書くのが得意なエンジニアがいたら嬉しいですね。原:石川さんもおっしゃっていた通り、コードの生成はAIが担っていくことになるかもしれないですが、ものづくりの「意図」の部分はエンジニアのスキルとしてさらに重要になるだろうと想像しています。河合:AIがどこまでやってくれるかも気になりますよね。テストもレビューもAIがやる......となったらエンジニアは何をやったら良いんだろう、とは思います。今後はコードに変更を加えたりシステムを安全に保ったりするには「AIがゼロから書いた方が早い」みたいな状況が増えていきそうですね。原:メンテナンスをしない、ということですよね。一度AIにコードを読ませて、「こういう感じに直してくれ」って指示を出したら一気に構造が変わる......みたいな世界がくるんじゃないかな、と思って。なるとレビューも必要なくなりますよね。私も最近、「10年後にはコンパイラとプロダクション環境にAIが生成したコードを投げまくる時代になっていそう」というツイートがバズっているのを見たのですが、もしそんな時代がきたらエンジニアの仕事は「投げること」になってしまうなと思いました。原:毎回フルスクラッチってことですね。Copilot』を使えば可能だと思うんですよね。原:そのうちジェネレーティブAIを使ってコードを書く場合の凝集性の考え方についての論文が書かれるようになりそうですね。河合:今で言うサービスメッシュみたいに、「動作は担保するけど中身(コード)はAIが書いたからよく分からない」ということもありえるな、と思ったりします。原:例えばBtoBのアプリケーション開発だと、開発の過程で発生したレガシーなシステムがどんどん積み上がっていくじゃないですか。個人的な希望としては、この過程の部分を理解しながら良い感じにフルスクラッチしてくれるジェネレーティブAIが出てきてほしいですね。河合:プロダクトとコードをつなげる、先ほど石川さんがおっしゃっていた「エンジニアリング」の部分は人間がやるしかないような気もしますよね。ソフトウエアエンジニアの役割がエンジニアリングに寄っていく一方で、ミスの発生が1%も許されないような、AIには任せられないコードも一定数存在するじゃないですか。いう方向性で戦っていくキャリアもあるとは思います。原:AIがコードを生成することが一般化したら、そのうち逆に「AI使用禁止です」というSIer案件なんかも生まれそうですよね。メンバー間で「この案件、AIが使えないから重たいんだよね」という会話が展開されたりするかも。河合:「人間にコードを書かせること」が価値になることはあり得ますよね。原:AIの学習に利用されるのを忌避する......というニュアンスでAIを禁止する企業は一定数いそうですよね。河合:今も職場によってはGitHub禁止というところもありますが、そういう観点ですよね。すると、エンジニアにとってソフトウエアスキルはずっと必要なのかな。原:でも、昔はSlackに抵抗感のある会社もたくさんあったけど、今では顧客とSlack上でカジュアルに会話できる時代に変わってきましたよね。AIに対する考え方も今後は変わってくるような気がします。AIがコードを書くのが当たり前になって、エンジニアの役割はプロダクト開発の方に寄っていくかもしれないですね。僕、最近一周まわってプログラミングが楽しいんですよ。ある意味自分の頭の中にあるものをカタチにしていく作業なので、自己表現の一つでもあると感じています。競技プログラミングじゃないですけど、プログラミングがエンジニアスポーツ的なものになったらいいなと思ったりするんですよね。原:昔は移動手段でしかなかった「歩く」という行為が、今や趣味や健康のための「ウォーキング」になっているように、コードを書くことも仕事ではなく趣味になったりするのかな。河合:プログラミングが仕事ではなく趣味になっていくと、やはりエンジニアが身に付けるべき知識・スキルはプロダクトに寄っていくことになりそうですね。いったスキルってどう身に付けていけば良いと思いますか?石川:やはり打席に立たない限りプロダクト視点を身に付けるのは難しいと思います。これまでのエンジニアに対するニーズはコーディングが基本で、プロダクト視点は責任があるポジションの人に求められていた傾向があったと思います。今後、AIベースのコードが一般化し、チームが出せるアウトプットの量が増えたら、必然的にエンジニアがプロダクト的な意志決定をしなければいけない場面が増えていきますよね。世の中が変わった時にその波に乗り遅れないことがすごく大切だし、むしろその波の少し先に行くことを意識しないといけないと感じています。河合:確かに、このタイミングでAIの技術を使わなかったり、習得しないままでいたりするとエンジニアとしてのニーズは減っていきそうです。視点で教えてください」という質問をしてみたので結果のスクショを共有しますね。河合:回答を読み上げますね。「短期的には、ソフトウエアエンジニアはより高度なAI指数を利用して効率的に開発を行うことが可能になります。コーディングの一部が自動化されてデバッグや最適化が容易になります。AIの出力の精度や品質を向上させるために、データの整理やフィードバックの与え方に意識が向けられるようになります。中期的(3~10年)には、ソフトウエアエンジニアの役割はAIと共同で働くことに重点が置かれるようになります。AIモデルの設計や選択、データセットの作成、そしてAIの結果を評価し適切な方法で組み込む技術が必要になります。原:「長期的(10年以上)には、多くの開発タスクが自動化されます。河合:AIの回答を見ても、やはりエンジニアという仕事自体は残る気がします。セキュリティーやQAなどは人の知識が必要ですし、AIに置き換えられにくい分野ですよね。プロダクト開発の方に寄っていく人もいるでしょうけど。石川:例えば、データの完全性を確保したい一方で一定のパフォーマンスも維持したい、でも予算は限られている......という課題がある場合、どこに重点を置き、技術的にどうソリューションを生み出すかに関してはやはり意志決定が必要ですよね。その部分では、今後もソフトウエアエンジニアが求められる気はしています。原:今回はテキストのジェネレーティブAIの観点で話を展開したと思うのですが、ステイブルディフュージョン(画像生成AI)方面の方にも話を聞いてみたいですね。河合:たしかに、課題の発見・解決とは違ったニュアンスで話を聞けそうな気がしますね。次回は4月20日(木)更新予定。今回の相談に引き続き回答していきます。2023.04.06なぜEMのやる気は“だだ下がり”がちなのか。転職サイトtypeは株式会社キャリアデザインセンターによって運営されています。