🤖

生成AI時代を生きるエンジニアの生存戦略:変化をチャンスに変える

2025/02/28に公開

はじめに:AI進化の衝撃とエンジニアの危機

生成AIの進化は本当に目覚ましいですね!特に最近はプログラミング領域におけるAIの能力向上が著しく、脅威と感じているエンジニアも多いのではないでしょうか。これまでエンジニアが時間をかけて行ってきたコーディング作業が、AIによって瞬時に、しかも高い精度で実行される時代が到来しました。

そんな中で、従来の「コードを書く」ことを主な業務としてきたエンジニアは、その存在意義を問われ始めているかと思います。とはいえAIと同じ土俵で勝負をしても、まずスピードでは絶対に勝てないし、精度もどんどん追いついてきてるのが現実。とはいえそれはエンジニアっていう職業が無くなることを意味しているでしょうか?いいえ、私はむしろチャンスだと考えてます。

本記事では、生成AI時代においてエンジニアがどうやって生き残り、活躍していくべきか、その生存戦略を、自分の思考の整理のためにも書いてみることとします。

自己紹介

と、いきなり本題に入る前に、簡単に自己紹介させてください!株式会社エアークローゼットでCTOやってるといいます。
エアークローゼットの会社とかサービスの中でいうと、開発プロセスの中でも、お客様に提供しているサービスの中でも一部生成AI活用してますが、今日はエンジニア個人にフォーカスした話になります。

実体験:AIによる開発効率の劇的な向上

私自身の経験を振り返ってみても、AIの進化は開発プロセスを大きく変えています。以前は、新しい機能を実装する際、まず全体像を把握し、個々の実装方法や連携方法を調査し、実際にコードを書いていました。しかし、現在の開発では、全体の設計さえ済ませてしまえば、具体的な実装方法やコード生成はAIがサポートしてくれます。

例えば最近私がつくった機能で、AWSのRoute53のレコード変更に制限をかけたものがあります。
具体的に背景を説明すると、Route53はhost zone単位ではIAM policyで制限掛けられるのですが、同じhost zoneの中ではpolicyでの制限をかけることができません。

たとえば、hogehoge.com と fugafuga.co.jp なら個別に制御できますが、hoge.piyo.com と fuga.piyo.com は同じホストゾーンに属するため、片方だけ制限することができません。

とはいえこれだと編集権限を渡すことのリスクがとてつもなく高く、結果として権限委譲が非常に困難になるため、どうにかして別の手段をとれないか考えた次第でした。

これの最終的な解決方法としては、

  1. エンジニアが利用するロールでのRoute53のレコード編集を全面的に禁止する。
  2. LambdaにRoute53のレコード編集権限をつける。
  3. Lambdaのコード内で、編集可能なドメインをホワイトリストで管理。
  4. API Gateway経由で上記の処理を内部公開。
  5. 必要事項を入力するとこのAPIをそのまま実行できるcurlの文字列を出力するSlackのワークフローを作成。

って感じで実装してます。
このときはIAM policyだけで解決できない以上、Lambda使ってそれを叩ける口をつくるしかないだろうなくらいは自分で考えてましたが、そこからは下記のような流れでリリースまで持っていってます。

  1. ChatGPTにその課題に対して、そのHowをどう思うか相談。
  2. 概ね問題なかったので、それぞれのコードや設定方法を出力してもらう。
  3. 作成してくれたものを自分で確認し、内容を調整。
  4. 全体通して動作することを確認しリリース。

おそらく生成AIがまだない頃であれば、少し詰まるだけで下手したら1週間かかるし、それぞれ詳しくない人ならゆうにそれを超えるだろうと思いますが、今回は1日かからずにリリースできています。

こんな感じで、うまく生成AIを活用することができれば開発効率は飛躍的に向上します。しかし、この変化は同時に、エンジニアに新たなスキルセットを要求しています。

コードを書くこと”だけ”のエンジニアは生き残れない?

冒頭にも書いたように生成AIの進化により、単純なコーディング作業はAIに代替される可能性が高いと考えています。そのため、これまでのようにコードを書くことだけを専門としてきたエンジニアは、市場での価値を失い、淘汰されるリスクがあります。

しかし、実体験に書いたようにそれはAIとどう向き合うかによって大きく変わります。むしろ、AIを駆使することで、エンジニアはより高度な業務に集中できるようになり、新たな価値を生み出すスピードが上がり、チャンスが広がっています。

重要性を増す上流工程:要件定義と設計

AIがコーディングを担う時代において、エンジニアに求められるスキルの一つは、より上流の工程、すなわち要件定義や設計の能力です。

要件定義

エンドユーザやステークホルダーの要望を正確に理解し、システムの要件として明確に定義する能力は、これまで以上に重要になります。AIは与えられた要件に基づいてコードを生成できますが、その要件自体を定義することはできません。

そのため、エンジニアはエンドユーザやステークホルダーとのコミュニケーションを通じて、潜在的なニーズを引き出し、それを具体的な要件に落とし込むスキルが求められます。

設計

システムの全体像を把握し、最適なアーキテクチャを設計する能力も、エンジニアの重要な役割です。AIは個々のコンポーネントのコードを生成できますが、システム全体の設計思想やアーキテクチャを決定することはできません。また、システム設計はシステム単体だけでなく、それがどう使われているのか、どう運用されているのか、そのときにビジネス状況はどうかによっても最適なものが変わってくるので、それらも含めて把握し判断することはまだまだ容易ではありません。

エンジニアは、システムの拡張性、保守性、セキュリティなどの技術要件や、運用やビジネス状況を考慮し、最適な設計を行う必要があります。

AIを活用した開発:より少ないリソースで実現

要件定義と設計の能力を持つエンジニアは、AIを最大限に活用することで、これまでよりも少ないリソースでシステムを開発できます。

前半に書いた私の実体験のように、エンジニアはAIを駆使すればこれまでよりも少ないリソースで、より早くシステムの実装ができます。
さらにこれにより、エンジニアはより多くのプロジェクトに携わることができ、より早くシステム開発の経験が溜まっていくため、自身のスキルアップのスピード向上にも繋がります。

AIの限界とエンジニアの責任

一方で、みなさんもきっと日頃感じるように、AIが生成するコードは必ずしも完璧ではありません。バグやセキュリティ上の脆弱性が含まれる可能性もあります。当然ですが、AIはその責任を負ってくれません。その責任は、AIではなく最終的にシステムをリリースするエンジニアが負うことになります。

そのため、エンジニアはAIが生成したコードを鵜呑みにせず、必ず自身の目で確認し、必要に応じて修正する能力が求められます。

コードの読解力と修正能力:ビジネスで使えるサービスを生み出すために

AIがコードを生成する時代においても、エンジニアは一定レベルのコーディングスキルを維持する必要があります。それは、自分でコードを書くためではなく、AIが生成したコードを理解し、修正するために必要です。
また、AIは新規で生み出すシステムについては非常に有用ですが、すでに出来上がっているものの修正や、考慮すべき既存のシステムが別に存在しているような状況の場合、それをすべて考慮することは困難です。
また、たとえばちょっとした修正 - エラーハンドリングのアップデートやログ周りの機能強化、メッセージの変更等 -をするときに、わざわざAIに正しいコードを出力してもらうプロンプトを作成するのもナンセンス。
やはり自分で理解して改善できる状態であることが、少なくとも今時点は圧倒的に効率が良いです。

それをできることで、エンジニアはAIが生成したコードの品質を担保し、ビジネスで使えるレベルのサービスを生み出すことができるとも思っています。

生成AI時代におけるエンジニアの学習戦略

まとめると、生成AI時代において、エンジニアは従来のスキルセットに加えて、新たなスキルを習得する必要があると考えます。

上流工程のスキル

要件定義、設計、プロジェクトマネジメントなど、上流工程のスキルを強化する必要があります。これらのスキルは、AIには代替できない、エンジニアの強みとなります。

AI活用スキル

AIを活用した開発ツールやフレームワークを使いこなせるようになる必要があります。AIによるコード生成、テスト自動化、設計支援などの機能を活用することで、開発効率を向上させることができます。

コードの読解力と修正能力

AIが生成したコードを理解し、修正できるレベルのコーディングスキルを維持する必要があります。そのためには、定期的なコードレビューやリファクタリングの経験が重要です。

最新技術のキャッチアップ

生成AI技術は日々進化しています。最新の論文や技術動向を常にキャッチアップし、自身の知識をアップデートする必要があります。

まとめ:AIと共存し、新たな価値を創造する

生成AIの進化は、エンジニアにとって大きなチャンスです!AIを恐れるのではなく、積極的に活用し、自身のスキルをアップデートすることで、どんどん新しい価値を生み出せるエンジニアになっていきましょう!
そもそもこの記事も生成AIに相談しながら書いていて、全部自分で書くのと比べて10%〜20%くらいのコストしかかかっていないので、圧倒的に生産性上がってます。

余談

ここまでAI時代の生存戦略について話してきましたが、そもそも技術革新とエンジニアの立ち位置の変化は昔から繰り返されてきたものです。
AIに限らずどんな時代でも便利なものはどんどん出てきていて、そのたびにただ使っている人は淘汰され、それを活用できる人がより活躍できると思ってます。
それこそ例えばRails等のフルスタックフレームワークが出てきたときも、ただその上で機能実装するだけしかできなかった人は今生き残れていないと思いますし、逆にRailsがどうやって動いているのか、どういう思想で実装されてるのか考え、理解して自分の成長に繋げられた人は今も活躍してると思っています。
なので楽なものができてたからといってスキルアップをやめず、むしろそれによってスキルアップを加速させ続けていきたいですね。

最後に

私がCTOをしている株式会社エアークローゼットでは、そんな生成AI時代を飲み込めるエンジニアを絶賛募集しています!
ユニークな採用サイト「エアクロクエスト」とか、アドベントカレンダーもあるのでぜひ見てみてくださいー。

Discussion