リード タイムとサイクルタイムのサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
この記事に記載されているクエリを使用して、リード タイム チャートとサイクル チャートを作成できます。 リード タイムとサイクルタイムは、チームの開発パイプラインを経由して作業が流れるまでの時間を示します。 リード タイムは、作業項目の作成から完了までの合計経過時間を測定します。 サイクル時間は、チームが作業項目に積極的に取り組み始めると完了するまでにかかる時間を測定します。
次の図は、ユーザー ストーリーに対して行われた優先度の割り当てごとに平均リード タイムを分けた例を示しています。
リードタイムとサイクルタイムの詳細については、「 時間とサイクル時間のウィジェット と 引き出しフロー、リード タイム、サイクルタイムのガイダンスを参照してください。
Note
この記事では、 OData クエリを使用したサンプル レポートの概要 Power BI の基本的な理解があることを前提としています。
前提条件
- Access:少なくとも Basic アクセス権を持つプロジェクトのメンバーである必要があります。
- Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
サンプル クエリ
このセクションのクエリでは、完了したユーザー ストーリーのリード タイム データとサイクルタイム データの返しがサポートされます。 エリア パスまたはチーム名でクエリを実行できます。 これらのクエリはすべて、Analytics サービスによって各作業項目に対して計算されたデータを返す WorkItems
エンティティ セットを指定します。
Note
フィルターまたはレポートの目的で使用できるプロパティを確認するには、「Azure Boardsのメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する 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 Days、Cycle Time Days および CompletedDateSK
をサポートするプロパティを返します。 CompletedDateSK は、日付値を整数として返します
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
エンティティの AssignedTo
、 Iteration
、および 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 Query エディターでデータを変換する
Power Query エディターから、変換するデータを含むクエリを選択します。 リード/サイクル時間グラフの場合は、次の変換を行います。
Area
、Iteration
、AssignedTo
などの列を展開します。LeadTimeDays
列とCycleTimeDays
列のデータ型を整数に変換します。CompletedDateSK
列のデータ型を整数から日付値に変換します。
その方法については、power BI レポートを生成するために、 Transform Analytics データの次のセクションを参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
傾向グラフを作成する
次の例では、クエリの名前が LeadCycleTime に変更されましたが、列の名前は変更されませんでした。
Power BI で、Visualizations で Line グラフ レポートを選択します。
X 軸に
CompletedDateSK
を追加。Y 軸に
LeadTimeDays
を追加右クリックし、[Average を選択します。[凡例] にを追加
Priority
します。
レポートの例が表示されます。 レポート内の任意の領域にカーソルを合わせると、より多くのデータが表示されることに注意してください。