【AI駆動開発】ChatGPT, LLMによって変わるソフトウェア開発のライフサイクル。これからのAI駆動開発の時代のエンジニアに求められるスキル・役割を大胆に予想する。
はじめに
ChatGPTに代表される大規模自然言語モデル(LLM)の急激な技術進化、LLMを利用し自律的にタスクを実行するAI・LLM Agentの登場により、アプリケーションやシステム開発のスタイル・進め方は大きな変化点をむかえています。
現在も進化系で大規模言語モデル(LLM)の精度・機能の向上が進んでおり、AI・LLM技術に投資が集中する中で、今後、更に加速度的に精度向上や機能拡充が予想されます。アプリケーション開発の領域では、Devin, AutoDev, GitHub Copilot Workspaceの登場により、これまで人がプログラミング(コーディング)することが前提だったアプリケーションの開発は、今後、AIによりプログラミング・テスト・リリースの作業がほぼ行われるようになると予想されます。
このような流れの中、エンジニアに求められる役割とスキルは今後大きく変わると予想されます。この記事では、今後の大規模言語モデル(LLM)の精度・機能の向上と、アプリケーション開発スタイルの変化を前提に今後エンジニアに求められる役割とスキルについて大胆に予想をしていきたいと思います。
注意点としては現時点の大規模言語モデル(LLM)の精度や、LLMを利用した開発ツールの機能を前提にするのではなく、今後更に精度向上・機能向上が進むという前提をおいて予想します。実際には精度が頭打ちになる場合、あるいは、精度が予想以上に向上する両面のケースの考えられます。あくまでも予想としてこれらを前提に読んでいただけると幸いです。
AI時代の開発スタイルとは?
現時点でも既にDevin, AutoDev, GitHub Copilot Workspaceのように開発プロセス全体をAIによって行うためのサービス/ツールの開発とテクニカルレビューが進んでいます。
これらのサービス/ツールは当初のリリース時点は適用できるアプリケーション・システムの制限や、品質面での課題、セキュリティ・著作権でのグレーゾーンも多々発生すると思われます。一方でこれらの課題・問題もLLMベースモデルの精度向上と、利用者の増加に伴い、急速に修正されると予想されます。
このような中、プログラミング、テスト、リリースの作業は、このようなAI開発ツールを利用することが前提となるプロセスになります。
また要件定義やソフトウェア設計においても、AI・LLMを活用することが前提になります。
このような中、エンジニアに求められる能力・スキルとしては、これらサービス/ツールを使いこなし、いかに効率よくかつ品質を保ってプロダクトを作っていく能力になります。
また組織全体として新しい開発スタイルへ移行するために、エンジニアのモチベートと、組織全体のスキルチェンジを大胆に行うことも併せて必要となります。
AI・LLMを利用した開発スタイルにおいて特に重要になるスキル・役割の一つとして、AIを利用した開発ライフサイクルのデザイン・開発パイプラインの設計があげられます。ここではこの役目を行うエンジニアを【AI駆動開発アーキテクト】と定義します。
【AI駆動開発アーキテクト】
AI駆動開発アーキテクトは、AIを利用した開発パイプラインの設計、AI Suiteの選択・設計、AIができない領域の対応方針の設計、開発者とのコラボレーション設計など、AIを利用した開発サイクルの構築をを役割としています。以下に各々の詳細を記載します。
ここでのポイントは、これらの領域をAIがやる、人がやるという2極化ではなく、どこまでもAIを活用してやるか、どこまでを人がやるか、という線引・役割分担が重要になります。
例として、ある特定の仕事に特化した小型の専門家型LLMが複数存在し、AIエージェントが互いにステータスを共有し、それによって処理をトリガーすることに加えて、開発者同士のコラボレーションも複雑に絡み合う大規模プロジェクトでは、それぞれの強みを分類して共有されたノウハウを適切に蓄積し、必要な時に情報が確実に提供されるようにする必要があります。
【プロダクトオーナー】
プロダクトオーナー(PO:Product Owner)の役割は基本的にはこれまでのプロダクトオーナーと役割は変わりませんが、要求分析・要求定義のどちらのフェーズにおいてもAIを活用し、高速かつ解像度を高くしていくスキルが求められます。
要求分析においては、ドメイン知識、ペインポイントの理解、ビジネス効果の設計などが必要になります。このためには深い業界理解や実際の現場での活動の理解が不可欠になります。今後は各業界ごとのドメイン知識を事前に学習させたAI・LLMが多数登場してくると予想されます。
プロダクトオーナーはそれらのAI・LLMを使いこなしながら、要求分析を行う力が必要になります。
要求定義においては、ユーザ体験の設定、非機能の明確化、効果測定方法の設計などが必要になります。これらは従来はシステムの開発経験を有したシステムエンジニア(SE)の経験と能力に大きく依存した領域です。AI・LLMの時代になってもこれらの経験・能力は、AI・LLMの活用およびAI・LLMのアウトプットの精査という観点では必要となります。一方で、この領域も今後はシステムエンジニアの知識や過去のシステムの要件定義を事前に学習させたAI・LLMが多数登場してくると予想されます。プロダクトオーナーはAI・LLMを使いこなしながら、要求定義を高速化・高度化する力が必要になります。
【CAIO+AI CoE】
CAIO + AI CoEは顧客価値向上と企業全体の生産性向上のためにAI活用の戦略立案・実行を役割としています。戦略実行を行うために必要な組織設計、組織全体のAI利活用能力の向上、人材の育成戦略もCAIO + AI CoEの役割となります。また日々進化するAI・LLM技術の調査・組織への知見の蓄積と共有も重要な役割となります。
企業内に開発部門を持つ大規模会社やシステムインテグレーターの場合には、AI駆動開発の現場適用のための施策実行、組織づくり、教育、フィードバックを元にしたカイゼンなども含まれます。
CAIO + AI CoEは、企業全体の「AIシフト」の推進に加え、更にはAI駆動開発の全体設計を行うという観点で非常に重要な役割になります。
まとめ
本記事では、今後、更に言語モデル(LLM)の精度・機能の向上が進み、いままで人がプログラミング(コーディング)することが前提だったアプリケーションの開発が多く変わる時代と、その中でのエンジニアに求められる役割とスキルについて大胆に予想してみました。
開発者が0になる、人が行うことがなくなることはありません。ただし、AI・LLMを利用することを前提に役割が大きく変わってきます。また、何れの役割でもAI・LLMを積極的に活用する能力が非常に重要になります。
特に開発領域においては、開発ライフサイクル・開発プロセス全体をAIをメインにしてやる領域、人がメインで動く領域を見極めながら設計し、そのプロセスを接続し、継続的アップデートのためのフィードバックループが動作するようにするように設計することが非常に重要になります。
開発者としては細かなプログラミングやテスト作業はAIが行う前提のもと、開発プロセスの設計、AI Suiteの選定、品質確保の設計、そしてAIに実施させる領域と人が実施すべき領域の切り分けなどを行う能力・スキルが求められることになります。
今後のソフトウェア開発の現場においてはAIを使わない選択はありません。一方でAIによる開発支援ツールや開発手法も新しい手法やツールが数多く登場し、機能・精度も日々向上されていきます。そのような時代を見据えて、AI・LLMによる開発ツールを積極的に取り組む力、AIを使いこなすか力、また、AIが苦手な領域をどのように克服するかの設計・対応能力を有したエンジニアが貴重になると考えます。
今回は大胆予想という敢えてふりきった予想をしていきました。今後の皆様のスキルやキャリアなどを考えるうえでの参考や知見につながれれば大変嬉しく思います。