近年、ChatGPT、Claudeなどに代表される生成AIの進化は目覚ましく、さまざまな領域で導入が進んでいますよね。特に画像、音声、動画などのメディア領域では実際にプロダクトとして成立したものもよく目にするようになりました。
こういった生成AIの動きに対して各業界団体からも声明が出るなど大きな影響を及ぼしています。
もちろんプログラミングを代表としてIT領域にも大きな影響があると予測されています。果たして我々ITエンジニアはAIに職を奪われてしまうのでしょうか。実は筆者は1年以上前からこのテーマについて考えており、記事も執筆した経験があるのですがここで改めて考えてみたいと思います。
フリーランス8年目。 Web制作からフロントエンドアプリケーションの開発を行う傍ら、教育にも力を入れている。大手IT教育企業の講師として、生徒からの評価1位も経験。
AI登場後のITエンジニアの仕事の変化
現場によって導入具合の差があったり、エンジニアの思想の違いによって使い方には大きくバラつきがあると考えられます。したがって一言で「こう変わった」と表現するのは非常に難しいため、ポイントごとに見ていこうと思います。
まず第一に注目したいのは、決まった要件に対するコード生成能力の高さです。コーディングにおいては相性の良さからGitHub Copilotが特に利用されていますが、その上手い使い方として「コメントで要件を指示する」という方法が広く知られています。
例えば、関数の仕様をコメントで示すと、Copilotが自動で関数のコードを生成してくれます。
function add(a, b) {
return a + b;
}
この要件が細かいほど、コードの精度が高まります。要件が決まっている状態から実際にコードに落とし込まれるまでのスピードが圧倒的に高速になり、大幅な時間的コストの削減が実現しました。
次に、開発において大きなコストを占めていたデバッグも人間より得意だと言われています。これは僕も強く実感するところで、エラーメッセージからコードの問題点を発見する能力が非常に高いです。人間がコードをレビューするより圧倒的に高速ですから、これもコスト削減につながっています。
単純にエラーからコードの問題点を発見するだけでなく、包括的にデバッグを支援するツールも登場しています。
Meta社のHawkEyeやSinCode社のSinCodeなどが代表例で、どちらもリアルタイムでバグを検出し通知する機能を有する強力なツールです。
さらにコーディング以外に目を向けても、テストケースの生成やデプロイ関連の設定を自動で構築するなど幅広くAIが活躍しています。
このようにAIがエンジニア1人の時間的コストを大幅に削減した結果、エンジニアはよりクリエイティブな仕事に時間を使うことができると言われています。
AIは、実はプログラミングが苦手
さて、ここまでの内容を読んでいただくと「じゃあやっぱりエンジニアってAIに代替されるんだ・・・」と思ったかもしれません。しかし、実はAIはプログラミングが苦手であるということも本記事で述べておきたい重要なポイントです。
確かにAIは非常に高いコード生成能力を持ちます。しかし「そのままプロダクトに使えるか」という観点では残念ながら答えはNOです。
プログラミング、ITエンジニアリングは非常に厳密性の高い領域です。ほんの少しの違いで挙動が大幅に変わったり、あるいはセキュリティ的なリスクになることが起きます。また、プロダクトがどのような性質を持つか、どのような使われ方をするかによってどのような処理を正しいとするかにも微妙に違いが出ます。
プログラムのコードは、そういった業務知識も含めた上で正しく動作することを求められます。上記の例のような微妙な違いを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と共に進化し、新たな価値を創造する未来を目指しましょう。