次の方法で共有


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

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

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

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

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

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

Note

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

前提条件

  • Access:少なくとも Basic アクセス権を持つプロジェクトのメンバーである必要があります。
  • Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。

サンプル クエリ

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

Note

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

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

次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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'

完了した項目のみを返します。 完了した作業項目に対してのみ、 時間日数 および Cycle Time Days の値が計算されます。

Note

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

and CompletedDate ge {startdate}

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

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

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

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

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

, CycleTimeDays, LeadTimeDays, CompletedDateSK

Lead Time DaysCycle Time Days および CompletedDateSK をサポートするプロパティを返します。 CompletedDateSK は、日付値を整数として返します

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

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

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

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

次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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 エディターから、変換するデータを含むクエリを選択します。 リード/サイクル時間グラフの場合は、次の変換を行います。

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

その方法については、power BI レポートを生成するために、 Transform Analytics データの次のセクションを参照してください

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

すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。

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

傾向グラフを作成する

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

  1. Power BI で、VisualizationsLine グラフ レポートを選択します。

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

  2. X 軸にCompletedDateSKを追加

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

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

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

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