User Story Beispiele: 25+ Vorlagen für jede Branche
„Zeig mir ein Beispiel" — diese Bitte höre ich oft, wenn Teams anfangen, User Stories zu schreiben. Theorie ist gut, aber konkrete Beispiele machen den Unterschied zwischen einer Story, die funktioniert, und einer, die zu Rückfragen führt.
In dieser Sammlung findest du über 25 User Story Beispiele aus vier Branchen — jede mit Akzeptanzkriterien und Erklärung, warum sie funktioniert.
Das User-Story-Format (Kurzversion)
Jede User Story folgt dem gleichen Muster:
Als [Rolle] möchte ich [Funktion], damit [Nutzen].
Die Details zum perfekten Aufbau findest du im User Story Aufbau Guide.
Zwei Formate für Akzeptanzkriterien
In den folgenden Beispielen findest du bei jeder Story zwei Formate für Akzeptanzkriterien:
Checkliste: Das klassische Format mit kurzen, prägnanten Punkten. Schnell zu schreiben, leicht zu überblicken.
Gherkin: Das strukturierte Format aus der BDD-Welt (Behavior Driven Development). Folgt dem Schema „Gegeben/Wenn/Dann" und eignet sich besonders für automatisierte Tests.
Beide Formate sind gleichwertig — wähle das, was in deinem Team besser funktioniert.
E-Commerce Beispiele (7 Stories)
1. Produktfilter
User Story:
Als Kunde möchte ich Produkte nach Größe, Farbe und Preis filtern, damit ich schneller finde, was ich suche.
- Filter sind in der Seitenleiste sichtbar
- Mehrfachauswahl pro Filterkategorie möglich
- Ergebnisse aktualisieren sich ohne Seitenreload
- Aktive Filter werden als Chips über den Ergebnissen angezeigt
- „Filter zurücksetzen" entfernt alle Filter
Gegeben ich bin auf der Produktliste
Wenn ich einen Filter in der Seitenleiste auswähle
Dann werden nur passende Produkte angezeigt
Und die Ergebnisse aktualisieren ohne Seitenreload
Gegeben ich habe mehrere Filter aktiviert
Wenn ich auf „Filter zurücksetzen" klicke
Dann werden alle Filter entfernt
Und alle Produkte werden wieder angezeigtWarum diese Story funktioniert: Klare Rolle (Kunde), konkreter Nutzen (schneller finden), testbare Kriterien.
2. Versandkostenberechnung
User Story:
Als Kunde möchte ich die Versandkosten vor dem Checkout sehen, damit ich keine Überraschungen an der Kasse erlebe.
- Versandkosten erscheinen im Warenkorb nach PLZ-Eingabe
- Kostenloser Versand ab 50€ wird hervorgehoben
- Express- und Standard-Versand sind wählbar
- Lieferdatum wird geschätzt angezeigt
Gegeben ich habe Produkte im Warenkorb
Wenn ich meine PLZ eingebe
Dann werden die Versandkosten angezeigt
Und das geschätzte Lieferdatum erscheint
Gegeben der Warenkorbwert liegt bei 50€ oder mehr
Wenn ich die Versandkosten sehe
Dann wird „Kostenloser Versand" hervorgehoben3. Produktbewertung schreiben
User Story:
Als Kunde, der ein Produkt gekauft hat, möchte ich eine Bewertung abgeben, damit andere Käufer von meiner Erfahrung profitieren.
- Bewertungsoption erscheint nur nach Kauf
- 1-5 Sterne-Rating ist Pflicht
- Textbewertung ist optional (max. 500 Zeichen)
- Foto-Upload möglich (max. 3 Bilder)
- Bewertung nach Moderation sichtbar
Gegeben ich habe das Produkt gekauft
Wenn ich die Produktseite öffne
Dann sehe ich die Option „Bewertung schreiben"
Gegeben ich schreibe eine Bewertung
Wenn ich keine Sterne auswähle
Dann kann ich die Bewertung nicht absenden
Und eine Fehlermeldung erscheint
Gegeben ich habe eine Bewertung abgesendet
Wenn die Moderation abgeschlossen ist
Dann wird meine Bewertung öffentlich sichtbar4. Bestellstatus verfolgen
User Story:
Als Kunde möchte ich meinen Bestellstatus live verfolgen, damit ich weiß, wann mein Paket ankommt.
- Status-Timeline zeigt: Bestellt, Verpackt, Versendet, Zugestellt
- Sendungsnummer ist klickbar (Link zum Versanddienstleister)
- Push-Benachrichtigung bei Statusänderung (wenn aktiviert)
- Voraussichtliches Lieferdatum wird angezeigt
Gegeben ich habe eine Bestellung aufgegeben
Wenn ich die Bestelldetails öffne
Dann sehe ich eine Status-Timeline mit aktuellem Stand
Und das voraussichtliche Lieferdatum wird angezeigt
Gegeben die Bestellung wurde versendet
Wenn ich auf die Sendungsnummer klicke
Dann öffnet sich die Tracking-Seite des Versanddienstleisters5. Wunschliste teilen
User Story:
Als eingeloggter Kunde möchte ich meine Wunschliste per Link teilen, damit Freunde und Familie Geschenkideen sehen können.
- „Teilen"-Button generiert einzigartigen Link
- Geteilte Liste zeigt nur Produktname, Bild und Preis
- Persönliche Daten sind nicht sichtbar
- Link kann jederzeit deaktiviert werden
Gegeben ich bin eingeloggt und habe Produkte auf meiner Wunschliste
Wenn ich auf „Teilen" klicke
Dann wird ein einzigartiger Link generiert
Und ich kann den Link kopieren
Gegeben jemand öffnet meinen geteilten Link
Wenn die Wunschliste geladen wird
Dann sieht die Person nur Produktname, Bild und Preis
Und meine persönlichen Daten sind nicht sichtbar6. Gutscheincode einlösen
User Story:
Als Kunde möchte ich einen Gutscheincode im Warenkorb eingeben, damit ich einen Rabatt auf meine Bestellung erhalte.
- Eingabefeld für Code im Warenkorb sichtbar
- Gültiger Code zeigt Rabatt in der Summe
- Ungültiger Code zeigt verständliche Fehlermeldung
- Nur ein Code pro Bestellung nutzbar
- Mindestbestellwert wird geprüft (falls vorhanden)
Gegeben ich habe Produkte im Warenkorb
Wenn ich einen gültigen Gutscheincode eingebe
Dann wird der Rabatt in der Summe angezeigt
Und der Endpreis wird entsprechend reduziert
Gegeben ich gebe einen ungültigen Code ein
Wenn ich auf „Einlösen" klicke
Dann erscheint eine verständliche Fehlermeldung
Und der Warenkorb bleibt unverändert
Gegeben der Gutschein hat einen Mindestbestellwert
Wenn mein Warenkorb unter diesem Wert liegt
Dann wird der Code nicht akzeptiert
Und ein Hinweis auf den Mindestbestellwert erscheint7. Retoure anmelden
User Story:
Als Kunde möchte ich eine Retoure online anmelden, damit ich Artikel ohne Telefonat zurücksenden kann.
- Retoure-Button bei berechtigten Bestellungen (innerhalb 30 Tage)
- Auswahl der zu retournierenden Artikel
- Retourengrund ist wählbar (Dropdown)
- Retourenlabel als PDF zum Download
- Bestätigungs-E-Mail mit Tracking
Gegeben meine Bestellung ist weniger als 30 Tage alt
Wenn ich die Bestelldetails öffne
Dann sehe ich den Button „Retoure anmelden"
Gegeben ich starte eine Retoure
Wenn ich die Artikel und den Retourengrund auswähle
Dann kann ich die Retoure absenden
Und ein Retourenlabel als PDF wird zum Download angeboten
Gegeben ich habe eine Retoure abgeschlossen
Wenn die Bestätigung erscheint
Dann erhalte ich eine E-Mail mit Tracking-InformationenSaaS / Software Beispiele (6 Stories)
8. Passwort vergessen
User Story:
Als Nutzer möchte ich mein Passwort per E-Mail zurücksetzen, damit ich wieder auf mein Konto zugreifen kann.
- „Passwort vergessen"-Link auf Login-Seite
- E-Mail mit Reset-Link innerhalb von 2 Minuten
- Link ist 24 Stunden gültig
- Neues Passwort muss Mindestanforderungen erfüllen
- Nach Reset automatischer Login
Gegeben ich bin auf der Login-Seite
Wenn ich auf „Passwort vergessen" klicke
Dann kann ich meine E-Mail-Adresse eingeben
Und erhalte innerhalb von 2 Minuten einen Reset-Link
Gegeben ich habe einen gültigen Reset-Link
Wenn ich ein neues Passwort eingebe, das die Anforderungen erfüllt
Dann wird mein Passwort geändert
Und ich werde automatisch eingeloggt
Gegeben der Reset-Link ist älter als 24 Stunden
Wenn ich versuche ihn zu nutzen
Dann erscheint eine Fehlermeldung
Und ich muss einen neuen Link anfordern9. CSV-Export
User Story:
Als Account-Manager möchte ich Kundendaten als CSV exportieren, damit ich sie in Excel weiterverarbeiten kann.
- Export-Button im Kundenbereich
- Auswahl der zu exportierenden Spalten
- Dateiname enthält Datum (kunden_2024-01-15.csv)
- UTF-8-Encoding für Umlaute
- Export unter 10 Sekunden für bis zu 10.000 Datensätze
Gegeben ich bin im Kundenbereich als Account-Manager
Wenn ich auf „Export" klicke
Dann kann ich die zu exportierenden Spalten auswählen
Und den Export starten
Gegeben ich starte einen Export mit 10.000 Datensätzen
Wenn der Export läuft
Dann ist er innerhalb von 10 Sekunden abgeschlossen
Und der Dateiname enthält das aktuelle Datum
Gegeben die exportierte Datei enthält Umlaute
Wenn ich sie in Excel öffne
Dann werden Umlaute korrekt dargestellt (UTF-8)10. Benachrichtigungseinstellungen
User Story:
Als Nutzer möchte ich wählen, welche Benachrichtigungen ich per E-Mail erhalte, damit ich nicht mit irrelevanten Nachrichten überflutet werde.
- Einstellungsseite mit Kategorien (Marketing, Produkt-Updates, Sicherheit)
- Toggle pro Kategorie (an/aus)
- Sicherheits-Benachrichtigungen sind nicht abwählbar
- Änderungen werden sofort gespeichert
- „Alle abwählen"-Option (außer Sicherheit)
Gegeben ich bin auf der Einstellungsseite für Benachrichtigungen
Wenn ich die Kategorien sehe
Dann kann ich Marketing und Produkt-Updates per Toggle deaktivieren
Aber Sicherheits-Benachrichtigungen sind nicht abwählbar
Gegeben ich ändere eine Einstellung
Wenn ich den Toggle umschalte
Dann wird die Änderung sofort gespeichert
Und eine Bestätigung erscheint
Gegeben ich möchte alle Benachrichtigungen abwählen
Wenn ich auf „Alle abwählen" klicke
Dann werden alle Kategorien deaktiviert
Aber Sicherheit bleibt aktiv11. Workspace-Einladung
User Story:
Als Workspace-Admin möchte ich Kollegen per E-Mail einladen, damit sie im Team mitarbeiten können.
- Einladungsformular akzeptiert mehrere E-Mails (kommagetrennt)
- Rolle wählbar (Admin, Mitglied, Gast)
- Eingeladene erscheinen als „Ausstehend" in der Mitgliederliste
- Einladung kann zurückgezogen werden
- Einladungs-E-Mail enthält Workspace-Name und Einladenden
Gegeben ich bin Workspace-Admin
Wenn ich mehrere E-Mail-Adressen kommagetrennt eingebe
Dann kann ich für alle eine Rolle auswählen
Und die Einladungen versenden
Gegeben ich habe Einladungen versendet
Wenn ich die Mitgliederliste öffne
Dann erscheinen die Eingeladenen als „Ausstehend"
Und ich kann die Einladung zurückziehen
Gegeben ein Kollege erhält die Einladungs-E-Mail
Wenn er sie öffnet
Dann sieht er den Workspace-Namen und wer ihn eingeladen hat12. Dashboard-Widget anpassen
User Story:
Als Nutzer möchte ich mein Dashboard personalisieren, damit ich die für mich wichtigsten Kennzahlen auf einen Blick sehe.
- Widgets per Drag & Drop verschiebbar
- Widgets können hinzugefügt/entfernt werden
- Größe anpassbar (klein, mittel, groß)
- Layout wird gespeichert und beim nächsten Login wiederhergestellt
- „Zurücksetzen auf Standard"-Option
Gegeben ich bin auf meinem Dashboard
Wenn ich ein Widget per Drag & Drop verschiebe
Dann wird die neue Position gespeichert
Und bleibt beim nächsten Login erhalten
Gegeben ich möchte ein Widget anpassen
Wenn ich die Widget-Einstellungen öffne
Dann kann ich die Größe wählen (klein, mittel, groß)
Und das Widget entfernen oder hinzufügen
Gegeben ich habe mein Layout stark verändert
Wenn ich auf „Zurücksetzen auf Standard" klicke
Dann wird das ursprüngliche Layout wiederhergestellt13. Audit-Log einsehen
User Story:
Als Compliance-Manager möchte ich alle Änderungen an Benutzerdaten nachvollziehen, damit ich Audits dokumentieren kann.
- Log zeigt: Wer, Was, Wann, Vorher/Nachher
- Filterbar nach Nutzer, Zeitraum, Aktionstyp
- Exportierbar als CSV/PDF
- Logs sind unveränderbar (keine Löschung möglich)
- Aufbewahrung mindestens 2 Jahre
Gegeben ich bin als Compliance-Manager eingeloggt
Wenn ich das Audit-Log öffne
Dann sehe ich für jeden Eintrag: Wer, Was, Wann, Vorher/Nachher
Und kann nach Nutzer, Zeitraum und Aktionstyp filtern
Gegeben ich benötige die Logs für einen Audit
Wenn ich auf „Export" klicke
Dann kann ich zwischen CSV und PDF wählen
Und die Datei herunterladen
Gegeben Logs wurden erstellt
Wenn jemand versucht sie zu löschen
Dann ist keine Löschung möglich
Und Logs werden mindestens 2 Jahre aufbewahrtMobile App Beispiele (6 Stories)
14. Biometrischer Login
User Story:
Als App-Nutzer möchte ich mich per Face ID oder Fingerabdruck einloggen, damit ich schneller auf mein Konto zugreife.
- Option in Einstellungen aktivierbar
- Fallback auf PIN/Passwort bei Fehlschlag
- Nach 3 fehlgeschlagenen Versuchen: Passwort erforderlich
- Biometrie-Daten bleiben auf dem Gerät
Gegeben ich habe Face ID in den Einstellungen aktiviert
Wenn ich die App öffne
Dann kann ich mich per Face ID einloggen
Und habe sofort Zugriff auf mein Konto
Gegeben die biometrische Erkennung schlägt fehl
Wenn ich es erneut versuche
Dann kann ich auf PIN/Passwort zurückgreifen
Aber nach 3 Fehlversuchen ist nur noch das Passwort möglich
Gegeben ich nutze biometrischen Login
Wenn ich die Datenschutzinfo prüfe
Dann sehe ich, dass Biometrie-Daten nur auf dem Gerät bleiben15. Offline-Modus für Artikel
User Story:
Als Pendler möchte ich Artikel offline verfügbar machen, damit ich sie ohne Internetverbindung lesen kann.
- „Offline speichern"-Button bei jedem Artikel
- Gespeicherte Artikel in separater Liste
- Automatische Synchronisation bei Verbindung
- Speicherverbrauch wird angezeigt
- Offline-Artikel nach 30 Tagen automatisch gelöscht (konfigurierbar)
Gegeben ich lese einen Artikel online
Wenn ich auf „Offline speichern" klicke
Dann wird der Artikel heruntergeladen
Und erscheint in meiner Offline-Liste
Gegeben ich bin ohne Internetverbindung
Wenn ich die App öffne
Dann kann ich alle gespeicherten Artikel lesen
Und bei Verbindung werden sie automatisch synchronisiert
Gegeben ein Offline-Artikel ist älter als 30 Tage
Wenn ich die Einstellungen nicht geändert habe
Dann wird der Artikel automatisch gelöscht
Und der Speicherplatz freigegeben16. Push-Benachrichtigung anpassen
User Story:
Als Nutzer möchte ich Push-Benachrichtigungen nach Themen filtern, damit ich nur relevante Updates erhalte.
- Themen-Kategorien mit Toggle (Sport, Politik, Wirtschaft)
- „Stille Stunden" einstellbar (z.B. 22:00–07:00)
- Eilmeldungen separat steuerbar
- Einstellungen geräteübergreifend synchronisiert
Gegeben ich bin in den Push-Einstellungen
Wenn ich Themen-Kategorien sehe
Dann kann ich Sport, Politik und Wirtschaft einzeln aktivieren/deaktivieren
Und Eilmeldungen separat steuern
Gegeben ich möchte nachts keine Benachrichtigungen
Wenn ich „Stille Stunden" aktiviere
Dann kann ich einen Zeitraum wählen (z.B. 22:00–07:00)
Und erhalte in dieser Zeit keine Push-Nachrichten
Gegeben ich ändere Einstellungen auf einem Gerät
Wenn ich ein anderes Gerät öffne
Dann sind die Einstellungen synchronisiert17. QR-Code Scanner
User Story:
Als Nutzer möchte ich QR-Codes in der App scannen, damit ich schnell zu verlinkten Inhalten gelange.
- Scanner öffnet bei Tab-Klick mit Kamerazugriff
- Automatische Erkennung (kein „Scan"-Button nötig)
- Ungültige Codes zeigen Fehlermeldung
- Externe Links öffnen im In-App-Browser
- Scan-Historie der letzten 10 Codes
Gegeben ich klicke auf den Scanner-Tab
Wenn die Kamera aktiviert wird
Dann startet die automatische QR-Code-Erkennung
Und ich muss keinen zusätzlichen Button drücken
Gegeben ich scanne einen gültigen QR-Code
Wenn der Code einen externen Link enthält
Dann öffnet sich der Link im In-App-Browser
Und der Scan wird in der Historie gespeichert
Gegeben ich scanne einen ungültigen Code
Wenn keine Erkennung möglich ist
Dann erscheint eine verständliche Fehlermeldung18. Dark Mode
User Story:
Als Nutzer möchte ich einen Dark Mode aktivieren, damit ich die App abends augenschonend nutzen kann.
- Einstellung: Hell / Dunkel / System (automatisch)
- Umschaltung ohne App-Neustart
- Alle Screens sind im Dark Mode lesbar
- Bilder und Icons sind angepasst (keine weißen Ränder)
Gegeben ich bin in den Darstellungs-Einstellungen
Wenn ich die Theme-Optionen sehe
Dann kann ich zwischen Hell, Dunkel und System wählen
Und die Änderung wird sofort ohne App-Neustart angewendet
Gegeben ich habe Dark Mode aktiviert
Wenn ich durch alle Screens navigiere
Dann sind alle Texte gut lesbar
Und Bilder/Icons haben keine störenden weißen Ränder19. In-App-Feedback
User Story:
Als Nutzer möchte ich Feedback direkt aus der App senden, damit ich Probleme schnell melden kann.
- Feedback-Button in Einstellungen
- Kategorie wählbar (Bug, Verbesserung, Lob)
- Screenshot-Anhang möglich
- Geräteinformationen werden automatisch mitgesendet (mit Hinweis)
- Bestätigung nach erfolgreichem Versand
Gegeben ich bin in den Einstellungen
Wenn ich auf „Feedback senden" klicke
Dann öffnet sich ein Formular mit Kategorie-Auswahl
Und ich kann einen Screenshot anhängen
Gegeben ich sende Feedback ab
Wenn das Formular verarbeitet wird
Dann werden Geräteinformationen automatisch mitgesendet
Und ich sehe einen Hinweis darüber
Gegeben mein Feedback wurde erfolgreich gesendet
Wenn der Versand abgeschlossen ist
Dann erhalte ich eine BestätigungInterne Tools & Backend (6 Stories)
20. Benutzerrolle zuweisen
User Story:
Als IT-Administrator möchte ich Mitarbeitern Rollen zuweisen, damit sie nur auf relevante Systeme zugreifen können.
- Rollen-Dropdown bei Benutzerverwaltung
- Vordefinierte Rollen: Admin, Manager, Mitarbeiter, Gast
- Rollenänderung sofort wirksam
- Audit-Log bei jeder Änderung
- Warnung bei Entfernung der letzten Admin-Rolle
Gegeben ich bin IT-Administrator in der Benutzerverwaltung
Wenn ich einen Mitarbeiter auswähle
Dann kann ich per Dropdown eine Rolle zuweisen
Und die Änderung ist sofort wirksam
Gegeben ich ändere eine Benutzerrolle
Wenn ich die Änderung speichere
Dann wird ein Eintrag im Audit-Log erstellt
Und die Änderung ist nachvollziehbar
Gegeben es gibt nur noch einen Admin
Wenn ich versuche dessen Admin-Rolle zu entfernen
Dann erscheint eine Warnung
Und die Änderung wird blockiert21. Automatischer Report per E-Mail
User Story:
Als Abteilungsleiter möchte ich wöchentliche Reports automatisch per E-Mail erhalten, damit ich ohne Login den Überblick behalte.
- Report-Abo in Einstellungen konfigurierbar
- Frequenz wählbar: täglich, wöchentlich, monatlich
- Report als PDF-Anhang oder HTML im E-Mail-Body
- Zeitpunkt wählbar (z.B. Montag 08:00)
- Abmeldung jederzeit möglich
Gegeben ich bin in den Report-Einstellungen
Wenn ich ein Report-Abo konfiguriere
Dann kann ich die Frequenz wählen (täglich, wöchentlich, monatlich)
Und den gewünschten Zeitpunkt festlegen
Gegeben ich habe einen wöchentlichen Report abonniert
Wenn der Zeitpunkt erreicht ist (z.B. Montag 08:00)
Dann erhalte ich eine E-Mail mit dem Report
Und kann zwischen PDF-Anhang und HTML wählen
Gegeben ich möchte keine Reports mehr erhalten
Wenn ich mich abmelde
Dann erhalte ich keine weiteren automatischen E-Mails22. Datenbank-Backup manuell auslösen
User Story:
Als Systemadministrator möchte ich ein manuelles Backup vor größeren Änderungen erstellen, damit ich im Fehlerfall wiederherstellen kann.
- „Backup jetzt erstellen"-Button im Admin-Panel
- Fortschrittsanzeige während Backup
- Bestätigung mit Backup-Name und Größe
- Download-Option für lokale Sicherung
- Letzte 5 Backups werden aufgelistet
Gegeben ich bin Systemadministrator im Admin-Panel
Wenn ich auf „Backup jetzt erstellen" klicke
Dann startet das Backup
Und eine Fortschrittsanzeige erscheint
Gegeben das Backup ist abgeschlossen
Wenn die Bestätigung erscheint
Dann sehe ich den Backup-Namen und die Größe
Und kann das Backup lokal herunterladen
Gegeben ich öffne die Backup-Übersicht
Wenn ich die Liste sehe
Dann werden die letzten 5 Backups angezeigt
Und ich kann jedes einzeln herunterladen23. API-Rate-Limiting konfigurieren
User Story:
Als DevOps-Engineer möchte ich API-Rate-Limits pro Client setzen, damit einzelne Clients nicht die Gesamtperformance beeinträchtigen.
- Konfigurationsseite zeigt alle API-Clients
- Limit-Eingabe: Requests pro Minute/Stunde
- Überschreitung liefert HTTP 429 mit Retry-After Header
- Alert bei 80% Auslastung
- Dashboard zeigt aktuelle Auslastung pro Client
Gegeben ich bin auf der API-Konfigurationsseite
Wenn ich alle Clients sehe
Dann kann ich für jeden Client Limits setzen
Und zwischen Requests pro Minute oder Stunde wählen
Gegeben ein Client überschreitet sein Limit
Wenn eine weitere Anfrage eingeht
Dann erhält der Client HTTP 429
Und der Retry-After Header gibt die Wartezeit an
Gegeben ein Client erreicht 80% seines Limits
Wenn der Schwellwert überschritten wird
Dann wird ein Alert ausgelöst
Und ich kann die Auslastung im Dashboard verfolgen24. Fehlgeschlagene Jobs erneut starten
User Story:
Als Operator möchte ich fehlgeschlagene Hintergrund-Jobs neu starten, damit temporäre Fehler ohne Entwicklereingriff behoben werden können.
- Job-Liste zeigt Status: Erfolgreich, Fehlgeschlagen, Wartend
- „Erneut starten"-Button bei fehlgeschlagenen Jobs
- Fehlerdetails einsehbar (Stacktrace, Zeitstempel)
- Automatischer Retry nach X Minuten (konfigurierbar)
- E-Mail-Alert nach 3 fehlgeschlagenen Versuchen
Gegeben ich bin in der Job-Übersicht als Operator
Wenn ich die Job-Liste sehe
Dann erkenne ich den Status jedes Jobs
Und fehlgeschlagene Jobs haben einen „Erneut starten"-Button
Gegeben ein Job ist fehlgeschlagen
Wenn ich die Details öffne
Dann sehe ich den Stacktrace und Zeitstempel
Und kann den Job manuell neu starten
Gegeben ein Job schlägt dreimal hintereinander fehl
Wenn der dritte Versuch scheitert
Dann erhalte ich einen E-Mail-Alert
Und der Job wird als kritisch markiert25. Urlaubsantrag genehmigen
User Story:
Als Teamleiter möchte ich Urlaubsanträge meiner Mitarbeiter genehmigen oder ablehnen, damit die Abwesenheitsplanung dokumentiert ist.
- Offene Anträge in Dashboard-Widget
- Kalenderansicht zeigt Teamübersicht
- Genehmigen/Ablehnen mit optionalem Kommentar
- Mitarbeiter erhält automatische Benachrichtigung
- Genehmigter Urlaub erscheint im Teamkalender
Gegeben ich bin Teamleiter auf meinem Dashboard
Wenn ich das Antrags-Widget sehe
Dann werden alle offenen Urlaubsanträge meines Teams angezeigt
Und ich kann die Kalenderansicht öffnen
Gegeben ich bearbeite einen Urlaubsantrag
Wenn ich auf Genehmigen oder Ablehnen klicke
Dann kann ich optional einen Kommentar hinzufügen
Und der Mitarbeiter erhält automatisch eine Benachrichtigung
Gegeben ein Urlaubsantrag wurde genehmigt
Wenn die Genehmigung gespeichert wird
Dann erscheint der Urlaub im TeamkalenderGut vs. Schlecht: User Story Vergleiche
Vergleich 1: Zu vage vs. Konkret
Problem: „Besser" ist nicht messbar. Was bedeutet besser? Schneller? Genauer? Mehr Ergebnisse?
Vergleich 2: Lösung statt Problem
Problem: Die schlechte Story beschreibt die Lösung, nicht das Problem. Das Team hat keinen Spielraum für bessere Lösungen.
Vergleich 3: Kein Nutzen
Problem: Ohne Nutzen fehlt die Priorisierungs-Grundlage. Warum ist das wichtig?
Vergleich 4: Zu groß (verstecktes Epic)
Aufgeteilt:
- Als Besucher möchte ich mich registrieren…
- Als registrierter Nutzer möchte ich mich einloggen…
- Als eingeloggter Nutzer möchte ich mein Passwort ändern…
- Als eingeloggter Nutzer möchte ich mein Profil bearbeiten…
Problem: „Benutzerkonto" ist ein Epic, keine Story. Zu groß zum Schätzen, zu unklar zum Umsetzen.
Vergleich 5: Technisch statt nutzerzentriert
Problem: „Als System" ist keine Nutzerrolle. User Stories beschreiben Nutzerbedürfnisse, keine technischen Anforderungen.
Checkliste: Eigene User Stories schreiben
Bevor du eine Story ins Backlog legst, prüfe:
Formulierung
- Rolle ist spezifisch (nicht nur „Nutzer")
- Funktion beschreibt WAS, nicht WIE
- Nutzen beantwortet WARUM
Qualität
- Story ist unabhängig von anderen Stories
- Story ist in einem Sprint umsetzbar
- Story ist testbar (klare Kriterien)
Akzeptanzkriterien
- Mindestens 3 Kriterien definiert
- Happy Path abgedeckt
- Wichtigste Fehlerfälle berücksichtigt
- Kriterien sind messbar (keine „soll gut sein")
Nächste Schritte
Diese Beispiele sind ein Startpunkt — keine Kopiervorlagen. Jede Story muss an euren Kontext angepasst werden.
Wenn du eine Vorlage zum Ausfüllen suchst, findest du sie im User Story Vorlage Artikel.
Für den richtigen Aufbau mit INVEST-Kriterien: User Story Aufbau Guide.
Und wenn dein Team Unterstützung beim Formulieren besserer Stories braucht, hilft ein erfahrener Product Owner Coach beim Aufbau einer funktionierenden Praxis.
User Stories, die das Team versteht
Im Coaching verbessern wir gemeinsam eure User Stories — von vagen Ideen zu klaren, umsetzbaren Anforderungen.
- Praxiserprobte Formulierungen
- Weniger Rückfragen im Sprint
- Schnelleres Refinement
Remote oder vor Ort · Einzelsessions möglich