- 目次
AIを活用した開発において変わること、変わらないこと
AIを巡る技術が急速に発達・普及しています。AIエージェントが計画を立て、ツールを選択して作業を実行する仕組みも広がり、MCPなどの接続方式によって外部のツールやデータも利用しやすくなるなど、AIによる自律開発の手法も日々進化しています。さらにフィジカルAIへの注目も高まり、AIを取り巻く技術は急速に進化しています。
AIの普及はシステム開発の高速化に寄与し、業界の人財不足に対しても大きな助けになる技術です。一方で、事実と異なる内容をもっともらしく生成する「ハルシネーション」や、最近ニュースになった「AIによる意図しない他社システムへのセキュリティ侵害」のような事件も起きており、適切な統制の下で利用・コントロールする重要性も忘れてはいけません。(※1)
AIは、要件や指示を受けて成果物を生成するという点では、開発チームの作業主体の一つとして捉えることができます。一方で、人間の開発メンバーとは異なり、責任主体にはなれず、出力の妥当性や実行権限を別の仕組みで統制する必要があります。
AI活用によって開発の速度や作業主体は大きく変わりますが、要件を明確にし、成果物を検証し、結果の妥当性を判断する必要があるという基本原則は変わりません。
https://www.meti.go.jp/shingikai/mono_info_service/ai_shakai_jisso/20260331_report.html
AIを活用した開発において人間が果たすべき責任、やるべきこと
前述の通り、人間が責任を持つべきは「要件を明確にし、成果物を適切に検証し、結果の妥当性を判断する」ことです。今後更なるAI技術の進化により人間が直接確認する範囲は十分変化し得ますが、現状は要件定義や重要な判断、最終確認に人間が責任を持つ必要があります。
もちろん、レビューやテストにもAIを活用できますが、AIの出力だけを根拠に判断することは避けるべきです。最終的な受入判断と説明責任は人間および組織が担い、自動テストやルールベースの検査、必要に応じた人間のレビューなど、複数の手段を組み合わせて品質を確認することが重要です。(※2)
https://www.nist.gov/publications/ai-risk-management-framework-japanese-translation
人間が担う役割を支える自動化技術
AI活用によりモノ作りの開発サイクルが大幅に高速化するからこそ、人間の作業も今まで以上に効率的に実施することが求められます。そこで、システム開発において特に活用が推奨される手法をご紹介します。なお、いずれも従来のアプリケーション開発の現場でも古くから利用されており、特別なものではありません。
CI/CD:
アプリケーション開発において必要な「ビルド」「テスト」「デプロイ」といった作業をあらかじめパイプラインとして定義することで、コード変更を継続的に統合し、ビルド・テスト・デプロイなどの工程を自動化・標準化する考え方・仕組み
図1:CI/CD概要
DevSecOps:
開発・運用プロセス全体にセキュリティ活動を組み込み、開発、運用、セキュリティの関係者が継続的に連携する考え方(※3)
(補足)CI/CDパイプラインにSAST、SCA、DAST、IaCスキャンなどを組み込むことも、その代表的な実践方法の一つ。
図2:DevSecOps概要
テスト自動化:
ツール自体の機能や人間が定義したテストコードによって、対象システムに対するテストの実行を自動化する技術
図3:テスト自動化概要
IaC:
システム基盤の状態をIaCコードとして定義し、そのコードを実行することで、システム基盤の構築・変更を自動化する技術
図4:IaC概要
これらの手法を活用して人力での作業を極力自動化すれば、作業効率は格段に向上します。それだけでなく、決まったテストを繰り返し機械的に実行できることで、「人間が品質・セキュリティを保証するために必要な試験」のうち、繰り返し実施するものを自動化できます。こうした自動化は、品質・セキュリティの両面でAIによる開発のガードレールとして機能するため、重要な手段となります。
必須とする評価項目については、テストツールでの実行をパイプラインに定義し、AIエージェントから起動させることで、パイプラインでは人間が定義した処理が実行され、承認や検証と組み合わせて、ハルシネーションの影響を極力抑制することにつながります。
もちろん、テストコードやIaCコード自体の開発や、CI/CDパイプラインの処理ステップとして簡易なAIレビューを組み込むなど、AIを活用した効率化も可能です。現時点では、人間によるレビューや最終確認を適切に組み合わせる必要がありますが、自動化とAIを活用して人手を可能な限り削減しつつ、必要な品質を維持しながら開発効率を高めていくことが重要です。
プラットフォームエンジニアリングの重要性
一方、CI/CD、DevSecOps、テスト自動化、IaCといった自動化技術は、導入初期の負担が最も大きく、使い方に関する個別の知識も必要となることから、導入のハードルが高いことも従来からの課題です。
この課題を乗り越える手段の一つとして、「プラットフォームエンジニアリング(以下、PFE)」の考え方が有効であると考えます。PFEとは、アプリケーション開発者が開発・テスト・リリース・運用に必要な機能をセルフサービスで利用できるよう、共通のツールチェーンやワークフロー、開発基盤を設計・構築・運用する取り組みです。(※4)
PFEのプラットフォームでは、CI/CD、DevSecOps、テスト自動化も仕組みとして含まれており、プラットフォームのデプロイにはIaCも活用します。
これらの技術をパッケージとして提供し、現場の利用負荷を下げることで、AI開発におけるスピード感に追随しつつ、人間が担う役割を効率的かつ確実に実施することが可能となります。
図5:プラットフォームエンジニアリング(PFE)×AI活用開発イメージ
PFEはあくまで手段の一つですが、どのような方法であれ、AIのスピード感に取り残されず人間が果たすべき責任を果たしながら、効率的な開発を実現していくことで、業界の人財不足を乗り越え、よりよいシステム開発に取り組んでいくことが大切であると考えます。
https://tag-app-delivery.cncf.io/ja/wgs/platforms/whitepaper/
まとめ
AIは開発を高速化する一方、生成量や変更頻度を増大させ、従来の人手中心のレビューや環境整備だけでは統制が追いつかなくなります。そのため、CI/CD、セキュリティ検査、テスト自動化、IaCなどを標準化し、再現可能なガードレールとして組み込むのが望ましいです。
さらに、PFEはこれらの仕組みを個別に構築するのではなく、開発者がセルフサービスで利用できる共通プラットフォームとして提供することで、AIを活用した開発のスピード感に追随するための有効な手段の一つとなります。
NTT DATAでは、社内外を問わず、AI技術や上記プラットフォームに関わる技術導入のお手伝いをしております。AI活用が進む現在、お困りの際にはぜひ当社までご相談いただければ幸いです。

