simulate¶
Throughput-basierter Monte-Carlo-Forecast auf historischen Jira-Daten. Beantwortet zwei Fragen probabilistisch — ohne Story-Point-Schätzung — und leitet daraus eine Scope-Konfidenz-Sicht aus denselben Läufen ab.
Status: verfügbar (Alpha)
Handbücher¶
| Sprache | Download |
|---|---|
| Deutsch (DE) | Benutzerhandbuch |
| English (EN) | User Manual |
| Română (RO) | Manual de Utilizator |
| Português (PT) | Manual do Utilizador |
| Français (FR) | Manuel d'utilisation |
Was es beantwortet¶
- Wie viele Items schaffen wir in einem Zeitraum oder bis zu einem festen Datum? (Kapazitäts-Forecast — Horizont in Tagen oder konkretes Zieldatum)
- Wann ist ein Backlog von N Items fertig? (Termin-Forecast, optional mit Scope-Wachstum über eine Split-Rate)
- Schaffen wir den Scope bis Datum X? — eine Konfidenz-Gauge aus denselben Läufen (der Punkt der Exceedance-Kurve an der Stelle „Backlog").
Die Ergebnisse werden als Exceedance-Perzentile mit Referenzlinien bei 85 / 75 / 50 % dargestellt, z. B. „mit 85 % Konfidenz mindestens X Items" oder „spätestens an Tag Y fertig".
Oberfläche¶

Start¶
GUI¶
Oder die Simulate-Kachel im SituationReport-Launcher anklicken.
Kommandozeile¶
python -m simulate ART_A_IssueTimes.xlsx \
--horizon 84 --backlog 125 --split-rate 0.1 \
--runs 25000 --seed 11 --output forecast.html
Parameter¶
| Parameter | Standard | Beschreibung |
|---|---|---|
issue_times |
(Pflicht) | Pfad zur IssueTimes.xlsx |
--cfd FILE |
(keine) | Optionale CFD.xlsx |
--history-days N |
180 |
Länge des History-Fensters in Tagen |
--history-end YYYY-MM-DD |
heute | Exklusives Enddatum des History-Fensters |
--horizon DAYS |
84 |
Vorhersagehorizont (Kapazitäts-Forecast) |
--target-date YYYY-MM-DD |
(keine) | „Wie viele bis zu diesem Datum?" statt --horizon |
--backlog N |
(keine) | Aktiviert zusätzlich Termin- + Scope-Konfidenz-Forecast |
--runs N |
25000 |
Anzahl Monte-Carlo-Läufe |
--split-rate R |
0.0 |
Erwartete neue Items je erledigtem Item (Scope-Wachstum) |
--seed N |
(zufällig) | Seed für reproduzierbare Läufe |
--output FILE |
(keine) | HTML-Report in diese Datei schreiben |
--browser |
aus | Geschriebenen Report im Browser öffnen |
Methode¶
Reine Standardbibliothek (kein numpy/pandas) für maximale Portabilität. Aus dem
History-Fenster — inklusive Null-Tage, damit der Forecast nicht überschätzt
wird — wird die empirische Tagesdurchsatz-Verteilung gebildet und über runs
Läufe neu gezogen (random.choices, reproduzierbar via Seed). Der Termin-Forecast
lässt den Rest-Scope optional um split_rate je erledigtem Item wachsen; seine
Perzentile werden über alle Läufe gebildet, sodass eine Konfidenz oberhalb der
Fertigstellungsrate „≥ Cap" statt eines zu optimistischen Tages liest. Inspiriert
vom R-Prototyp des Teams und von Daniel Vacanti, Actionable Agile Metrics for
Predictability.
Architektur¶
simulate/
├── __main__.py Dispatcher: GUI ohne Argumente, CLI mit Argumenten
├── cli.py run_simulation() + argparse-CLI
├── forecast.py Monte-Carlo-Engine (how_many / when_done / probability_at_least)
├── throughput.py ReportData -> Tagesdurchsatz-Reihe (inkl. Null-Tage)
├── charts.py Plotly: Exceedance-Kurve, Ziel-Marker, Gauge, Verteilung
└── gui.py tkinter-GUI (de/en)
Die Engine nutzt build_reports.loader.ReportData; der Throughput-Adapter macht
aus den geladenen Issues die Tagesreihe, aus der die Engine zieht.