Примеры отчетов об сжигании спринта

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Диаграммы спринта сгорания полезны для отслеживания того, насколько хорошо команда выполняет план спринта. Несколько встроенных диаграмм и мини-приложений панели мониторинга поддерживают очистку спринта мониторинга. См. статью "Настройка и мониторинг спринта сгорание".

Однако можно настроить диаграмму спринта сгоревшего с помощью Аналитики и Power BI с помощью запросов, указанных в этой статье. В следующем примере показано сгорание пользовательских историй и их состояний.

Снимок экрана: отчет о кластеризованной диаграмме с помощью диаграммы Спринта Power BI.

Внимание

Удаление путей области или перенастройка путей итерации может привести к потере данных и не может быть отменить изменения. Например, сгореть или сгореть мини-диаграммы, спринт сгореть и скорости для команд, пути к областям которых не отражают правильные данные. Исторические диаграммы трендов ссылаются на путь области и путь итерации, как определено в точке в прошлом для каждого рабочего элемента. Если путь к области или путь итерации удаляется, данные журнала для него не могут быть извлечены.

Дополнительные сведения о сожжении и сожжении, а также рекомендации по сожжению и сожжению.

Примечание.

В этой статье предполагается, что вы прочитали обзор примеров отчетов с помощью запросов OData и имеют базовое представление о Power BI.

Необходимые компоненты

  • Чтобы просмотреть данные аналитики и запросить службу, необходимо быть членом проекта с базовым доступом или большим доступом. По умолчанию все члены проекта предоставляют разрешения для запроса аналитики и определения представлений Аналитики.
  • Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий по отслеживанию данных см. в статье "Разрешения и предварительные требования для доступа к аналитике".

Примеры запросов

Для получения исторических данных требуется выполнение запросов к набору WorkItemSnapshot сущностей.

Примечание.

Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для Azure Boards. Вы можете отфильтровать запросы или возвращать свойства с помощью любого из Property значенийEntityType, доступных в разделе EntitySetили NavigationPropertyBinding Path значениях. Каждое EntitySet соответствует .EntityType Чтобы узнать больше о типе данных каждого значения, просмотрите метаданные, предоставленные для соответствующего EntityTypeзначения.

Истории пользователей burndown для пути к области и текущей итерации

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'User Story' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and StateCategory ne 'Completed' "
            &"and DateValue ge Iteration/StartDate "
            &"and DateValue le Iteration/EndDate "
            &"and Iteration/StartDate le now()  "
            &"and Iteration/EndDate ge now() "
        &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
            &"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Строки подстановки и разбивка запросов

Замените следующие строки значениями. Не включайте скобки в подстановку {} . Например, если вашей организации присвоено имя Fabrikam, замените {organization} на Fabrikam, а не {Fabrikam}.

  • {areapath} — Путь к области. Пример формата: Project\Level1\Level2.

Разбивка запросов

В следующей таблице описана каждая часть запроса.

Часть запроса

Description


$apply=filter(

Запуск фильтра()

WorkItemType eq 'User Story'

Сожжение в пользовательских историях

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

Рабочие элементы под определенным путем к области. Замена на возвращаемые Area/AreaPath eq '{areapath}' элементы по определенному пути области.

Чтобы отфильтровать по имени команды, используйте инструкцию фильтра Teams/any(x:x/TeamName eq '{teamname})'

and StateCategory ne 'Completed'

Фильтрует завершенные элементы. Дополнительные сведения о категориях состояний см. в статье о том, как состояния рабочего процесса и категории состояний используются в невыполненных работах и советах.

and DateValue ge Iteration/StartDate

Начать тенденцию в начале итерации.

and DateValue le Iteration/EndDate

Конец тренда в конце итерации.

and Iteration/StartDate le now()

Выберите текущую итерацию.

and Iteration/EndDate ge now()

Выбор текущей итерации

)

Закрыть фильтр()

/groupby(

Запуск groupby()

(DateValue, State, WorkItemType, Priority, Area/AreaPath, Iteration/IterationPath),

Группа по DateValue (используется для тренда) и все поля, о которые вы хотите сообщить

aggregate($count as Count, StoryPoints with sum as TotalStoryPoints)

Агрегирование по количеству пользовательских историй и сумме точек истории

)

Close groupby()

Обгорение пользовательских историй для команды и текущей итерации

Этот запрос совпадает с используемым выше, за исключением фильтров по имени команды, а не по пути к области.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'User Story' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
            &"and StateCategory ne 'Completed' "
            &"and DateValue ge Iteration/StartDate "
            &"and DateValue le Iteration/EndDate "
            &"and Iteration/StartDate le now()  "
            &"and Iteration/EndDate ge now() "
        &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
            &"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Истории пользователей burndown для всех спринтов с начала года

Может потребоваться просмотреть сгорание всех спринтов в одном отчете. Эти запросы извлекают спринт сгорание и их по точкам истории, для всех спринтов с начала 2022 года.

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'User Story' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and StateCategory ne 'Completed' "
            &"and DateValue ge Iteration/StartDate "
            &"and DateValue le Iteration/EndDate "
            &"and Iteration/StartDate ge 2022-01-01Z "
        &") "
        &"/groupby( "
            &"(DateValue,Iteration/EndDate,Area/AreaPath,Iteration/IterationPath,State,WorkItemType,Priority,AreaSK), "
            &"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Задачи очистки и оставшиеся трудозадаты

Запрос Power BI, указанный ниже, можно вставить непосредственно в окно получения пустого запроса.> Дополнительные сведения см. в обзоре примеров отчетов с помощью запросов OData.

Doc-ready Power BI Query (anonomized)
let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"startswith(Area/AreaPath,'{project}') "
            &"and StateCategory ne 'Completed' "
            &"and DateValue ge Iteration/StartDate "
            &"and DateValue le Iteration/EndDate "
            &"and Iteration/StartDate le now()  "
            &"and Iteration/EndDate ge now() "
            &"and WorkItemType eq 'Task' "
        &") "
            &"/groupby( "
            &"(DateValue,State,WorkItemType,Activity,Priority,Area/AreaPath,Iteration/IterationPath,AreaSK), "
            &"aggregate($count as Count, RemainingWork with sum as TotalRemainingWork) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Необязательно) Переименование запроса

Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя из области Параметры запроса.

Снимок экрана: параметры меню запроса Power BI, переименование запроса.

Разверните столбцы в Редактор Power Query

Перед созданием отчета необходимо развернуть столбцы, возвращающие записи, содержащие несколько полей. В этом экземпляре необходимо развернуть следующие записи:

  • Area
  • Iteration
  • AssignedTo

Сведения о том, как развернуть рабочие элементы, см. в разделе "Аналитика преобразования" для создания отчетов Power BI.

Закройте запрос и примените изменения

Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.

Снимок экрана: параметр Редактор Power Query Закрыть и применить.

Создание отчета диаграммы с накоплением

  1. В Power BI выберите отчет диаграммы с накоплением в разделе "Визуализации".

    Снимок экрана: выбор визуализаций и полей Power BI для отчета о спринте Burndown.

  2. Добавьте DateValue в оси X, щелкните правой кнопкой мыши и выберите DateValue, а неDate Hierarchy

  3. Добавьте Count в ось Y.

  4. Добавьте State в ось Y.

Пример отчета, в котором отображаются данные о точках истории и количестве историй.

Снимок экрана: пример отчета о кластеризованной диаграмме с спринтом Power BI.