生成AI時代のプログラマーはどう変わる?
本連載では、生成AI時代のハローワークとして、子どもに人気な職業トップ100について、「AIでなくなる仕事・残る仕事」というテーマでインタビュー形式で記事化していきます。
今回は「プログラマ」です!
私の経営するLightblueもAIを扱い、エンジニアが中心の企業ではありますが、バイアスを取り除き、「生成AI時代のプログラマー」を考えるという趣旨のもと、大学卒業後、外資系IT企業でプログラマとして活躍する、和田さん(仮名)にインタビューしました。
近年、ChatGPTやGitHub Copilotなどの「生成AI」を活用したコーディング支援ツールが急速に普及し、ソフトウェア開発の現場に大きなインパクトを与えています。プログラマーは「手を動かしてコードを書く」だけでなく、「AIが書いたコードをレビューし、統合する」作業にシフトしつつあると言われています。
では実際に、最前線で活躍するプログラマ・ソフトウェアエンジニアはどのような変化を感じ、どのように仕事観をアップデートしているのでしょうか。
生成AIを取り巻く現場の実態
「AIを作る側ではなく、使う側」から見た視点
インタビューの冒頭、和田さんは「大手外資系IT企業といっても、AIを自ら開発する部門もあれば、私のようにAIを使う側として業務を進めるエンジニアもいる」と切り出しました。エンジニア全員が先端のAIモデルを開発しているわけではなく、日常のコーディング作業にAIツールを積極的に取り入れ、生産性を高めているというのです。
社内では、ChatGPTのように自然言語で質問すると回答してくれるツールに加えて、大規模言語モデルを活用したコーディングシステムも導入が進んでいます。実は世間のイメージほど外資系ITだから特別というわけでもありません。国内の大企業と比較すると、内部ルールが設定されていることで活用は進んでいますが、スタートアップと状況は近いはずです。
ただ、独自のAI技術を持っているため、情報漏洩などのセキュリティルールが明確なのは大きいですね。プライベートなコードを誤って外部サービスに送ってしまうリスクを抑えられるのは助かります。
大企業だけど、スタートアップ並に生成AIを使える環境というのが、一番正しい表現かと思います。
エンジニアの日常がどう変わったか
「従来のプログラマーの仕事」が変わりつつあると、多くのエンジニアが口を揃えて言います。特にコーディングの初期段階や定型部分、テストの作成などはAIに任せられるケースが増え、人間はコードの全体像を設計し、必要に応じて修正・最適化をする立場に移行しつつあります。
例えば、はじめて触れるテクノロジーや新しいコードベースへのキャッチアップが圧倒的に速くなりました。
以前はドキュメントを読み漁ったり、チームの詳しい人に聞いたりしていた場面が、今はまず生成AIに質問してみる流れがデフォルト。事前にAIで検索キーワードを教えてもらって、そのキーワードでさらに検索することもあります。
またチーム内のルールとしては、従来は新人エンジニアに15分考えて分からなかったら相談してと伝えていました。しかし、いまでは、まずAIに聞いてみてと伝えるようになりました。これによって、私自身のレビュー工数も減り、チーム全体のスピードが上がっています。
コーディングから「コードの評価・統合」へ
単純作業はAIが肩代わり、エンジニアは監督役に
現在の生成AIは、人間が与えるプロンプト(指示)さえ的確であれば、かなり完成度の高いコードを自動生成します。一方で、最終的な品質保証やアーキテクチャ全体の整合性をチェックするのは依然として人間の役目です。
AIが書いてくれたコードをそのまま本番に投入するわけにはいきません。バグやセキュリティリスクの温床になる可能性もあるので、きちんと検証するステップが必要です。
ただ、定型的なコーディングは圧倒的にスピードアップできるので、エンジニアはより本質的な設計や上流の工程に集中できるようになりましたね。
以前はコーディングに割いていた時間を要件定義やデザイン、アルゴリズムの検討に振り向けられるのは大きなメリットです。
このように、プログラマーの仕事は「コードを書く」から「コードを確認し、統合する」作業へ徐々に移行しているといえます。
特にシニアレイヤーでは、複数のメンバー(あるいはAIエージェント)を指揮し、大局的に開発を進める“監督”の役割が一層重視されるでしょう。
定型コーディングの減少はあるが、総需要はむしろ増える可能性も
AIの普及によって「プログラマーは将来いらなくなるのか」と不安視する声は少なくありません。しかし、多くの専門家は「定型的な仕事は減るものの、より上流工程やクリエイティブな開発の需要は増す」と口を揃えます。
定型コーディング部分の需要は減り、ジュニアエンジニアの仕事がなくなるかもしれませんが、長期的にはソフトウェア開発のハードルが下がることで新たなプロジェクトが次々と生まれるはずです。
そこではやはり、人間の判断力や発想力が不可欠。仕事が消えるというより、より上流の設計・管理、クリエイティブな発想をする職種へと進化していくイメージですね。シニアレイヤーの需要は増える可能性もあります。
シニアになるためには、下積みも必要
シニアレイヤーの需要は増えるとして、下積み時代は必要です。しかし、ジュニアにやらせる仕事がない世界で、どのようにスキルアップすれば良いのでしょうか。
まず、シニアレイヤーの仕事は残るとして、指示・監督するエンジニアは半分がAIエージェントになる未来はあると思います。その上で、あらゆるエンジニアはジュニアを経てシニアレイヤーになるけどジュニアの仕事はないという状況は近い将来くるかもしれません。
職探しはコンペティティブになる可能性は否定できません。
一方で、ジュニアからシニアになるスピードは上がるはずです。
AIと共に学ぶことで、新たな技術を身につける速度が加速しています。
私自身、外資系企業に勤めているため、アサインされたプロジェクトのコードオーナーが米国にいて、聞きたいことをすぐに聞けない環境だったりもします。非同期で働く文化やテクニックが浸透しているとはいえ、すぐに相談できる方がいいに決まっています。
生成AIを使うことで、人の手間をかけずに、自身の知りたいことが知れるのは非常に便利です。いまの生成AIはまだ、正しくない情報を提供するといった問題はありますが、全く知らない領域の技術に触れる際は、生成AIに聞いてから、そこで得られた概念や単語を使って、検索することもできます。
ハンコ文化はまだ残っている
プログラマという職業はアップorアウトの世界になってしまうのでしょうか。
私は外資系企業にいるので、やはり残り続けるための努力をしてきましたし、これからも必要と考えています。
一方で、日系の大手企業はセキュリティや法的リスクを考慮して生成AI導入に慎重になる部分があり、一気に「人員削減」という流れにはならないと考えています。
結局のところ、AIによって生まれた効率化のリソースを新規事業や追加機能に回せば、人材需要は底堅く推移する可能性もあります。
過去を振り返っても、世の中はすぐに変わらないことがわかります。現に、コロナという未曾有のパンデミックを経てもハンコ文化はまだ残っています。プログラマとして働く身としては、この移行にかかる時間には技術やテーマごとに差があることを理解して、先を読みつつ、変革のための移行期間を自身をアップデートする時間として捉えることが重要だと考えています。
子供にプログラミングを学ばせる意味はあるのか?
学びたいという気持ちがある人に道は残るはず
最近は、コンピュータサイエンス系の学部が人気で、情報系の学部の新設も増えているそうです。
私自身は、小さい時からパズルや数学が好きで、その延長でアルゴリズムに興味を持ち、いまの職業に就ています。エンジニアとして働きたいという職業を意識して進路を選択してきたかというとそうではありません。自分の興味を突き詰めた結果として、今の進路に行き着いた感じです。
最近では、コンピュータサイエンス系の学部が人気で、東大の進振りでも点数が高騰していると聞きます。コンピュータサイエンスの面白さが正しく世間に広まったり、エンジニアの待遇が向上して優秀な人たちがこの進路を選んでくれることは嬉しく思います。しかし、その勢いが加熱しすぎて、成績が良いから情報系に行くという進路選択をする、成績が良い人しか情報系に行けないというケースもあるという話も聞いたことがあります。
今後は、生成AIによってより本質的な仕事が重視され、また求められる技術キャッチアップの速度が加速する中で、成績が良いからエンジニアになったという人の中には辛さを感じる人が出てくる可能性もあります。
本質が極められた先にも、コンピュータサイエンスが好きだからという人の仕事は残り続けるのではと考えています。
これは、そうであって欲しいという私自身の希望・願望でもあります。
習い事としてのプログラミング
STEM教育として、プログラミングに注目が集まっています。一方で、AIの進歩を目の当たりにして、保護者のなかには「将来はAIが勝手にコードを書いてしまうなら、わざわざ子供にプログラミングを習わせる必要があるのだろうか?」と思う方もいるでしょう。和田さんは、習い事としてのプログラミングとピアノは変わらなくなると話します。
近年のプログラミング人気は、興味があるわけでなくても、役に立つからやらせようという側面が強いと感じます。習い事の中で、英会話や公文といったお勉強系以外で、役に立つからやらせるといったものは多くありません。
そのなかで、プログラミングは職業に直結しそうな習い事です。その意味でのプログラミングを習わせるといった姿勢で、押し付けられた子供たちがエンジニアになる先には、辛い世界が待っているかもしれません。
一方で、習い事が将来に与える影響というのは、直接的なものだけではないと考えています。私自身、幼い頃、ピアノを習っていましたが、今ではほとんど弾けません。しかし、音楽に触れる経験や、一つのことに集中して取り組むといった経験は人生を豊かにしてくれていると思います。
生成AIのプログラミングに与える影響として、プログラマとしての学びの加速に加えて、プログラミングの民主化の側面もあると考えています。今の生成AIのコーディング支援はまだ、エンジニア向けの高度な補完機能が中心ですが、一部のサービスでは自然言語からダッシュボードを一発で作ったり、自分好みのマリオゲームやポケモンを作れるようになっています。
今後は、プログラミングが特別なスキルではなく、WordやPowerPointのように誰でも使える一般的なツールに近づく可能性があります。だからこそ、論理的思考の訓練や自分で考え、トライ&エラーする経験の入り口として、子供向けのプログラミング学習は引き続き有効といえるでしょう。
また、なぜそのコードを書くのかを考える力も重要になります。
子供たちがScratchなどで簡単なゲームを作るとしても、ゲームのルールやどうしたら遊んでいて面白いかなどを考え抜く経験自体が、将来の創造性や論理的思考に役立ちます。
コードを書く手段がいずれAIに置き換わったとしても、問題を発見して解決策を提示する力、コミュニケーション能力はさらに重要になります。
興味を持ったら徹底的にやらせることが大切でしょう。
親が役に立つからと無理に押しつけると本人も辛い。ピアノやスポーツと同じで、子供自身が楽しいと思えるから続けられるのだと思います。
私自身、子育てについて考えることは多いですが、子供にとって好きなものを見つけることが一番大事なのではと考えています。
AIはまだまだ進化の余地があり、今後も技術は飛躍的に進むと思います。
その中で私自身は、よりユーザーにインパクトを与えられるプロダクトを作りたい。AIが広まった時代だからこそ、人間にしかできないことは何かを考え続ける姿勢が大切だと考えています。
インタビュアー あとがき、AIの影響を最も受けやすいプログラマにとって、生き残りの鍵は「自分の仕事を好きになること」
外資系IT企業で活躍する和田さんの言葉を通じて見えてくるのは、「自分の好きなことを追求」することの重要性です。和田さんは、好きを徹底することの重要性をインタビュー中何度もお話されていました。
プログラミングは自然言語以上に文法が厳密で、コンパイルして動かすことで、期待する挙動を実現できたり、ミスがあればエラーが発生します。その特性上、生成AIとの相性は非常によく、影響を受けやすい領域です。
その中で、AIエージェントに指示を出したりレビューできるレベルになるには、従来以上のスキル・努力が求められるのは間違いありません。しかし「何を作るか」は変わらず人間が決めるはずで、これからのエンジニアはどう作るかだけでなく、何を作るか、なぜ作るかといったミッション・ビジョンの一致の重要性は増します。
プログラミングという仕事が好きなだけでなく、自身が関わるプロダクト、取り組むプロジェクトの意義を理解し、自分ごととできるかが、生成AI時代に生き残るための鍵になると感じました。
