Beispielberichte zum Sprint-Burndown

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

Sprint-Burndowndiagramme sind nützlich, um zu überwachen, wie gut ein Team seinen Sprintplan ausführt. Mehrere integrierte Diagramme und Dashboardwidgets unterstützen die Überwachung des Sprint-Burndowns. Weitere Informationen finden Sie unter Konfigurieren und Überwachen des Sprint-Burndowns.

Sie können jedoch ein Sprint-Burndowndiagramm mithilfe von Analytics und Power BI mit den in diesem Artikel bereitgestellten Abfragen anpassen. Das folgende Beispiel zeigt einen Burndown von User Storys und deren Status.

Screenshot des Power BI Sprint-Burndownberichts für gruppiertes Säulendiagramm.

Wichtig

Das Löschen von Bereichspfaden oder das Neukonfigurieren von Iterationspfaden kann zu einem Datenverlust führen und nicht wiederhergestellt werden. Beispielsweise spiegeln Burndown- oder Burnupwidgetdiagramme, Sprint-Burndown- und Geschwindigkeitsdiagramme für Teams, deren Bereichspfade geändert werden, nicht die richtigen Daten wider. Verlaufstrenddiagramme verweisen auf den Bereichs- und Iterationspfad , wie zu einem Zeitpunkt in der Vergangenheit für jedes Arbeitselement definiert. Wenn ein Bereichspfad oder Iterationspfad gelöscht wird, können die Verlaufsdaten dafür nicht abgerufen werden.

Weitere Informationen zu Burndown und Burnup sowie Burndown- und Burnupanleitungen finden Sie hier.

Hinweis

In diesem Artikel wird davon ausgegangen, dass Sie die Übersicht über Beispielberichte mit OData-Abfragen gelesen haben und über ein grundlegendes Verständnis von Power BI verfügen.

Voraussetzungen

  • Um Analytics-Daten anzuzeigen und den Dienst abzufragen, müssen Sie Mitglied eines Projekts mit oder höherer Basiszugriff sein. Standardmäßig erhalten alle Projektmitglieder Berechtigungen zum Abfragen von Analytics und zum Definieren von Analytics-Ansichten.
  • Weitere Informationen zu weiteren Voraussetzungen für die Dienst- und Featureaktivierung sowie allgemeine Datennachverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.

Beispielabfragen

Burndowndiagramme erfordern eine Abfrage des Entitätssatzes WorkItemSnapshot , um Verlaufsdaten abzurufen.

Hinweis

Informationen zum Ermitteln verfügbarer Eigenschaften für Filter- oder Berichtszwecke finden Sie unter Metadatenreferenz für Azure Boards. Sie können Ihre Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen der Werte unter oder NavigationPropertyBinding PathEntityType verwenden, die Property mit einem EntitySetverfügbar sind. Jede EntitySet entspricht einem EntityType. Weitere Informationen zum Datentyp der einzelnen Werte finden Sie in den Metadaten, die für den entsprechenden EntityTypebereitgestellt werden.

Burndown user storys für einen Bereichspfad und die aktuelle Iteration

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

Ersetzungszeichenfolgen und Abfrageaufschlüsselung

Ersetzen Sie die folgenden Zeichenfolgen durch Ihre Werte. Schließen Sie keine Klammern {} in Ihre Ersetzung ein. Wenn Ihr Organisationsname beispielsweise "Fabrikam" lautet, ersetzen Sie {organization} durch Fabrikam, nicht {Fabrikam}.

  • {areapath} - Ihr Bereichspfad. Beispielformat: Project\Level1\Level2.

Abfrageaufschlüsselung

In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.

Abfrageteil

Beschreibung


$apply=filter(

Startfilter()

WorkItemType eq 'User Story'

Burndown für User Storys

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

Arbeitselemente unter einem bestimmten Bereichspfad. Durch ersetzen Area/AreaPath eq '{areapath}' gibt Elemente an einem bestimmten Bereichspfad zurück.

Verwenden Sie die filter-Anweisung, um nach Teamname zu filtern. Teams/any(x:x/TeamName eq '{teamname})'

and StateCategory ne 'Completed'

Filtert abgeschlossene Elemente heraus. Weitere Informationen zu Statuskategorien finden Sie unter Verwenden von Workflowzuständen und Zustandskategorien in Backlogs und Boards.

and DateValue ge Iteration/StartDate

Beginnen Sie den Trend beim Iterationsstart.

and DateValue le Iteration/EndDate

End trend at Iteration end.

and Iteration/StartDate le now()

Wählen Sie aktuelle Iteration aus.

and Iteration/EndDate ge now()

Auswählen der aktuellen Iteration

)

Filter schließen()

/groupby(

Start groupby()

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

Gruppieren nach DateValue (wird für Trending verwendet) und allen Feldern, für die Sie berichtigen möchten

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

Aggregieren nach Anzahl von User Storys und Summe der Story points

)

Schließen von groupby()

Burndown User Storys für ein Team und die aktuelle Iteration

Diese Abfrage entspricht der oben verwendeten Abfrage, mit der Ausnahme, dass sie nach Teamname und nicht nach Bereichspfad filtert.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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 Storys für alle Sprints seit Jahresbeginn

Möglicherweise möchten Sie einen Burndown aller Sprints in einem einzelnen Bericht anzeigen. Diese Abfragen ziehen Sprint-Burndowns und deren nach Storypunkten für alle Sprints seit Beginn des Jahres 2022 auf.

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

Burndownaufgaben und verbleibende Arbeit

Sie können die unten aufgeführte Power BI-Abfrage direkt in das Fenster Get Data-Blank> Query einfügen. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.

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

(Optional) Abfrage umbenennen

Sie können die Standardabfragebezeichnung Query1 in aussagekräftiger umbenennen. Geben Sie einfach im Bereich Abfrageeinstellungen einen neuen Namen ein.

Screenshot: Menüoptionen für Power BI-Abfragen, Abfrage umbenennen.

Erweitern von Spalten in Power Query-Editor

Vor dem Erstellen des Berichts müssen Sie Spalten erweitern, die Datensätze zurückgeben, die mehrere Felder enthalten. In diesem Fall sollten Sie die folgenden Datensätze erweitern:

  • Area
  • Iteration
  • AssignedTo

Informationen zum Erweitern von Arbeitselementen finden Sie unter Transformieren von Analysedaten zum Generieren von Power BI-Berichten.

Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.

Nachdem Sie alle Datentransformationen abgeschlossen haben, wählen Sie "Schließen" und "Übernehmen " im Menü "Start " aus, um die Abfrage zu speichern und zur Registerkarte "Bericht " in Power BI zurückzukehren.

Screenshot der Option

Erstellen des Gestapelten Säulendiagrammberichts

  1. Wählen Sie in Power BI unter Visualisierungen den Bericht Gestapeltes Säulendiagramm aus.

    Screenshot der Auswahl von Power BI-Visualisierungen und -Feldern für den Bericht

  2. Zur X-Achse hinzufügenDateValue, klicken Sie mit der rechten Maustaste, und wählen Sie ausDateValue, anstattDate Hierarchy

  3. Zur Y-Achse hinzufügenCount.

  4. Zur Y-Achse hinzufügenState.

Der Beispielbericht, in dem der Burndown sowohl für Story points als auch für die Anzahl der Geschichten angezeigt wird.

Screenshot des Beispielberichts zum Power BI Sprint-Burndown mit gruppiertem Säulendiagramm.