Report di esempio di burndown sprint

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

I grafici burn-down sprint sono utili per monitorare il livello di esecuzione di un team nel piano sprint. Diversi grafici predefiniti e widget del dashboard supportano il monitoraggio del burndown dello sprint. Vedere Configurare e monitorare il burndown dello sprint.

Tuttavia, è possibile personalizzare un grafico burn-down sprint usando Analisi e Power BI con le query fornite in questo articolo. L'esempio seguente mostra un burndown delle storie utente e dei relativi stati.

Screenshot del report dell'istogramma a colonne cluster di Power BI Sprint.

Importante

L'eliminazione di percorsi di area o la riconfigurazione dei percorsi di iterazione può causare una perdita di dati e non può essere ripristinata. Ad esempio, i grafici dei widget burndown o burnup, il burndown sprint e i grafici di velocità per i team i cui percorsi di area vengono modificati non rifletteranno i dati corretti. I grafici di tendenza cronologici fanno riferimento al percorso area e al percorso di iterazione, come definito in un punto nel passato per ogni elemento di lavoro. Quando viene eliminato un percorso area o un percorso di iterazione, non è possibile recuperare i dati cronologici.

Per altre informazioni sul burndown e sul burn-down e sulle indicazioni per burndown e burnup.

Nota

Questo articolo presuppone di avere letto Panoramica dei report di esempio usando query OData e avere una conoscenza di base di Power BI.

Prerequisiti

  • Per visualizzare i dati di Analisi ed eseguire query sul servizio, è necessario essere membri di un progetto con accesso basic o superiore. Per impostazione predefinita, a tutti i membri del progetto vengono concesse le autorizzazioni per eseguire query su Analisi e definire le visualizzazioni di Analisi.
  • Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics.

Query di esempio

I grafici burn-down richiedono l'esecuzione di query sul WorkItemSnapshot set di entità per ottenere dati cronologici.

Nota

Per determinare le proprietà disponibili a scopo di filtro o report, vedere Informazioni di riferimento sui metadati per Azure Boards. È possibile filtrare le query o restituire proprietà usando uno qualsiasi dei Property valori in un EntityType oggetto o NavigationPropertyBinding Path i valori disponibili con un oggetto EntitySet. Ognuno EntitySet corrisponde a un oggetto EntityType. Per altre informazioni sul tipo di dati di ogni valore, esaminare i metadati forniti per l'oggetto corrispondente EntityType.

Burndown User Stories per un percorso di area e l'iterazione corrente

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Stringhe di sostituzione e scomposizione delle query

Sostituire le stringhe seguenti con i valori. Non includere parentesi quadre {} con la sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization} con Fabrikam, non {Fabrikam}.

  • {areapath} - Il percorso dell'area. Formato di esempio: Project\Level1\Level2.

Suddivisione delle query

La tabella seguente descrive ogni parte della query.

Parte della query

Descrizione


$apply=filter(

Start filter()

WorkItemType eq 'User Story'

Burndown sulle storie utente

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

Elementi di lavoro in un percorso di area specifico. Sostituendo con Area/AreaPath eq '{areapath}' restituisce elementi in un percorso di area specifico.

Per filtrare in base al nome del team, usare l'istruzione filter Teams/any(x:x/TeamName eq '{teamname})'

and StateCategory ne 'Completed'

Filtra gli elementi completati. Per altre informazioni sulle categorie di stato, vedere Modalità di utilizzo degli stati e delle categorie di stato del flusso di lavoro nei backlog e nelle bacheche.

and DateValue ge Iteration/StartDate

Iniziare la tendenza all'inizio dell'iterazione.

and DateValue le Iteration/EndDate

Tendenza finale alla fine dell'iterazione.

and Iteration/StartDate le now()

Selezionare Iterazione corrente.

and Iteration/EndDate ge now()

Selezionare l'iterazione corrente

)

Chiudi filtro()

/groupby(

Start groupby()

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

Raggruppa per DateValue (usato per la tendenza) e tutti i campi su cui si desidera creare report

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

Aggrega per conteggio delle storie utente e somma dei punti storia

)

Chiudi groupby()

Burndown User Stories per un team e l'iterazione corrente

Questa query è identica a quella usata in precedenza, ad eccezione dei filtri in base al nome del team anziché al percorso area.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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 User Stories per tutti gli sprint dall'inizio di un anno

È possibile visualizzare un burndown di tutti gli sprint in un singolo report. Queste query eseguono il pull dei burndown sprint e i relativi punti di storia per tutti gli sprint dall'inizio dell'anno 2022.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

Attività burn-down e lavoro rimanente

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. Per altre informazioni, vedere Panoramica dei report di esempio che usano query 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

(Facoltativo) Rinominare la query

È possibile rinominare l'etichetta di query predefinita Query1 in qualcosa di più significativo. È sufficiente immettere un nuovo nome dal riquadro Query Impostazioni.

Screenshot delle opzioni del menu query di Power BI, rinominare la query.

Espandere le colonne in editor di Power Query

Prima di creare il report, è necessario espandere le colonne che restituiscono record contenenti diversi campi. In questa istanza è necessario espandere i record seguenti:

  • Area
  • Iteration
  • AssignedTo

Per informazioni su come espandere gli elementi di lavoro, vedere Trasformare i dati di Analisi per generare report di Power BI.

Chiudere la query e applicare le modifiche

Dopo aver completato tutte le trasformazioni dei dati, scegliere Chiudi e applica dal menu Home per salvare la query e tornare alla scheda Report in Power BI.

Screenshot dell'opzione Chiudi e applica editor di Power Query.

Creare il report istogramma in pila

  1. In Power BI scegliere il report Istogramma in pila in Visualizzazioni.

    Screenshot delle visualizzazioni e delle selezioni dei campi di Power BI per il report Sprint Burndown.

  2. Aggiungi DateValue all'asse X, fai clic con il pulsante destro del mouse e scegli DateValue, anzichéDate Hierarchy

  3. Aggiungi Count all'asse Y.

  4. Aggiungi State all'asse Y.

Il report di esempio, che visualizza il burndown sia su Story Points che su Count of Stories.

Screenshot del report di istogramma a colonne cluster di esempio di Power BI Sprint.