ITエンジニアはAIに職を奪われる?プログラマーに将来性はないのか?

近年、ChatGPT、Claudeなどに代表される生成AIの進化は目覚ましく、さまざまな領域で導入が進んでいますよね。特に画像、音声、動画などのメディア領域では実際にプロダクトとして成立したものもよく目にするようになりました。

直近ではトイザらスがOpenAIのSoraで1分間のCMを制作したというニュースもありましたね。AIがどれだけクリエイティブな分野で活躍できるかを示す良い例です。

こういった生成AIの動きに対して各業界団体からも声明が出るなど大きな影響を及ぼしています。

もちろんプログラミングを代表としてIT領域にも大きな影響があると予測されています。果たして我々ITエンジニアはAIに職を奪われてしまうのでしょうか。実は筆者は1年以上前からこのテーマについて考えており、記事も執筆した経験があるのですがここで改めて考えてみたいと思います。

監修者 セカヤサフリーランスエンジニア@小林 秀樹

フリーランス8年目。 Web制作からフロントエンドアプリケーションの開発を行う傍ら、教育にも力を入れている。大手IT教育企業の講師として、生徒からの評価1位も経験。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    AI登場後のITエンジニアの仕事の変化

    AI エンジニア

    現場によって導入具合の差があったり、エンジニアの思想の違いによって使い方には大きくバラつきがあると考えられます。したがって一言で「こう変わった」と表現するのは非常に難しいため、ポイントごとに見ていこうと思います。

    まず第一に注目したいのは、決まった要件に対するコード生成能力の高さです。コーディングにおいては相性の良さからGitHub Copilotが特に利用されていますが、その上手い使い方として「コメントで要件を指示する」という方法が広く知られています。

    例えば、関数の仕様をコメントで示すと、Copilotが自動で関数のコードを生成してくれます。

    // この関数は、2つの数値を受け取り、その和を返します
    function add(a, b) {
    return a + b;
    }

    この要件が細かいほど、コードの精度が高まります。要件が決まっている状態から実際にコードに落とし込まれるまでのスピードが圧倒的に高速になり、大幅な時間的コストの削減が実現しました。

    具体的にどの程度削減するかについてはさまざまな報告がありますが、LINEヤフーの導入実績によれば「1人あたりのエンジニアの1日のコーディング時間は約1~2時間の削減が行われ、アクティビティでは一部指標における利用前後の比較にて約10~30%の向上が見られた。」とあります。

    次に、開発において大きなコストを占めていたデバッグも人間より得意だと言われています。これは僕も強く実感するところで、エラーメッセージからコードの問題点を発見する能力が非常に高いです。人間がコードをレビューするより圧倒的に高速ですから、これもコスト削減につながっています。

    単純にエラーからコードの問題点を発見するだけでなく、包括的にデバッグを支援するツールも登場しています。
    Meta社のHawkEyeSinCode社のSinCodeなどが代表例で、どちらもリアルタイムでバグを検出し通知する機能を有する強力なツールです。

    さらにコーディング以外に目を向けても、テストケースの生成やデプロイ関連の設定を自動で構築するなど幅広くAIが活躍しています。

    このようにAIがエンジニア1人の時間的コストを大幅に削減した結果、エンジニアはよりクリエイティブな仕事に時間を使うことができると言われています。

    AIは、実はプログラミングが苦手

    さて、ここまでの内容を読んでいただくと「じゃあやっぱりエンジニアってAIに代替されるんだ・・・」と思ったかもしれません。しかし、実はAIはプログラミングが苦手であるということも本記事で述べておきたい重要なポイントです。

    確かにAIは非常に高いコード生成能力を持ちます。しかし「そのままプロダクトに使えるか」という観点では残念ながら答えはNOです。

    プログラミング、ITエンジニアリングは非常に厳密性の高い領域です。ほんの少しの違いで挙動が大幅に変わったり、あるいはセキュリティ的なリスクになることが起きます。また、プロダクトがどのような性質を持つか、どのような使われ方をするかによってどのような処理を正しいとするかにも微妙に違いが出ます。

    例えば数値計算をした結果をどのような型で返すべきかは場合によって変わります。数値型かもしれないし、文字列かもしれない。数値型だとしてもint型かもしれないし、double型かもしれない。

    プログラムのコードは、そういった業務知識も含めた上で正しく動作することを求められます。上記の例のような微妙な違いをAIに適切に判断させることは難しいでしょう。ここは人間がレビューし保証すべきポイントです。

    これはつまり、AIが得意なのはあくまで80点を高速に出力することであり100点を出すことではないということです。

    逆に言えば多少の揺らぎが認められる領域、あるいは100点を定義しにくい領域は活躍しやすいと考えています。

    例えば冒頭にも紹介したような画像、音声、動画などのメディア領域ですね。実際にプロダクトとして成立しているものもそういった領域に多い印象です。

    AIは、一定レベル以上のエンジニアとタッグを組んで初めて価値がある

    さて、そうなるとAIはある程度のものを高速に出力し、エンジニアがそれをレビューしてプロダクトに合わせて修正するという形で協力することが効果的な使い方ではないでしょうか。

    であれば、以下のことがエンジニア側に求められます。

    • AIが出力したコードを読み解ける能力
    • AIが出力したコードと、プロダクトに必要な要件との差を理解できる能力
    • その差分を埋めるための実装ができる能力

    AIを使うエンジニアがこれらの能力を持っていて初めてAIの恩恵を受けられると言えるでしょう。もし能力を持っていなければ、AIが生成した、一見良さそうに見えるが実際にはそのまま使えないコードを修正することができません。レビュアーの方が能力がないとレビューにならないのは当然ですよね。

    AIに代替されるとまでは言わなくとも、要求される能力のベースは上がったと言えるかもしれません。

    ITエンジニアがAIを上手く活用するコツ

    AIが得意なのは80点を高速に出力することです。AIに依頼を出す際は、

    • 要件をなるべくコンパクトに切り分ける
    • 要件になるべく揺らぎがないようにする

    というように整理をした上で行うのが良いでしょう。要件が固まっているほどAIの精度は高まりますし、レビューする上でも小さい単位で出力してもらった方が修正の難易度が下がります。

    なんだかマネージャーに求められることに似ていますね。これからのエンジニアは、一人一人が生成AIというパートナーとチームを組んでいる意識で取り組むのが重要だと筆者は考えています。

    まとめ:AIと共存するエンジニア

    コーディングやデバッグといったタスクをAIが高速かつ効率的にこなすことで、プロジェクトの生産性を大幅に向上させます。その点ではAIがエンジニアの仕事を奪っていると捉えられる部分も確かにあります。

    しかし完全にエンジニアの役割を代替するわけではありません。手間のかかる部分をAIに任せ、エンジニアがより創造的で戦略的な仕事に集中できるようになります。

    つまりAIの進化は、ITエンジニアの仕事を奪うのではなく新しい形に変えてきていると考えましょう。

    これからの時代、AIを恐れるのではなく共存するパートナーとして受け入れその恩恵を最大限に活用することが重要です。考え方を変えるのは非常に難しいことですが、どんな職業も時代に合わせて変化が求められます。ITエンジニアも例外ではありません。AIと共に進化し、新たな価値を創造する未来を目指しましょう。

    例:開発手順、ツール、プロンプト

    メルマガ登録

    社内で話題になった「生成AIに関するニュース」をどこよりも早くお届けします。