Condividi tramite


Rilasciare query e report di esempio di burndown

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

I report burndown e burnup mostrano quanto lavoro viene completato nel tempo. L'immagine seguente mostra il burndown in base al conteggio delle storie utente e alla somma dei punti storia.

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

I grafici burn-down hanno senso solo se si pianifica il lavoro per il periodo di tempo del grafico. In caso contrario, se si prevede uno sprint per sprint, non verrà visualizzato un burndown standard. In questi casi, un grafico di burnup ha più senso per vedere come vengono eseguiti i progressi nel tempo.

Importante

  • L'eliminazione di percorsi di area o la riconfigurazione dei percorsi di iterazione causa una perdita irreversibile dei dati. Ad esempio, i grafici dei widget burndown e burnup, il burndown sprint e i grafici di velocità per i team con percorsi di area modificati non visualizzerà dati accurati. I grafici di tendenza cronologici fanno riferimento al percorso area e al percorso di iterazione, così come sono stati definiti al momento per ogni elemento di lavoro. Dopo l'eliminazione, non è possibile recuperare i dati cronologici per questi percorsi.
  • È possibile eliminare solo percorsi di area e iterazione non più utilizzati da elementi di lavoro.

Per altre informazioni sul burndown e sul burnup, vedere Configurare un widget burndown o burnup e le indicazioni per burndown e burnup.

Nota

Questo articolo presuppone che sia possibile leggere Panoramica dei report di esempio usando query OData e avere una conoscenza di base di Power BI.

Prerequisiti

  • Accesso: essere un membro di un progetto con almeno l'accesso Basic .
  • Autorizzazioni: per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste.
  • 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

Le query in questa sezione illustrano come generare grafici burn-down degli elementi di lavoro in base ai dati cronologici. Tutte queste query specificano il WorkItemSnapshot set di entità.

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 delle storie utente in un percorso di area dalla data di inizio e di fine

La query seguente illustra come restituire i dati cronologici delle storie utente per una versione in base agli elementi di lavoro contrassegnati con un tag di versione.

Nota

Per i report basati sul filtro di un tag, il tag deve essere assegnato all'elemento di lavoro all'inizio della data di inizio del rilascio o del burndown/burnup. In caso contrario, l'elemento di lavoro non è incluso nei dati restituiti.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"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}.

  • {organization} - Nome dell'organizzazione
  • {project} - Nome del progetto team o omettere completamente "/{project}" per una query tra progetti
  • {areapath} - Il percorso dell'area. Formato di esempio: Project\Level1\Level2
  • {tag} - Tag che rappresenta la versione. Tutti gli elementi di lavoro contrassegnati con {tagname} sono inclusi nel report
  • {startdate} - Data di inizio del report burndown con il formato : YYYY-MM-DDZ. Ad esempio: 2022-04-01Z rappresenta il 2022-aprile-01. Non racchiudere tra virgolette.
  • {enddate} - Data di fine del report di burndown.

Suddivisione delle query

La tabella seguente descrive ogni parte della query.

Parte della query

Descrizione

$apply=filter(WorkItemType eq 'User Story'

Includi storie utente nel burndown.

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 startswith(Area/AreaPath,'{areapath}')

Includere solo le storie utente in un percorso di area specifico sostituendo '{areapath}'.
Per filtrare in base al nome di un team, usare l'istruzione Teams/any(x:x/TeamName eq '{teamname})'filter .

and Tags/any(x:x/TagName eq '{tagname}').

Specifica l'etichetta di tag che rappresenta la versione in cui eseguire il burndown e per includere tutti gli elementi di lavoro contrassegnati con {tagname} nel report.

and DateValue ge {startdate}

Avviare il burndown su o dopo la data specificata. Esempio: 2019-04-01Z rappresenta il 2019-aprile-01.

and DateValue le {enddate}

Avviare il burndown prima o prima della data specificata. Stesso formato di {startdate}.

)

Clausola Close filter() .

/groupby (

Clausola Start groupby() .

(DateValue, State, Area/AreaPath),

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 della somma dei punti storia.

)

Clausola Close groupby() .

Burndown delle storie utente per un team

La query seguente restituisce i dati di burndown filtrati in base al nome del team anziché al percorso area.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. 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 StateCategory ne 'Completed' "
            &"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 Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Burndown User Stories con uno snapshot ogni venerdì

L'uso di uno snapshot settimanale riduce la quantità di dati estratti in Power BI e aumenta le prestazioni delle query.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &"and Date/DayName eq 'Friday' "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Burndown User Stories basato su un'area e un percorso di iterazione

Alcune organizzazioni usano percorsi di iterazione per contrassegnare le storie per una versione. Ad esempio, possono avere un percorso di iterazione di MyProject\Release1. La query seguente mostra come selezionare Storie utente in base al percorso di iterazione.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and startswith(Iteration/IterationPath,'{iterationpath}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Burndown User Stories con un valore di campo personalizzato

Alcune organizzazioni usano un campo personalizzato per contrassegnare le storie utente per una versione. Ad esempio, possono avere un campo denominato Cardine. Questa query mostra come selezionare Storie utente in base a un campo personalizzato.

Sarà necessario sostituire sia che {customfieldname} {releasevalue} nella query. Per determinare il nome del campo personalizzato, vedere Informazioni di riferimento sui metadati per Azure Boards, Proprietà personalizzate. Si sostituirà {customfieldname} con il nome della proprietà personalizzata, ad esempio Custom_Milestone.

Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and {customfieldname} eq '{releasevalue}' "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,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 Impostazioni query.

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:

  • Links
  • Links.TargetWorkItem
  • 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 l'istogramma a colonne raggruppate

  1. In Power BI scegliere Istogramma cluster in Visualizzazioni.

    Screenshot delle visualizzazioni e delle selezioni dei campi di Power BI per il report del grafico a colonne cluster Release 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 TotalStoryPoints all'asse Y.

Il report di esempio visualizza il burndown sia sul conteggio delle storie che sulla somma o sui punti storia.

Screenshot del report dell'istogramma a colonne cluster della versione di esempio di Power BI.