Share via


Exempelrapporter för sprintnedbrändhet

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Sprintbränndiagram är användbara för att övervaka hur bra ett team kör på sin sprintplan. Flera inbyggda diagram och instrumentpanelswidgetar stöder övervakning av sprintnedbrändhet. Se Konfigurera och övervaka sprintnedbrändhet.

Du kan dock anpassa ett sprintdiagram med hjälp av Analytics och Power BI med de frågor som anges i den här artikeln. I följande exempel visas en nedbrändhet av Användarberättelser och deras tillstånd.

Skärmbild av rapporten för power BI Sprint-bränning med grupperat stapeldiagram.

Viktigt!

Om du tar bort områdessökvägar eller konfigurerar om iterationssökvägar kan det orsaka dataförlust och kan inte återställas. Till exempel visar brännings- eller bränningswidgetdiagram, sprintbrännskada och hastighetsdiagram för team vars områdesvägar ändras inte rätt data. Historiska trenddiagram refererar till områdessökvägen och iterationssökvägen enligt definitionen vid en tidigare tidpunkt för varje arbetsobjekt. När en områdessökväg eller iterationssökväg tas bort kan inte historiska data hämtas.

Om du vill veta mer om nedbrändhet och uppbrändhet samt vägledning för burndown och burnup.

Kommentar

Den här artikeln förutsätter att du har läst Översikt över exempelrapporter med OData-frågor och har en grundläggande förståelse för Power BI.

Förutsättningar

  • Om du vill visa analysdata och fråga tjänsten måste du vara medlem i ett projekt med grundläggande åtkomst eller större. Som standard beviljas alla projektmedlemmar behörighet att köra frågor mot Analytics och definiera analysvyer.
  • Mer information om andra förutsättningar för tjänst- och funktionsaktivering och allmänna dataspårningsaktiviteter finns i Behörigheter och krav för åtkomst till analys.

Exempelfrågor

Burndown-diagram kräver att du frågar entitetsuppsättningen WorkItemSnapshot för att hämta historiska data.

Kommentar

Information om hur du fastställer tillgängliga egenskaper för filter- eller rapportändamål finns i Metadatareferens för Azure Boards. Du kan filtrera dina frågor eller returnera egenskaper med något av värdena Property under ett EntityType eller NavigationPropertyBinding Path flera värden som är tillgängliga med en EntitySet. Var och EntitySet en motsvarar en EntityType. Mer information om datatypen för varje värde finns i metadata för motsvarande EntityType.

Burndown User Stories för en områdessökväg och aktuell iteration

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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

Ersättningssträngar och frågeuppdelning

Ersätt följande strängar med dina värden. Ta inte med hakparenteser {} med din ersättning. Om ditt organisationsnamn till exempel är "Fabrikam" ersätter du {organization} med Fabrikam, inte {Fabrikam}.

  • {areapath} - Din områdessökväg. Exempelformat: Project\Level1\Level2.

Frågeuppdelning

I följande tabell beskrivs varje del av frågan.

Frågedel

Beskrivning


$apply=filter(

Starta filter()

WorkItemType eq 'User Story'

Burndown på användarberättelser

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

Arbetsobjekt under en specifik områdessökväg. Ersätta med Area/AreaPath eq '{areapath}' returnerar objekt på en specifik områdessökväg.

Om du vill filtrera efter gruppnamn använder du filtersatsen Teams/any(x:x/TeamName eq '{teamname})'

and StateCategory ne 'Completed'

Filtrerar bort objekt som har slutförts. Mer information om tillståndskategorier finns i How workflow states and state categories are used in Backlogs and Boards (Hur arbetsflödestillstånd och tillståndskategorier används i kvarvarande uppgifter och tavlor).

and DateValue ge Iteration/StartDate

Börja trenden vid iterationsstart.

and DateValue le Iteration/EndDate

Sluttrend vid iterationsslut.

and Iteration/StartDate le now()

Välj aktuell iteration.

and Iteration/EndDate ge now()

Välj aktuell iteration

)

Stäng filter()

/groupby(

Starta groupby()

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

Gruppera efter DateValue (används för trendning) och alla fält som du vill rapportera om

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

Aggregera efter antal användarberättelser och summan av berättelsepunkter

)

Stäng groupby()

Burndown-användarberättelser för ett team och den aktuella iterationen

Den här frågan är samma som den som används ovan, förutom att den filtreras efter teamnamn i stället för områdessökväg.

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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 för alla sprintar sedan början av ett år

Du kanske vill visa en nedbrändhet av alla sprintar i en enda rapport. Dessa frågor drar in sprintbrännskador, och deras efter berättelsepunkter, för alla sprintar sedan början av år 2022.

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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

Burndown-uppgifter och återstående arbete

Du kan klistra in Power BI-frågan nedan direkt i fönstret Hämta data-tom> fråga . Mer information finns i Översikt över exempelrapporter med OData-frågor.

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

(Valfritt) Byt namn på fråga

Du kan byta namn på standardfrågans etikett, Query1, till något mer meningsfullt. Ange bara ett nytt namn från fönstret Fråga Inställningar.

Skärmbild av alternativ för Power BI-frågemenyer, byt namn på fråga.

Expandera kolumner i Power Query-redigeraren

Innan du skapar rapporten måste du expandera kolumner som returnerar poster som innehåller flera fält. I det här fallet vill du expandera följande poster:

  • Area
  • Iteration
  • AssignedTo

Information om hur du expanderar arbetsobjekt finns i Transformera analysdata för att generera Power BI-rapporter.

Stäng frågan och tillämpa ändringarna

När du har slutfört alla dina datatransformeringar väljer du Stäng och använd startmenyn för att spara frågan och återgå till fliken Rapport i Power BI.

Skärmbild av alternativet stäng och tillämpa Power Query-redigeraren.

Skapa den staplade stapeldiagramrapporten

  1. I Power BI väljer du rapporten Staplat stapeldiagram under Visualiseringar.

    Skärmbild av power BI-visualiseringar och fältval för Sprint Burndown-rapport.

  2. Lägg till DateValuei X-axel, högerklicka och välj DateValue, i stället för Date Hierarchy

  3. Lägg till Count i Y-axeln.

  4. Lägg till State i Y-axeln.

Exempelrapporten, som visar nedblåsning på både Story Points och Count of Stories.

Skärmbild av power BI Sprint-rapporten med nedbrännbara grupperade kolumner.