Anforderungen haben
immer Schuld
Komplexität mit gutem Anforderungsmanagement
beherrschen
Frank Düsterbeck
@fduesterbeck
DAS AGILE QUIZ
Warum haben Anforderungen oft Schuld?
DAS
AGILE
QUIZ
???Weil sie schlecht sind (wenn sie da sind) und
sich andauernd ändern!
WAS BISHER GESCHAH
IT ODER DIENSTLEISTER?
FACHBEREICH, BA UND IT?
ANFORDERUNGEN
LASTEN
LASTENHEFT
JETZT GEHT’S
(ENDLICH)
LOS???
(ER-)LÖSUNG
DER LASTEN
(PFLICHTEN)
PFLICHTENHEFT
DAS GROSSE HEFT
DER LASTEN
(1602 SEITEN)
UNDURCHSUCHBAR
UNAKTUELL
UNNÜTZ
DAS GROSSE HEFT
DER LASTEN
(1602 SEITEN)
WIE MAN ES BESSER
MACHEN KANN
(SOLLTE, MUSS)
Was ist die Grundlage
für gutes Anforderungs-
management?
PO
ENTREPRENEUR
Repräsentiert die Endkundenbedürfnisse
VEREINT PRODUKT- UND PROJEKTMANAGEMENT
Und was ist noch
Grundlage für gutes
Anforderungs-
management?
VisionZiel des Projektes
Erstellung eines Produktes
Ergebnis des Produktes
Welche Veränderung soll erzielt werden?
Nutzen des Produktes
Welche Verbesserung soll aus dem
Ergebnis resultieren?
Zielgruppe
Wer soll mit dem Produkt arbeiten?
Business
Case
Personas
Persona erstellen
Zielgruppen
erkennen und
gruppieren
> 60 Jahre
> 1.000.000 Gehalt
Verheiratet
> 1 Kind
Lebt in einer
Großstadt
Personas
Personas
Jetzt weiß ich auch wer das
System nutzt und welche
Bedürfnisse und Probleme
er hat
Probleme
Wesentliche
Informationen
Ziele
Bedürfnisse
DAS SUPER
PERSONAS
POSTER
Alternativen
Produkt-
planung
Gemeinsames Verständnis
Das ist
eine
Schlange
Das ist
ein Baum
Das ist eine
Höhle
Das ist
ein Berg
Ein Satz zu
meiner Vision
Meine
neuen Stärken
Wer möchte
was und wozu
Die
„messbaren“
Ziele
Meine
Stakeholder
Risiken und
Chancen
Als wer
Möchte ich was
ganz großes
Damit wozu
Als wer
Möchte ich was
ganz großes
Damit wozu
DAS SUPER
PRODUKT
VISION
POSTER
Stakeholder
Freunde, Feinde und Neutrale
Einfluss auf das Projekt
Interessen und Hintergründe
Weitere Treiber und Bremser
Gesetze, Projekte
Risiken und Chancen
Eintrittswahrscheinlichkeit, Auswirkung
Vorbeugen, reduzieren, übertragen, akzeptieren
Ergreifen, steigern, teilen, ablehnen
Historie
Ursprung des Projektes
Probleme in der Vergangenheit
Produktvision
Textmuster
Elevator Pitch
Muster anwenden
Produktvision
Was
Tolles!
Karton
Und wie beschreibe ich
Anforderungen?
USER STORIES
Als Rolle (wer)
Möchte ich Ziel (was)
Damit Nutzen (wozu)
Independent (von anderen unabhängig)
Negotiable (kein Gesetz)
Valuable (haben (Mehr-)Wert)
Estimable (überschau- und damit schätzbar)
Small (passen in eine Iteration)
Testable (ohne Test kein Erfolg)
Sollten denn alle
Stories möglichst klein
sein? Was sind
überhaupt Epics?
Als wer
Möchte ich was
großes
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
großes
Damit wozu
Als wer
Möchte ich was
großes
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
Damit wozu
Das muss
ich tun
Das muss
ich tun
Das muss
ich tun
Das muss
ich tun
Das muss
ich tun
PO
Als wer
Möchte ich was
ganz großes
Damit wozu
PO
TD
Muss die Summe der
Schätzung der
zerlegten Stories
eigentlich gleich der
original Story sein?
Als wer
Möchte ich was
großes
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
Damit wozu
Als wer
Möchte ich was
Damit wozu≠∑
Und wie sichere ich die
Qualität der User
Stories?
Conversation
Definition of Ready
Qualitätssicherung
für
User Stories
*Haben nicht den Anspruch Anforderungen umfassend zu dokumentieren
Card
Conversation
Confirmation
Als Benutzer
möchte ich Zahlen addieren können
damit ich Zeit beim Rechnen spare
*
Confirmation
Akzeptanzkriterien (Testbasis)
Herstellung der Messbarkeit
Ready (DoR)  Bereit zur Umsetzung
Fertig (DoD)  Bereit zur Inspektion
Schlüssel-
wörter
identifizieren
Fragen-
katalog
verwenden
Fragen im
Team
diskutieren
Akzeptanz-
kriterien
ableiten
Testfälle
spezifizieren
Confirmation
Schlüssel-
wörter
identifizieren
Confirmation
Als Benutzer
möchte ich mein Profil speichern können,
damit ich meine Daten nicht immer wieder
neu eingeben muss.
 Wer muss speichern?
 Wann speichern stattfinden?
 Wann ist speichern komplett abgeschlossen?
 Wie kann speichern genau durchgeführt werden?
 Wie häufig / oft / groß / schnell soll speichern sein?
 Wo / Wie kann geprüftwerden, ob speichern durchgeführt wurde?
 Wurde sichergestellt, dass speichern alle Daten / Aspekte berücksichtigt?
 Was geschieht, wenn man nicht speichern kann?
 Was könnte speichern verhindern und was wird dann erwartet?
 Welche möglichen Fehleingaben müssen beim speichern abgefangen werden?
 Welche Inhalte kommen in Profil vor?
 Welche optionalen / verpflichtende Aspekte gelten für Profil ?
 Welche Inhalte von Profil und nach welchen Regeln soll überprüft werden?
 Wie sieht das Layout für Profil aus?
Und was ist wenn ich
jetzt total viel
Akzeptanzkriterien
habe?
Akzeptanzkriterien
• Der Premium-Kunde soll bei einer Buchung auswählen können, ob die Buchung als Abo laufen soll
• Der ausgewählte Termin ist der Starttermin
• Er kann verschiedene Intervalle für sein Abo auswählen
– Täglich
• Er kann zwischen bestimmten Wochentagen oder allen Arbeitstagen auswählen
– Wöchtlich
• Rhythmus von jeder, zweiter, dritter…Woche
– Monatlich
• Bestimmter Wochentag (letzter Freitag im Monat)
• Bestimmter Tag, wie der 1. eines Monats
• Er kann einen Endtermin für sein Abo bestimmen
– Bestimmtes Datum
– Nach einer bestimmten Anzahl an Wochen
• Er kann in seinem Kundenkonto die ausgewählten Abos einsehen, ändern und löschen
• Er kann in seinem Kundenkonto die Kosten anzeigen
• Er kann einen Zahlungsrhythmus für das Abo auswählen
– Im Voraus
– Je Termin
– monatlich
Man soll also viel
reden!
Gibt‘s da noch mehr?
Conversation
BDD
VERHALTEN
TREIBT
ENTWICKLUNG
BEHAVIOR
DRIVEN
DEVELOPMENT
UBIQUITÄRE SPRACHE
GHERKIN
ALLE VERSTEHEN ES
SZENARIEN MIT
GIVEN WHEN THEN
ANGENOMMEN WENN DANN
Akzeptanzkriterien
Szenario: Marmelade abonnieren monatlicher Rhythmus
Angenommen ein Kunde Max
Und Max ist Premium Kunde
Und Max aktiviert den Aboservice
Wenn Max als Intervall monatlich auswählt
Dann bekommt Max eine Nachricht
Und die Marmelade wird monatlich versendet
Und er bekommt 10% Rabatt
Szenario: Marmelade abonnieren wöchentlicher Rhythmus
Angenommen ein Kunde Max
Und Max ist Premium Kunde
Und Max aktiviert den Aboservice
Wenn Max als Intervall wöchentlich auswählt
Dann bekommt Max eine Nachricht
Und die Marmelade wird wöchentlich versendet
Und er bekommt 5% Rabatt
Akzeptanzkriterien
Szenario: Marmelade abonnieren
Angenommen ein Kunde Max
Und Max ist Premium Kunde
Und Max aktiviert den Aboservice
Wenn Max ein als Intervall <intervall> auswählt
Dann bekommt Max eine Nachricht
Und die Marmelade wird <intervall> versendet
Und er bekommt <rabatt> Rabatt
Beispiele:
|intervall |rabatt |
|wöchentlich |5% |
|monatlich |10% |
… und das geht auch
automatisiert?
Wie denn?
Client
View
Model
Businesslogik
Controller
Ressourcen
Request
Response
Select
?
?
Als Benutzer
möchte ich Zahlen addieren können
damit ich Zeit beim Rechnen spare
User Story schreiben
Akzeptanzkriterien ausarbeiten
Glue Code schreiben
Unittest Code schreiben
Code schreiben
Ready
Done
[Then(@"the result should be (.*) on the screen")]
public void ThenTheResultShouldBeOnTheScreen(decimal p0)
{
Assert.AreEqual(p0, result);
}
Assert.AreEqual(130, calculator.result);
User Story schreiben
Akzeptanzkriterien ausarbeiten
Glue Code schreiben
Unittest Code schreiben
Code schreiben
Fachbereich und
Anforderungsmanager haben eine
einfache Sprache, ...
… Anforderungsmanager, Entwickler
und Tester müssen jetzt eng
zusammenarbeiten, …
… die Entwickler können dann
direkt gegen das erwartete
Verhalten (den Test) entwickeln, …
… alle kriegen sofort eine
Rückmeldung, ob sie alles richtig
gemacht haben, …
… am Ende braucht man
nicht mehr soviel testen, …
… und wir haben eine
lebende Dokumentation!!!
Das ist ja alles ganz
toll aber wie werde
ich damit den
Anforderungen an
moderne
Softwareentwicklung
gerecht?
K O M P L E X I TÄT R E D U Z I E R E N
R I S I K O M I N I M I E R E N
Epos 31
Epos 19
Epos 12
Epos 9
Epos 4
Epos 7
Epos 2
User Story 4 User Story 33
User Story 14User Story 13User Story 3
User Story 1
User Story 6
User Story 2
User Story 5



Status Ready
K O M P L E X I TÄT R E D U Z I E R E N
Detailed Appropriatly (angemessen Ausdetailliert)
Emergent (sich entwickelnd / dynamisch)
Estimated (geschätzt)
Prioritized (in „Reihenfolge“ gebracht)
Und wie mache ich
das Projectscoping?
Wie weiß ich was ich
zuerst bauen soll?
Das minimale Set an Funktionen...
...die für uns den maximalen…
...Lerneffekt herstellen.
Schick
Benutzbar
Wertvoll
Funktional
REICHT DAS?
K O M P L E X I TÄT R E D U Z I E R E N
R I S I K O M I N I M I E R E N
Das Unbekannte kennen...
...über den ganzen Geschäftsprozess(e)...
...über alle Hauptkomponenten.
Das ist mir irgendwie
noch zu unkonkret!
Pre-Suche
Einloggen
Account anlegen
Suchen
Passwort ändern
Filtern Details ansehen
Anzahl im
Warenkorb
ändern
In den Warenkorb
legen
Aus dem
Warenkorb
löschen
Bestellen
Bewerten
Eigene
Marmelade
zusammenstellen
Detaillierte
Inhaltsliste
anzeigen
Abo anlegen
Versandservice
auswählen
Einfache
Einkaufs-
möglichkeit
Pre-Suche
Einloggen
Account anlegen
Suchen
Passwort ändern Filtern
Details ansehen
In den Warenkorb
legen
Aus dem
Warenkorb
löschen
Versandservice
auswählen
Bewerten
Eigene
Marmelade
zusammenstellen
Detaillierte
Inhaltsliste
anzeigen
Abo anlegen
Anzahl im
Warenkorb
ändern
BestellungWarenkorbSucheLogin
Bestellen
Bewertung
Einfache
Einkaufs-
möglichkeit
Warenkorb
Story Mapping
SucheLogin Bestellung ...
*


Jeff Patton
Benutzer-
verwaltung
Bestellprozess
RELEASE 1:
MINISHOP
RELEASE 2:
AUKTIONEN
RELEASE 3:
MARKTPLATZ
DAS GROSSE HEFT
DER LASTEN
(1602 SEITEN)
UNDURCHSUCHBAR
UNAKTUELL
UNNÜTZ
DURCHSUCHBAR
AKTUELL
NÜTZLICH
Und was ist mit den
nicht funktionalen
Anforderungen?
reliability
availability
portability
scalability
usability
maintainability
security
performance
correctness
…
robustness
Unsere
Story Map
Unsere
Rahmenbedingungen
DoD
Als Kunde
möchte ich, dass das System 99,99%
Erreichbarkeit hat
Als Administrator
möchte ich, dass das System in einem
Fail-Over Cluster läuft
Als Kunde
möchte ich, dass das System mobile
Endgeräte unterstützt
Als ausländischer Kunde
möchte ich, dass das System meine
Sprache anbietet
Aufbau der
Testinfra-
struktur
Epos 31
Epos 19
Epos 12
Epos 9
Epos 4
Epos 7
Epos 2
Funktion Test
FunktionSpikeDesign
Tools
Infrastruktur
Technische
Unterstützung
Funktion
Gibt‘s noch was?
DON‘T WANT STORIES
Als Rolle
Möchte ich nicht, dass...
Weil / Damit ich sonst...
Und wie sieht der
Prozess für Stories bzw.
Anforderungen aus?
DAILY
SCRUM
SPRINT
PLANNING
Product
Backlog
Product
Backlog
SPRINT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
BACKLOG
PRODUCT
REVIEW
RETROSPECTIVE
STORY TODO
IN
PROGRESS DONE
SCRUM BOARD (VISUALISIERUNG)
REFINEMENT
REFINEMENT
SPRINT PLANNING
TICKETSYSTEM
Offen
Bereit zur
Umsetzung
(Ready)
In
Bearbeitung
WIKI
Fertig
(Done)
DIE GROSSE
SYSTEMDOKUMENTATION
Das muss
ich tun
DAS FAZIT
Anforderungen haben
immer Schuld
Komplexität mit gutem Anforderungsmanagement
beherrschen
Frank Düsterbeck
@fduesterbeck
Anforderungen haben
nimmer Schuld
Komplexität mit gutem Anforderungsmanagement
gerecht werden
Frank Düsterbeck
@fduesterbeck
Frank Düsterbeck
frank.duesterbeck@HEC.de
@fduesterbeck
de.slideshare.net/fduesterbeck
Anforderungen haben immer Schuld

Anforderungen haben immer Schuld