← Alle Artikel
Zuletzt aktualisiert: 2026-03-30

Software-Anforderungen schreiben, die Entwickler tatsächlich umsetzen können

Klare Software-Anforderungen mit User Stories, Akzeptanzkriterien und Edge Cases schreiben.

Zusammenfassung

Schlechte Anforderungen sind der Hauptgrund, warum Softwareprojekte scheitern. Dieser Leitfaden gibt Ihnen ein wiederholbares Framework: Führen Sie strukturierte Discovery-Calls durch, schreiben Sie User Stories mit messbaren Akzeptanzkriterien, identifizieren Sie systematisch Grenzfälle und erstellen Sie ein Anforderungsdokument, das ein Entwickler schätzen und umsetzen kann — ohne ein einziges "das System soll benutzerfreundlich sein".

Voraussetzungen

Schritt 1: Das Discovery-Call-Framework

Bevor Sie eine einzige Anforderung schreiben, müssen Sie das Problem verstehen. Die meisten Anforderungsfehler lassen sich darauf zurückführen, dass dieser Schritt übersprungen oder überhastet wurde. Hier ist ein strukturiertes Framework für Discovery-Calls, das tatsächlich verwertbare Ergebnisse liefert.

Vorbereitung vor dem Call (15 Minuten)

Senden Sie dem Stakeholder mindestens 24 Stunden vor dem Call einen kurzen Fragebogen:

1. Welches Problem lösen wir? (1-2 Sätze)
2. Wer hat dieses Problem? (konkrete Rollen/Personas)
3. Was passiert heute ohne diese Lösung? (aktueller Workaround)
4. Wie sieht "fertig" aus? (Erfolgskennzahl)
5. Gibt es harte Deadlines oder Einschränkungen?

Die Call-Struktur (60 Minuten)

Verwenden Sie diese Agenda — weichen Sie bei Bedarf ab, aber decken Sie immer diese Blöcke ab:

00:00 - 05:00  Kontext-Abgleich (wiederholen, was Sie wissen)
05:00 - 20:00  Problem-Vertiefung ("Zeigen Sie mir, wie Sie das heute machen")
20:00 - 35:00  Lösungsexploration ("Was wäre, wenn wir...")
35:00 - 50:00  Einschränkungen erfassen (Budget, Timeline, Integrationen)
50:00 - 55:00  Priorisierung (Must-have vs Nice-to-have)
55:00 - 60:00  Nächste Schritte und Zeitplan

Schlüsselfragen

Diese Fragen decken konsistent versteckte Anforderungen auf:

Nachbereitung

Senden Sie innerhalb von 24 Stunden eine strukturierte Zusammenfassung zur Bestätigung an den Stakeholder. Das ist Ihr erster Entwurf der Anforderungen — nicht das finale Dokument, aber das Fundament.

Schritt 2: User Stories, die funktionieren

Eine User Story ist für sich genommen keine Anforderung. Sie ist ein Platzhalter für ein Gespräch. Aber eine gut geschriebene User Story macht dieses Gespräch produktiv.

Das Format

Als [konkrete Rolle],
möchte ich [konkrete Aktion],
damit [messbares Geschäftsergebnis].

Gute vs. schlechte Beispiele

SCHLECHT: Als Benutzer möchte ich ein Dashboard, damit ich Daten sehen kann.
GUT:      Als Lagerleiter möchte ich die heutigen ausstehenden
          Sendungen nach Deadline sortiert sehen, damit ich
          priorisieren kann, welche Aufträge zuerst kommissioniert werden.

SCHLECHT: Als Admin möchte ich Benutzer verwalten.
GUT:      Als Kontoadministrator möchte ich ein Benutzerkonto
          deaktivieren und dessen offene Aufgaben einem anderen
          Teammitglied zuweisen, damit keine Arbeit verloren geht,
          wenn jemand das Team verlässt.

Die INVEST-Checkliste

Jede User Story sollte sein:

Wenn eine Story einen dieser Punkte nicht erfüllt, teilen Sie sie auf oder schreiben Sie sie um. Eine Story, die "Estimable" nicht erfüllt, bedeutet meist, dass das Problem nicht gut genug verstanden ist — gehen Sie zurück zum Discovery.

Schritt 3: Akzeptanzkriterien als Vertrag

Akzeptanzkriterien verwandeln vage Stories in baubare Spezifikationen. Sie sind der Vertrag zwischen Product Owner und Entwicklungsteam. Wenn die Akzeptanzkriterien bestanden werden, ist die Story fertig. Punkt.

Given-When-Then-Format

Story: Als Lagerleiter möchte ich die heutigen ausstehenden
       Sendungen nach Deadline sortiert sehen.

Akzeptanzkriterien:

Gegeben ich bin als Lagerleiter eingeloggt
  Und es gibt 3 ausstehende Sendungen für heute
Wenn ich das Dashboard öffne
Dann sehe ich genau diese 3 Sendungen
  Und sie sind nach Deadline aufsteigend sortiert
  Und jeder Eintrag zeigt: Auftrags-ID, Kundenname,
    Deadline-Uhrzeit, Artikelanzahl

Gegeben ich bin als Lagerleiter eingeloggt
  Und es gibt keine ausstehenden Sendungen für heute
Wenn ich das Dashboard öffne
Dann sehe ich eine Leerzustandsmeldung:
    "Keine Sendungen für heute fällig"

Gegeben ich bin als Lagerleiter eingeloggt
  Und eine Sendungs-Deadline ist abgelaufen
Wenn ich das Dashboard öffne
Dann ist diese Sendung rot hervorgehoben
  Und sie erscheint unabhängig von der Sortierung ganz oben

Regeln für gute Akzeptanzkriterien

Schritt 4: Systematische Edge-Case-Identifikation

Grenzfälle sind dort, wo Bugs leben. Ein systematischer Ansatz, sie zu finden, spart Wochen an Hin und Her während der Entwicklung.

Die Edge-Case-Matrix

Gehen Sie für jedes Feature diese Kategorien durch:

Kategorie          | Fragen
-------------------+-------------------------------------------
Leerzustand        | Was, wenn keine Daten? Null Einträge?
Grenzwerte         | Maximale Länge? Negative Zahlen? Null?
Berechtigungen     | Was, wenn Zugriff fehlt? Rollenwechsel?
Nebenläufigkeit    | Was, wenn zwei Nutzer gleichzeitig bearbeiten?
Zeitzonen          | Überschreitet das Zeitzonengrenzen?
Konnektivität      | Was bei Netzwerkabbruch während einer Aktion?
Datenformate       | Unicode? Sonderzeichen? RTL-Text?
Skalierung         | Was bei 1 Mio Datensätzen? Bei einem?
Zustandsübergänge  | Was, wenn sich der Status während der Ansicht ändert?
Externe Abhängig.  | Was, wenn eine Drittanbieter-API ausfällt?

Praktische Übung

Nehmen Sie Ihre komplexeste User Story. Stellen Sie einen Timer auf 15 Minuten. Gehen Sie die obige Matrix durch. Sie werden mindestens 5 Grenzfälle finden, an die Sie nicht gedacht hatten. Schreiben Sie jeden als zusätzliches Akzeptanzkriterium oder als separate Story, wenn er groß genug ist.

Schritt 5: Das Anforderungsdokument-Format

Hier ist ein bewährtes Template, das Vollständigkeit und Lesbarkeit in Balance bringt. Entwickler, Designer und Product Owner können alle damit arbeiten.

# Feature: [Name]

## Kontext
- Problembeschreibung (2-3 Sätze)
- Aktueller Workaround
- Erfolgskennzahl

## User Stories
- US-001: Als [Rolle] möchte ich [Aktion], damit [Ergebnis]
- US-002: ...

## Akzeptanzkriterien
### US-001
- AK-001.1: Gegeben... Wenn... Dann...
- AK-001.2: Gegeben... Wenn... Dann...

## Datenanforderungen
- Eingabefelder: [Liste mit Typen, Einschränkungen, Validierungsregeln]
- Ausgabefelder: [Liste mit Formaten]
- Speicherung: [Wo leben diese Daten?]

## Nicht-funktionale Anforderungen
- Performance: [konkrete Ziele, z.B. "< 2s Antwortzeit"]
- Sicherheit: [Authentifizierungsmethode, Datensensibilitätsstufe]
- Barrierefreiheit: [WCAG-Level, spezifische Anforderungen]

## Abhängigkeiten
- Externe Systeme: [Liste mit API-Doku-Links]
- Interne Services: [Liste]
- Datenmigrationen: [falls vorhanden]

## Außerhalb des Umfangs
- [Explizit auflisten, was dieses Feature NICHT beinhaltet]

## Offene Fragen
- [Ungeklärte Punkte mit Verantwortlichem und Fälligkeitsdatum]

Der Abschnitt "Außerhalb des Umfangs" ist wohl der wichtigste. Er verhindert Scope Creep, indem Grenzen explizit gemacht werden. Was nicht im Umfang ist, ist nicht in der Schätzung und nicht im Sprint.

Schritt 6: Anti-Patterns vermeiden

Dies sind die häufigsten Anforderungsfehler, gesammelt aus Hunderten gescheiterter Projekte:

1. Die "Lösungsspezifikation" als Anforderung getarnt

SCHLECHT: "Verwende eine PostgreSQL-Datenbank mit einer users-Tabelle
           mit Spalten id, name, email."
GUT:      "Das System muss Benutzerprofile mit Name und E-Mail
           speichern. Daten müssen sitzungsübergreifend bestehen
           bleiben und per E-Mail abfragbar sein."

Anforderungen beschreiben was und warum. Architektur beschreibt wie. Vermischen Sie das nicht, es sei denn, die Technologie ist eine harte Einschränkung.

2. Die "vage Adjektive"-Falle

Markieren Sie diese Wörter in jedem Anforderungsdokument — sie sind fast immer bedeutungslos:

3. Das "fehlende Negativ"-Problem

Anforderungen, die nur den Happy Path beschreiben. Fragen Sie: "Was soll das System tun, wenn [alles schiefgeht]?"

4. Die "Gemischtwarenladen"-Anforderung

SCHLECHT: "Das System soll die gesamte Benutzerverwaltung abdecken
           einschließlich Registrierung, Login, Passwort-Reset,
           Profilbearbeitung, Rollenzuweisung, Kontolöschung,
           Audit-Logging und SSO-Integration."

Das sind 8 separate Features in einen Satz gestopft. Jedes braucht eine eigene Story, Kriterien und Schätzung.

5. Der "Kopie vom Wettbewerber"-Ansatz

"Es soll wie Slack funktionieren" ist keine Anforderung. Slack hat Tausende Features, gebaut von Hunderten Entwicklern über 10 Jahre. Seien Sie konkret, welches Verhalten Sie wollen und warum.

Problembehandlung & Hinweise

Stakeholder, die nicht artikulieren können, was sie wollen

Zeigen Sie Beispiele. Erstellen Sie Lo-Fi-Mockups (Stift und Papier reicht). Bitten Sie sie, auf etwas Konkretes zu reagieren, anstatt von Grund auf zu erschaffen. "Ist es eher wie A oder wie B?" ist leichter zu beantworten als "Was möchten Sie?"

Anforderungen, die sich ständig ändern

Ein gewisses Maß an Änderung ist normal und gesund. Aber wenn sich Kernanforderungen nach Entwicklungsstart ändern, haben Sie ein Discovery-Problem, kein Entwicklungsproblem. Gehen Sie zurück zum Discovery-Call-Framework und machen Sie es richtig.

Entwickler sagen "Das kann ich nicht schätzen"

Das bedeutet, die Anforderung ist nicht spezifisch genug. Fragen Sie den Entwickler: "Welche Information brauchst du, um zu schätzen?" Dokumentieren Sie die Fragen, holen Sie Antworten von Stakeholdern und aktualisieren Sie die Anforderung.

Zu viele Anforderungen, zu wenig Zeit

Verwenden Sie die MoSCoW-Methode: Must have, Should have, Could have, Won't have. Seien Sie ehrlich bei "Won't have" — das heißt nicht "nie", sondern "nicht in diesem Release". Das erzwingt Priorisierung und verhindert den Gemischtwarenladen.

Prävention & Best Practices

Continuous Discovery

Behandeln Sie Anforderungen nicht als einmalige Phase. Führen Sie kurze Discovery-Sessions (30 Minuten) jeden Sprint durch, um anstehende Arbeit zu verfeinern. Das fängt Missverständnisse früh ab, wenn sie billig zu beheben sind.

Die Drei Amigos

Bevor die Entwicklung einer Story beginnt, führen Sie ein 15-minütiges Gespräch mit genau drei Personen: einer Produktperson, einem Entwickler und einem Tester. Jeder bringt eine andere Perspektive ein, die verschiedene Lücken aufdeckt.

Anforderungs-Reviews

Behandeln Sie Anforderungen wie Code — sie brauchen Reviews. Lassen Sie einen Entwickler die Akzeptanzkriterien durchlesen und fragen: "Kann ich genau das ohne Mehrdeutigkeit bauen?" Wenn nicht, verfeinern.

Lebende Dokumentation

Anforderungen, die in E-Mail-Threads oder Slack-Nachrichten leben, sind Anforderungen, die verloren gehen. Nutzen Sie eine einzige Wahrheitsquelle (Wiki, Notion, Confluence) und verlinken Sie von Ihrem Projektmanagement-Tool. Jede Story-Karte sollte auf ihre detaillierte Spezifikation verlinken.

Versionskontrolle für Anforderungen

Verfolgen Sie Änderungen an Anforderungen. Wenn ein Stakeholder fragt "Warum haben wir das so gebaut?", müssen Sie auf die Anforderung und den Genehmiger verweisen können. Das ist keine Bürokratie — es ist Schutz für alle Beteiligten.

Template-Konsistenz

Verwenden Sie dasselbe Anforderungsdokument-Format für jedes Feature. Konsistenz reduziert die kognitive Last für alle Leser und macht es schwerer, versehentlich einen Abschnitt zu überspringen.

Experten-Hilfe gebraucht?

Soll ich bei Ihrem Kundengespräch dabei sein und die Spezifikation liefern? €150.

Jetzt buchen — €150

100% Geld-zurück-Garantie

HR

Harald Roessler

Infrastructure Engineer mit 20+ Jahren Erfahrung. Gründer der DSNCON GmbH.