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