このトピックでは、研究開発 (R&D) の有効性を測定する方法、AI 支援プログラミングが R&D の有効性を向上させる方法、および AI 支援プログラミングのメリットを測定する方法について説明します。
測定の理解: メトリックを効果的に区別する
R&D チームが R&D の有効性を測定できるように、機能と動作、デリバリー、およびビジネス成果という 3 つのタイプのメトリックを含む 3 つの側面からなるフレームワークを提案します。 このフレームワークは、R&D 作業を包括的に評価するために使用できます。
機能と動作のメトリック: チームの働き方と能力を反映し、デリバリー効率に影響を与え、改善することができます。 メトリックには、単体テストのカバレッジ、コードスキャンで見つかった問題の数、デプロイ頻度、循環的複雑度、およびデカップリングレベルが含まれます。
デリバリーの有効性のメトリック: 技術チームの効率を反映し、ビジネス成果と相関しますが、ビジネス成果に直接影響を与えることはありません。 メトリックには、速度、スループット、およびデリバリーの品質が含まれます。
ビジネス成果のメトリック: 実際のビジネスパフォーマンスを反映し、企業の収益、規模、およびコストに直接関係します。 これらのメトリックは、業績評価に直接使用できます。これには、一般会計原則 (GAAP) の収益、粗利益、純利益、コスト、および月間アクティブユーザーが含まれます。
R&D の有効性とは何か、どのように測定されるのか?
R&D の有効性とは、ソフトウェア開発チームが継続的かつタイムリーに高品質の価値を一貫して提供する能力を指します。 R&D の有効性には、次の側面が含まれます。
正しいことを行う能力: 効果的な価値を提供する。
物事を正しく行う能力: 継続性、速度、および品質。 品質は速度の制約であり、継続性は一貫した速度と品質の要件です。
R&D の有効性の測定
効果的なメトリックは、適切な改善策を推進し、将来の強化イニシアチブを形成することができます。 チームの責任によって、使用されるメトリックの種類が決まります。 ほとんどの場合、技術チームは次の側面に基づいて評価されます。
効率: 速度 (フロー効率、単一の作業項目のフローレート) および スループット (リソース効率、特定の期間内に完了した作業項目の数)。
品質: デリバリー品質。これは、チームを離れた後の成果物の品質を指します。
従業員の満足度: 従業員の満足度は、継続性と正の相関関係にある主観的な調査メトリックです。
AI 支援プログラミングは R&D の有効性をどのように向上させるのか?
AI 支援プログラミングは、AI を活用してプログラミング効率を向上させます。これは、コーディングスキルと動作を反映しています。 改善は、次の側面に基づいて測定できます。
コーディング効率: 開発者がコーディングに費やす時間の割合 × AI によって生成されるコードの割合 = コードジェネレータによって節約される時間の割合。 たとえば、開発者がコーディングに時間の 30% を費やし、最終コードの 40% が AI によって生成される場合、開発者の時間の 12% が節約されます。
コード欠陥密度: コード欠陥密度は、コード 1,000 行あたりの欠陥数など、コード品質を反映する遅行指標です。
コーディングエクスペリエンスにおける従業員の満足度: コーディングエクスペリエンスにおける従業員の満足度は、ツールの使いやすさや実際のツールの有効性など、ツールが従業員のプログラミング作業をどのように支援するかを反映する主観的なメトリックです。
コーディング効率の向上
ソフトウェア開発では、コーディング効率は全体的な生産性に影響を与える重要な要素です。 コーディング効率に加えて、要件の品質、コラボレーションプロセス、テストの自動化、継続的インテグレーションと継続的デリバリー (CI/CD) のエンジニアリング機能などの要因が開発効率に影響を与えます。 これらの要因は、特定の改善を指す個々の効率と、全体的なプロセスの改善を指すコラボレーション効率の 2 つのカテゴリに分類できます。 問題解決の観点からは、これらの要因は、ボトルネック、手戻り、技術的負債、および能力不足という 4 つの主要な領域に分類できます。
コーディング時間の割合と AI 生成コードの割合
開発者がコーディングに費やす時間の割合 × AI によって生成されるコードの割合 = コードジェネレータによって節約される時間の割合。 たとえば、開発者がコーディングに時間の 30% を費やし、最終コードの 40% が AI によって生成される場合、開発者の時間の 12% が節約されます。
調査結果によると、回答者は時間の 32% をコードの記述または改善に費やし、35% をコード管理 (19% をコード <メンテナンス>、12% をテスト、4% をセキュリティ問題への対応) に費やし、23% を会議と運用タスクに費やしています。
開発行動の包括的な改善
開発フェーズでは、プログラマはコードの記述、デバッグ、テスト、および情報の取得を行います。 各タスクには改善の余地があり、改善は次の式を使用して定量化できます。
AI ツールを使用しない場合の作業単位あたりのコストである仮説的なベースラインを指定します。 このベースラインは、企業の関連する統計データを反映しています。 データが利用できない場合は、業界の統計データを参照できます。 AI による効率向上の追加コストも考慮する必要があります。 たとえば、承認されたコードを修正すると、手動ベースラインの精度に影響を与える可能性があります。
次の式は、最初の方法または 2 番目の方法のどちらを使用する場合でも適用されます。動作 × 効果 = 効率。 統計的な精度の過剰な追求は、不正行為や追加の管理コストにつながる可能性があるため、不要です。 重点は、中心的な質問に対処し、対応する改善を導くことです。
開発効率の向上による R&D の全体的な有効性への影響
リトルの法則に基づくと、速度 = 進行中の作業量 (WIP)/スループットです。つまり、スループット = WIP の量/速度です。 AI を使用することで、次の側面を改善できます。
デリバリー速度: 個々の作業項目の速度が向上すると、スループットが向上し、進行中のタスクの数 (タスク WIP) が大幅に減少します。 この削減は、保留中の要件に役立ち、保留中の要件の数を減らします。 保留中の要件の数の減少は、製品開発における WIP 全体 を削減し、R&D 速度を向上させます。
デリバリーの確実性: 速度の向上は、ソフトウェア開発の時間的確定性の対応する向上につながります。
コーディングエクスペリエンスにおける従業員の満足度
AI コーディングアシスタントに対する従業員の満足度を評価するには、調査を使用してフィードバックを収集し、改善すべき領域を特定できます。 アンケートのデザインには、ユーザーペルソナ、ユーザー満足度、ユーザー効率の 3 つの要素が含まれます。 アンケートの例:
ユーザーペルソナ
プログラミング経験は何年ですか?
1 年未満。
1~3 年。
3~5 年。
5~10 年。
10 年以上。
職場の主な役割は何ですか?
ジュニア開発者。
中級開発者。
シニア開発者。
アーキテクト。
テクニカルマネージャー。
その他 (指定してください)。
一般的に使用するプログラミング言語は何ですか? (複数選択)
Java。
Python。
C++。
JavaScript。
Go。
Ruby。
PHP。
SQL。
XML。
その他 (指定してください)。
AI コーディングアシスタントをどのくらいの頻度で使用しますか?
1 日に複数回。
1 日に 1 回。
週に数回。
月に数回。
めったにない。
ユーザー満足度
AI コーディングアシスタントにどの程度満足していますか? (1 から 5 の評価で、5 は最高の満足度を示します)
AI コーディングアシスタントの使用に関する次の説明についてどう思いますか?
視覚的に快適で、操作はコーディングの習慣に合っています。
邪魔されている感じはありません。
スムーズな学習曲線と直感的な操作。
生成されたコードの提案の有用性。
質問に対する正確な回答。
迅速なコードと Q&A の生成。
エラーが発生することはめったにありません。
ユーザー効率
AI コーディングアシスタントはコーディング効率をどの程度向上させましたか? (単一選択)
大幅に改善されました。
少し改善されました。
変化なし。
少し低下しました。
大幅に低下しました。
AI コーディングアシスタントを使用した後、次のステートメントについてどう思いますか?
私の仕事はより充実しています。
コーディングするときに自信があります。
使い慣れたプログラミング言語を使用すると効率が向上します。
使い慣れていないプログラミング言語を使用すると進捗が速くなります。
反復コードの記述が削減されます。
フローを妨げることなく、書き込みに集中できます。
<検索エンジン>の使用が削減されます。
調査結果は、次の画像の例と同様にフォーマットされる場合があります。
AI 支援プログラミングの有効性を測定する方法
採用率または AI 生成コードの比率を使用するかどうかを判断するには、両方の方法の定義と計算ロジックを理解していることを確認してください。
採用率 | AI 生成コードの比率 | |
説明 | 特定の期間内に承認されたコード補完の数と提案の数の比率。 式: 採用率 = 承認されたコード補完の数/提案の数。 | 特定の期間内に開発者によって承認された AI 生成コード行の数のコード変更行の数に対する比率。 計算式は次のとおりです。AI 生成コード行の比率 = AI 生成コードの行数/コード変更の行数。 |
利点 |
|
|
欠点 |
|
|
リポジトリにコミットされた AI 生成コードの比率を計算に使用しないのはなぜですか? 主な理由:
バージョン管理システムは識別できません: バージョン管理システムは、AI 生成コードと手動で記述されたコードを区別できません。 コードは、AI ではなく、コードを送信した個人によってコミットされます。
複雑さの増加: コミット率を追求すると、測定が不必要に複雑になります。 本番環境で同時ビルドを実現するための努力は、追加の変数を導入します。
AI 支援プログラミングの有効性を測定するには、AI 生成コード補完の比率を使用することをお勧めします。 AI 生成コード補完の比率を判断できない場合は、採用率を代替として使用できます。 ただし、統計的な精度の過度の重視は不要であることに注意してください。
AI コーディングツールのメリットを測定するための具体的な方法
効率に対する AI コーディングアシスタントのメリットを効果的に測定するには、次の側面に基づいて観察と分析を実行できます。
ツールの使用状況:
開発者数: AI コーディングツールを使用する開発者数をカウントします。
人気度: アクティブユーザーの数とそのアクティビティの頻度をカウントします。
動作: 特定の機能の使用頻度。コード補完、単体テストの生成、コードコメントの生成などの特定の機能の使用頻度をカウントします。
効果: 採用率または有効生成率。承認された AI 生成コードの行数のコード変更の総行数に対する比率を計算します。
開発効率の向上: 開発者が AI コーディングツールを使用する前後のコーディング効率の変化を観察して、相関関係を確立します。 また、次の式を使用して、個々の効率の向上の統計を取得することもできます。「動作 × 効果 = 効率」。
R&D 効率への貢献: R&D 効率には、要件の品質、コラボレーションプロセス、テストの自動化、CI/CD エンジニアリング機能など、複数の側面が関係します。 ただし、開発フェーズでの効率の向上は、R&D の全体的な効率に大きく貢献します。
システム思考による因果関係の確立: 包括的なシステムの観点から、動作、効率、および結果の間の因果関係を分析します。 最大のメリットをもたらす改善領域である主要なレバレッジポイントを特定します。
測定原則: 測定メトリックは、基本的な質問に対処する必要があります。AI コーディングツールは本当に開発効率を向上させますか? 測定指標は、誤った方向ではなく、適切な改善策を導く必要があります。