Zum Inhalt

build_reports

Berechnet Flow-Metriken aus den von transform_data erzeugten XLSX-Dateien und stellt die Ergebnisse als interaktive Plotly-Diagramme im Browser oder als PDF-Export bereit.

Überblick

Eigenschaft Wert
Status verfügbar
Einstiegspunkt GUI build_reports_gui.pyw
Einstiegspunkt CLI python -m build_reports
Benutzerhandbuch (DE) build_reports_Benutzerhandbuch.pdf
User Manual (EN) build_reports_UserManual.pdf
Manual de Utilizator (RO) build_reports_ManualUtilizator.pdf
Manual do Utilizador (PT) build_reports_ManualUtilizador.pdf
Manuel d'utilisation (FR) build_reports_ManuelUtilisateur.pdf

Metriken

Metrik (SAFe) Metrik (Global) Beschreibung Pflichtdatei
Flow Time Cycle Time Durchlaufzeit von Start bis Abschluss IssueTimes.xlsx
Flow Velocity Throughput Abgeschlossene Issues pro Zeitraum IssueTimes.xlsx
Flow Load WIP Issues aktuell in einer In-Progress-Stage, nach Stage und Alter IssueTimes.xlsx
Cumulative Flow Diagram Cumulative Flow Diagram Kumulierte Stage-Eintritte über die Zeit CFD.xlsx
Flow Distribution Flow Distribution Verteilung nach Typ, Stage-Dominanz und Ø Durchlaufzeit IssueTimes.xlsx
Process Flow: Transitions Process Flow: Transitions Gerichteter Graph aller Statusübergänge (Anzahl) Transitions.xlsx
Process Flow: Time Process Flow: Time Gerichteter Graph mit Knotenbreite und Kantenbreite nach medianer Verweildauer Transitions.xlsx

Eingabedateien

Datei Pflicht Beschreibung
IssueTimes.xlsx ✅ Alle Issues mit Zeitangaben je Stage
CFD.xlsx optional Tägliche Stage-Eintritte für das CFD
Workflow.txt optional <First> / <Closed>-Marker für CFD-Trendlinien
pi_config_example.json optional Eigene PI-Intervalle für Flow Velocity
Transitions.xlsx optional Statusübergänge je Issue für Process Flow

Architektur

build_reports/
├── metrics/             # Plugin-Registry + einzelne Metrik-Module
│   ├── base.py          # MetricPlugin / MetricResult Basisklassen
│   ├── flow_time.py
│   ├── flow_velocity.py
│   ├── flow_load.py
│   ├── cfd.py
│   ├── flow_distribution.py
│   └── process_flow.py
├── loader.py            # Laden aller XLSX-Dateien → ReportData
├── filters.py           # FilterConfig + apply_filters()
├── cli.py               # run_reports() + argparse CLI
├── gui.py               # tkinter GUI
├── export.py            # PDF- und Excel-Export
└── terminology.py       # SAFe / Global Terminologie-Umschaltung

Das Plugin-System registriert Metriken automatisch beim Import:

from build_reports.metrics import get_metric, all_metrics
plugin = get_metric("flow_time")
result = plugin.compute(data, terminology="SAFe")
figs = plugin.render(result, "SAFe")

Schnellstart CLI

python -m build_reports IssueTimes.xlsx --pdf report.pdf
python -m build_reports IssueTimes.xlsx --cfd CFD.xlsx --transitions Transitions.xlsx --browser
python -m build_reports IssueTimes.xlsx --metrics flow_time process_flow process_flow_time --from-date 2025-01-01
python -m build_reports IssueTimes.xlsx --lang de --browser

Sprache der Diagramme (seit 0.33.0)

Die Beschriftungen innerhalb der Diagramme — Achsen, Diagrammtitel, Kurvennamen und die Monatsabkürzungen der Zeitachsen — folgen der gewählten Sprache. In der Oberfläche ist das die Fenstersprache, auf der Kommandozeile --lang {de|en|ro|pt|fr} (Vorgabe: Englisch).

Was aus den Daten kommt, bleibt unberührt: Stage-Namen aus der Workflow-Konfiguration, Vorgangsarten und Projektkürzel. Ein Stage heißt so, wie er in Jira heißt — ihn zu übersetzen hieße, eine fremde Konfiguration zu verfälschen. Die Metriknamen regelt weiterhin die SAFe/Global-Umschaltung.

Bis 0.32.0 waren die Monatsabkürzungen fest deutsch — in jedem Report, auch im englischen — und in zwei Modulen doppelt gepflegt; dasselbe galt für „Methode A" im Titel des Flow-Time-Diagramms.

Templates

Die GUI unterstützt das Speichern und Laden aller Einstellungen als JSON-Template (Menü → Templates). Templates sind versioniert ("version": 4) und abwärtskompatibel.

Datenübergabe aus transform_data

build_reports lässt sich direkt aus transform_data starten: Nach einer Transformation belegt dort der Button In build_reports öffnen die Felder IssueTimes, CFD, Transitions und Workflow hier vor. Intern werden die Daten als Projekt-Template über das Kommandozeilen-Flag --gui-template <pfad> übergeben, das die GUI beim Start lädt. War in transform_data ein Projekt-Template geladen, werden auch dessen build_reports-Einstellungen (PI-Konfiguration, Filter, Metrik-Auswahl) mitübernommen; sonst bleiben PI-Konfiguration und Filter zur Auswahl offen.

Hinweis: Flow Time Methode B und Workflow-Aufbau

Methode B summiert die Stage-Minuten bis ausschließlich der <Closed>-Stage. Stages, die nach der Closed-Stage im Workflow definiert sind (z. B. „Monitoring", „Done"), werden ebenfalls nicht eingerechnet. Die Closed-Stage selbst enthält für abgeschlossene Issues einen Carry-forward-Wert (reference_dt − closed_date), der die gemessene Cycle Time verzerren würde — er wird daher ausgeschlossen.

Methode A (Kalendertage First Date → Closed Date) ist davon nicht betroffen und empfiehlt sich als Vergleich.