次の方法で共有


リード タイムとサイクルタイムのサンプル レポート

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

この記事に記載されているクエリを使用して、リード タイム チャートとサイクル チャートを作成できます。 リード タイムとサイクルタイムは、チームの開発パイプラインを経由して作業が流れるまでの時間を示します。 リード タイムは、作業項目の作成から完了までの合計経過時間を測定します。 サイクル時間は、チームが作業項目に積極的に取り組み始めると完了するまでにかかる時間を測定します。

次の図は、ユーザー ストーリーに対して行われた優先度の割り当てごとに平均リード タイムを分けた例を示しています。

Power BI リード サイクル時間の傾向グラフ レポートのスクリーンショット。

リードタイムとサイクルタイムの詳細については、リードタイムとサイクルタイムウィジェットと累積フロー、リードタイム、サイクルタイムのガイダンスを参照してください

Note

この記事では、「 OData クエリを使用したサンプル レポートの概要」を 読み、Power BI の基本的な理解があることを前提としています。

前提条件

  • 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。

サンプル クエリ

このセクションのクエリでは、完了したユーザー ストーリーのリード タイム データとサイクルタイム データの返しがサポートされます。 エリア パスまたはチーム名でクエリを実行できます。 これらのクエリはすべて、Analytics サービスによって各作業項目に対して計算されたデータを返すエンティティ セットを指定 WorkItems します。

Note

フィルターまたはレポートの目的で使用できるプロパティを確認するには、「Azure Boardsのメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する EntityTypeに提供されているメタデータを確認してください。

ユーザ ストーリーとエリア パスのリード タイムとサイクルタイムを返す

以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and StateCategory eq 'Completed' "
            &"and CompletedDate ge {startdate} "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
            &",CycleTimeDays,LeadTimeDays,CompletedDateSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

置換文字列とクエリの内訳

次の文字列を実際の値に置き換えます。 置換に角かっこを {} 含めないでください。 たとえば、組織名が "Fabrikam" の場合は、 ではなく {Fabrikam}を にFabrikam置き換えます{organization}

  • {organization} - 組織名
  • {project} - プロジェクト間クエリの場合は、チーム プロジェクト名を指定するか、"/{project}" を完全に省略します
  • {areapath} - エリア パス。 形式の例: Project\Level1\Level2
  • {startdate} - 指定した日付以降に完了したアイテムのレポートを、次の形式で開始します YYYY-MM-DDZ。 たとえば、 2022-04-01Z 2022 年 4 月 1 日を表します。 引用符で囲む必要はありません。

クエリの内訳

次の表では、クエリの各部分について説明します。

クエリ パーツ

説明


$filter=WorkItemType eq 'User Story'

ユーザー ストーリーのデータを返します。

and StateCategory eq 'Completed'

完了した項目のみを返します。 完了した作業項目に対 してのみ、リード タイム日数サイクルタイム日数 の値が計算されます。

Note

レコードの生データを見ると、エントリが CycleTimeDays=0表示される場合があります。 これは、ユーザー ストーリーまたは作業項目が進行中のワークフロー カテゴリの状態になり同じ日に完了したときに発生します。 ワークフロー状態カテゴリの詳細については、「バックログとボードでワークフローの状態と状態カテゴリを使用する方法」を参照してください

and CompletedDate ge {startdate}

指定した日付より後に完了したアイテムを返します。 例: 2022-04-01Z は 2022-April-01 を表します

and startswith(Area/AreaPath,'{areapath}')

指定した特定 のエリア パス の下にある'{areapath}'作業項目を返します。 チーム名でフィルター処理するには、filter ステートメントを使用します Teams/any(x:x/TeamName eq '{teamname})'

&$select=WorkItemId, Title, WorkItemType, State, Priority

返すプロパティを選択します。

, CycleTimeDays, LeadTimeDays, CompletedDateSK

リード タイムの日、サイクルタイムの日数および CompletedDateSK. CompletedDateSK は、日付値を整数として返します

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)

Iteration、およびエンティティのプロパティをAssignedTo展開しArea、そのエンティティのエンティティ フィールドを選択します。

ユーザー ストーリーとチームのリード タイムとサイクルタイムを返す

このクエリは、前のセクションで指定したクエリと同じですが、エリア パスではなく複数のチーム名でフィルター処理される点が異なります。

以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and StateCategory eq 'Completed' "
            &"and CompletedDate ge {startdate} "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
            &",CycleTimeDays,LeadTimeDays,CompletedDateSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(省略可能)クエリの名前を変更する

既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。

Power BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

Power Query エディターでデータを変換する

Power Query エディターから、変換するデータを含むクエリを選択します。 リード/サイクル時間グラフの場合は、次の変換を行います。

  • Iteration、. などのArea列を展開しますAssignedTo
  • 列のCycleTimeDaysデータ型をLeadTimeDays整数に変換します。
  • 列のデータ型を CompletedDateSK 整数から日付値に変換します。

方法については、「Analytics データを変換して Power BI レポート生成する」の次のセクションを参照してください。

クエリを閉じて変更を適用する

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。

[閉じて適用] オプションPower Query エディタースクリーンショット。

傾向グラフを作成する

次の例では、クエリの名前は LeadCycleTime変更されましたが、列の名前は変更されませんでした。

  1. Power BI で、[視覚化] の下にある折れ線グラフ レポートを選択します

    リード タイム 傾向グラフ レポートの Power BI の [視覚化] と [フィールド] の選択のスクリーンショット。

  2. X 軸に追加CompletedDateSKします

  3. Y 軸に追加LeadTimeDays、右クリックして [平均] を選択します。

  4. [凡例] にを追加Priorityします。

レポートの例が表示されます。 レポート内の任意の領域にカーソルを合わせると、より多くのデータが表示されることに注意してください。

Power BI リード サイクル時間の傾向グラフ のサンプル レポートのスクリーンショット。