The Source 人工知能
記事

AIがもたらす影響を測定するための4つのステップ

AIイニシアチブの成功を判断するには、適切な測定フレームワークを用意することが重要です。正しいメトリクスに焦点を当てるための4つのステップを紹介します。

October 29, 2024 5分で読めます
Taylor McCaslin
Taylor McCaslin グループマネージャー、製品 - データサイエンス

AIは、組織の技術スタックの中核へと急速に進化を遂げました。AI搭載の生産性向上ツールを使用すると、反復的なコーディング作業を自動化して効率性を高められます。しかしながら、多くの組織ではAIに関する取り組みの影響を定量化するのに苦労している状態で、求めるビジネス上の成果を得られるようにメトリクスの見直しを行っています。

これまでも、AI搭載ツールの有無にかかわらず、デベロッパーの生産性を測定することは困難でした。GitLabが実施した調査でも、自社において現在実施されているデベロッパーの生産性の測定アプローチに満足しているCxOは半数に満たず、36%のCxOは現在の生産性測定アプローチに問題があると感じていることが明らかになりました。

AIにより強化されたコーディングの生産性を評価するには、コード行数やコードコミット数、タスク完了数といった従来のメトリクスよりも、より繊細なアプローチが必要となります。そのためには、開発速度、ソフトウェア品質、セキュリティのバランスを考慮した実際のビジネス成果に焦点を移す必要があります。

この記事では、ソフトウェア開発プロセスにAIがもたらす影響を完全に測定できるようにするために、組織において今すぐ行えるいくつかのステップをご紹介します。

1. AIの導入に際して明確な目標設定を行う

組織はソフトウェア開発にAIを導入する際、成功を測定できるように明確な目標とメトリクスを設定する必要があります。これには、組織全体の事業戦略に沿った短期的目標と長期的目標の両方が含まれます。たとえば、短期的目標は、AI搭載ツールを使用してコードレビューにかかる時間を30%短縮することであり、長期的目標は、リリースサイクルの短縮とコード品質の向上によって顧客満足度を高めることかもしれません。

さらに、組織のリーダーは、こうした目標やメトリクスの設定にデベロッパーを関与させる必要があります。デベロッパーはAIが開発作業にもたらす影響を直接経験しているため、AIによって生産性がどのように向上したか、あるいは妨げられたかについて貴重なインサイトを提供できます。GitLabの調査によると、デベロッパーの63%が今後5年間のうちにAIが自分たちの役割を大きく変えると予想しており、56%がソフトウェア開発ライフサイクルへのAIの導入はリスクが大きいと感じています。組織はデベロッパーに対して、AIが役立つと思われる箇所に加え、AIについて懸念している点を尋ねることで、ソフトウェア開発チームにAIがもたらす実際の影響が反映された、より有意義かつ適切なメトリクスを作成して成功を測定できます。

また、AIを継続的に社内プロセスに統合する中で、こういった目標を定期的に見直して再評価することも重要です。テクノロジーが急速に進化する中、ビジネスのニーズや優先事項もまた急激に変わりつつあります。明確な目標を設定することで、チームは進捗状況を追跡し、必要に応じて調整を行えます。

2. コーディングに関するメトリクスのみに注目しない

採用率や生成されたコード行数だけが、生産性を表すわけではありません。デベロッパーは、作業時間の75%以上をコード生成以外の作業に費やしています。そのため、AIを効果的に活用することで、デベロッパーがコードのレビューやテスト、保守に費やす時間を削減できる可能性があります。

AIを活用したソフトウェア開発のメリットを十分に認識して評価するためには、組織はソフトウェア開発ライフサイクル(SDLC)全体にわたって、AIが生産性と収益に与える影響の全体像に焦点を当てる必要があります。最適なアプローチは、SDLC全体から得られる定量的データと、デベロッパーから収集した、日常業務へのAIの実際の影響や長期的な開発戦略への影響に関する定性的なインサイトを組み合わせることです。

効果的な測定手法の1つとして挙げられるのがDORAフレークワークです。これは、特定の期間における開発チームのパフォーマンスを評価するものです。DORAメトリクスは、デプロイ頻度、変更のリード時間(LT)、復旧までの平均時間、変更失敗率、信頼性を評価します。これらのメトリクスは、チームのアジリティ、運用効率、ベロシティを可視化し、エンジニアリング組織がスピード、品質、セキュリティのバランスをいかにうまく取っているかの指標となります。

さらに、チームはバリューストリーム分析を活用して、コンセプトから本番環境までのワークフロー全体を調べる必要があります。バリューストリーム分析では、リードタイム、サイクルタイム、デプロイ頻度、本番環境の欠陥などのメトリクスを継続的に監視し、デベロッパー個人の行動よりもビジネスの結果に焦点を当てます。このような包括的なアプローチによって、より生産的で効率的な開発プロセスを実現できます。

3. 成長に伴う問題に備える

AIはコード生成を加速させる一方で、生成されたコードが品質やセキュリティの面で問題がある場合、技術的負債をもたらす可能性もあります。AIによって生成されたコードのレビュー、テスト、保守作業には、通常よりも時間がかかることがよくあります。デベロッパーはAIの使用で最初のうちは時間を節約できるかもしれませんが、結局はソフトウェア開発ライフサイクルの後の工程でその時間を費やすことになる可能性があります。また、AIによって生成されたコードにセキュリティ上の欠陥があれば、セキュリティチームが注意を払わなければいけなくなり、潜在的な問題に対処するためにさらに時間が必要になります。結果として、最初のうちは、開発チームとセキュリティチームはAIに対して懐疑的になる可能性があります。

まず、チームはAIアプリケーションを大規模に導入する前に、リスクの低い箇所で導入してベストプラクティスを開発すべきです。このように慎重なアプローチを取ることで、安全かつ継続的なスケーラビリティを実現できます。AIを使用すると、たとえば、コード生成やテスト生成、構文の修正、文書化を容易に行えるようになり、ツールのより効果的な使用方法を学ぶ中で、チームの勢いが高まり、成果が向上します。

チームが新しいワークフローに慣れるまで、最初のうちは生産性が低下する可能性があります。そのため、組織は、AIを既存のプロセスに統合する最適な方法を決定できるよう、チームに猶予期間を与えるべきです。

4. DevSecOpsプラットフォーム全体にAIを統合する

組織の開発プロセスにAIを導入する際、成長に伴う問題を軽減する方法の1つは、コード生成やディスカッションサマリー、脆弱性の説明などのAI搭載機能をソフトウェア開発ライフサイクル全体に統合するDevSecOpsプラットフォームを活用することです。DevSecOpsプラットフォームを使用することで、デベロッパーとセキュリティチームの双方が一元化された効率的なワークフローを利用して、より効果的なコラボレーションを行えるようになり、潜在的な問題を開発プロセスの早い段階で発見できます。

DevSecOpsプラットフォームに含まれるAI搭載のコードレビューおよびテストツールを用いると、セキュリティ上の欠陥やコーディングエラーが本番環境まで残ることのないように、事前に検出して対処できます。これにより、時間を節約できるだけでなく、技術的負債を減らし、ソフトウェア全体の品質を向上させることができます。また、統合プラットフォームの一部としてAIツールが含まれている場合、チームは根本原因分析とAIを組み合わせて、CI/CDパイプライン内のエラーを修正し、安全なコードをより迅速にリリースすることもできます。目指すところは、自動化されたコード品質スキャンとセキュリティスキャンを、組織が生成しているすべてのコード、特にAIによって生成されたコードに適用することです。

さらにチームは、AIが生産性にもたらす影響を測定するプラットフォームのビルトイン分析を使用することで、AIのROIを簡単に追跡できます。

AIは、DevSecOpsプラットフォームの進化において重要な役割を果たしており、品質やセキュリティを犠牲にすることなく、開発、セキュリティ、およびオペレーションチームがソフトウェア開発を加速できるように、コラボレーション方法を新たな形へと変化させています。今後ビジネスリーダーは、AI搭載ツールへの投資がどのような成果をもたらしているかを確認したいと考えるはずです。デベロッパーはビジネスリーダーの厳しい目を受け入れ、自分たちの仕事が組織のより広範な目標とどのように合致しているかをアピールできるこの機会を活用すべきです。

コード品質、コラボレーション、ダウンストリームコスト、デベロッパーエクスペリエンスを評価する包括的なアプローチを採用すれば、AI技術を活用して人間の努力を強化できます。

ソフトウェア開発においてAIを活用し始めるには

安全なソフトウェアをより迅速に開発する上で、戦略的なAIのフレームワークの構築に役立つ具体的なヒントが満載のeBookをぜひご一読ください(英語版のみ)。
ebookを読む

主要なポイント
  • ソフトウェア開発におけるAIの有効性は、コード生成といった生産性メトリクスだけでなく、コード品質、保守、テスト、セキュリティに対してAIがもたらす影響も考慮して測定すべきです。
  • AIの統合を成功させるには、ソフトウェア開発ライフサイクル全体から得られる定量的データと、デベロッパーから収集した、開発作業や戦略へのAIの実際の影響に関する定性的なインサイトを組み合わせて包括的なアプローチを取る必要があります。
  • 適切なアプローチを取ることで、ソフトウェアの品質やセキュリティを損なうことなく、AIによってコラボレーションを強化し、コード品質を向上させ、ビジネス目標の達成をサポートできます