Anforderungen haben immer Schuld

84
Anforderungen haben immer Schuld Komplexität mit gutem Anforderungsmanagement beherrschen Frank Düsterbeck @fduesterbeck

Transcript of Anforderungen haben immer Schuld

Page 1: Anforderungen haben immer Schuld

Anforderungen haben

immer SchuldKomplexität mit gutem Anforderungsmanagement

beherrschenFrank Düsterbeck

@fduesterbeck

Page 2: Anforderungen haben immer Schuld

DAS AGILE QUIZ

Warum haben Anforderungen oft Schuld?

DAS

AGILE

QUIZ

???Weil sie schlecht sind (wenn sie da sind) und

sich andauernd ändern!

Page 3: Anforderungen haben immer Schuld

WAS BISHER GESCHAH

Page 4: Anforderungen haben immer Schuld

IT ODER DIENSTLEISTER?

FACHBEREICH, BA UND IT?

ANFORDERUNGEN

LASTEN

LASTENHEFT

JETZT GEHT’S (ENDLICH)

LOS???

(ER-)LÖSUNG DER LASTEN(PFLICHTEN)

PFLICHTENHEFT

Page 5: Anforderungen haben immer Schuld
Page 6: Anforderungen haben immer Schuld

DAS GROSSE HEFT DER LASTEN

(1602 SEITEN)

UNDURCHSUCHBAR

UNAKTUELLUNNÜTZ

Page 7: Anforderungen haben immer Schuld
Page 8: Anforderungen haben immer Schuld

DAS GROSSE HEFT DER LASTEN

(1602 SEITEN)

Page 9: Anforderungen haben immer Schuld

WIE MAN ES BESSER

MACHEN KANN

(SOLLTE, MUSS)

Page 10: Anforderungen haben immer Schuld

Was ist die Grundlage für gutes Anforderungs-

management?

Page 11: Anforderungen haben immer Schuld

PO

ENTREPRENEUR

Repräsentiert die Endkundenbedürfnisse

VEREINT PRODUKT- UND PROJEKTMANAGEMENT

Page 12: Anforderungen haben immer Schuld

Und was ist noch Grundlage für gutes

Anforderungs-management?

Page 13: Anforderungen haben immer Schuld

VisionZiel des Projektes Erstellung eines Produktes

Ergebnis des ProduktesWelche Veränderung soll erzielt werden?

Nutzen des ProduktesWelche Verbesserung soll aus demErgebnis resultieren?

ZielgruppeWer soll mit dem Produkt arbeiten?

Bu

sin

ess

Cas

e

Page 14: Anforderungen haben immer Schuld

PersonasPersona erstellen

Zielgruppen erkennen und gruppieren

Page 15: Anforderungen haben immer Schuld

> 60 Jahre> 1.000.000 GehaltVerheiratet> 1 KindLebt in einer Großstadt

Personas

Page 16: Anforderungen haben immer Schuld

PersonasJetzt weiß ich auch wer das System nutzt und welche

Bedürfnisse und Probleme er hat

Page 17: Anforderungen haben immer Schuld

Probleme

Wesentliche Informationen

ZieleBedürfnisse

DAS SUPER

PERSONAS POSTER

Alternativen

Page 18: Anforderungen haben immer Schuld

Produkt-planung

Page 19: Anforderungen haben immer Schuld

Gemeinsames Verständnis

Das ist eine

Schlange

Das ist ein Baum

Das ist eine Höhle

Das ist ein Berg

Page 20: Anforderungen haben immer Schuld

Ein Satz zu meiner Vision

Meine neuen Stärken

Wer möchte was und wozu

Die „messbaren“

Ziele

Meine Stakeholder

Risiken und Chancen

Als werMöchte ich was ganz großesDamit wozu

Als werMöchte ich was ganz großesDamit wozu

DAS SUPER

PRODUKT VISION POSTER

Page 21: Anforderungen haben immer Schuld

StakeholderFreunde, Feinde und Neutrale

Einfluss auf das ProjektInteressen und Hintergründe

Weitere Treiber und BremserGesetze, Projekte

Risiken und ChancenEintrittswahrscheinlichkeit, Auswirkung

Vorbeugen, reduzieren, übertragen, akzeptierenErgreifen, steigern, teilen, ablehnen

HistorieUrsprung des Projektes

Probleme in der Vergangenheit

Page 22: Anforderungen haben immer Schuld

Produktvision

Textmuster Elevator Pitch

Page 23: Anforderungen haben immer Schuld

Muster anwenden

Page 24: Anforderungen haben immer Schuld

Produktvision

Was Tolles!

Karton

Page 25: Anforderungen haben immer Schuld

Und wie beschreibe ich Anforderungen?

Page 26: Anforderungen haben immer Schuld

USER STORIES

Als Rolle (wer)Möchte ich Ziel (was) Damit Nutzen (wozu)

Page 27: Anforderungen haben immer Schuld

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)

Page 28: Anforderungen haben immer Schuld

Sollten denn alle Stories möglichst klein sein? Was sind überhaupt Epics?

Page 29: Anforderungen haben immer Schuld

Als werMöchte ich was großesDamit wozu

Als werMöchte ich wasDamit wozu

Als werMöchte ich was großesDamit wozu

Als werMöchte ich was großesDamit wozu

Als werMöchte ich wasDamit wozuAls werMöchte ich wasDamit wozu

Als werMöchte ich wasDamit wozu

Das muss ich tun

Das muss ich tun

Das muss ich tunDas muss ich tun

Das muss ich tun

PO

Als werMöchte ich was ganz großesDamit wozu

PO

TD

Page 30: Anforderungen haben immer Schuld
Page 31: Anforderungen haben immer Schuld

Muss die Summe der Schätzung der zerlegten Stories eigentlich gleich der original Story sein?

Page 32: Anforderungen haben immer Schuld

Als werMöchte ich was großesDamit wozu

Als werMöchte ich wasDamit wozu

Als werMöchte ich wasDamit wozuAls werMöchte ich wasDamit wozu

Als werMöchte ich wasDamit wozu≠∑

Page 33: Anforderungen haben immer Schuld

Und wie sichere ich die Qualität der User Stories?

Page 34: Anforderungen haben immer Schuld

ConversationDefinition of Ready

Qualitätssicherungfür

User Stories

Page 35: Anforderungen haben immer Schuld

*Haben nicht den Anspruch Anforderungen umfassend zu dokumentieren

Card

Conversation

Confirmation

Als Benutzermöchte ich Zahlen addieren könnendamit ich Zeit beim Rechnen spare

*

Page 36: Anforderungen haben immer Schuld

Confirmation

Akzeptanzkriterien (Testbasis)

Herstellung der Messbarkeit

Ready (DoR) Bereit zur Umsetzung

Fertig (DoD) Bereit zur Inspektion

Page 37: Anforderungen haben immer Schuld

Schlüssel-wörter

identifizieren

Fragen-katalog

verwenden

Fragen im Team

diskutieren

Akzeptanz-kriterien ableiten

Testfälle spezifizieren

Confirmation

Page 38: Anforderungen haben immer Schuld

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.

Page 39: Anforderungen haben immer Schuld

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?

Page 40: Anforderungen haben immer Schuld

Und was ist wenn ich jetzt total viel Akzeptanzkriterien habe?

Page 41: Anforderungen haben immer Schuld

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

Page 42: Anforderungen haben immer Schuld

Man soll also viel reden!

Gibt‘s da noch mehr?

Page 43: Anforderungen haben immer Schuld

Conversation

BDD

Page 44: Anforderungen haben immer Schuld

VERHALTEN

TREIBT

ENTWICKLUNG

BEHAVIOR

DRIVEN

DEVELOPMENT

Page 45: Anforderungen haben immer Schuld

UBIQUITÄRE SPRACHEGHERKIN

ALLE VERSTEHEN ES

SZENARIEN MIT

GIVEN WHEN THENANGENOMMEN WENN DANN

Page 46: Anforderungen haben immer Schuld

Akzeptanzkriterien

Szenario: Marmelade abonnieren monatlicher RhythmusAngenommen ein Kunde MaxUnd Max ist Premium KundeUnd Max aktiviert den AboserviceWenn Max als Intervall monatlich auswähltDann bekommt Max eine Nachricht Und die Marmelade wird monatlich versendetUnd er bekommt 10% Rabatt

Szenario: Marmelade abonnieren wöchentlicher RhythmusAngenommen ein Kunde MaxUnd Max ist Premium KundeUnd Max aktiviert den AboserviceWenn Max als Intervall wöchentlich auswähltDann bekommt Max eine Nachricht Und die Marmelade wird wöchentlich versendetUnd er bekommt 5% Rabatt

Page 47: Anforderungen haben immer Schuld

Akzeptanzkriterien

Szenario: Marmelade abonnierenAngenommen ein Kunde MaxUnd Max ist Premium KundeUnd Max aktiviert den AboserviceWenn Max ein als Intervall <intervall> auswähltDann bekommt Max eine Nachricht Und die Marmelade wird <intervall> versendetUnd er bekommt <rabatt> Rabatt

Beispiele:|intervall |rabatt ||wöchentlich |5% ||monatlich |10% |

Page 48: Anforderungen haben immer Schuld

… und das geht auch automatisiert?

Wie denn?

Page 49: Anforderungen haben immer Schuld

Client

View

ModelBusinesslogik

Controller

Ressourcen

Request

Response

Select

??

Page 50: Anforderungen haben immer Schuld

Als Benutzermöchte ich Zahlen addieren könnendamit 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);

Page 51: Anforderungen haben immer Schuld

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!!!

Page 52: Anforderungen haben immer Schuld

Das ist ja alles ganz toll aber wie werde

ich damit den Anforderungen an

moderne Softwareentwicklung

gerecht?

Page 53: Anforderungen haben immer Schuld

K O M P L E X I T Ä T R E D U Z I E R E NR I S I K O M I N I M I E R E N

Page 54: Anforderungen haben immer Schuld

Epos 31

Epos 19Epos 12

Epos 9Epos 4

Epos 7Epos 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

Page 55: Anforderungen haben immer Schuld

Detailed Appropriatly (angemessen Ausdetailliert)

Emergent (sich entwickelnd / dynamisch)

Estimated (geschätzt)

Prioritized (in „Reihenfolge“ gebracht)

Page 56: Anforderungen haben immer Schuld

Und wie mache ich das Projectscoping?

Wie weiß ich was ich zuerst bauen soll?

Page 57: Anforderungen haben immer Schuld
Page 58: Anforderungen haben immer Schuld

Das minimale Set an Funktionen...

...die für uns den maximalen…

...Lerneffekt herstellen.

Schick

Benutzbar

Wertvoll

Funktional

Page 59: Anforderungen haben immer Schuld

REICHT DAS?

K O M P L E X I T Ä T R E D U Z I E R E NR I S I K O M I N I M I E R E N

Page 60: Anforderungen haben immer Schuld
Page 61: Anforderungen haben immer Schuld

Das Unbekannte kennen...

...über den ganzen Geschäftsprozess(e)...

...über alle Hauptkomponenten.

Page 62: Anforderungen haben immer Schuld

Das ist mir irgendwie noch zu unkonkret!

Page 63: Anforderungen haben immer Schuld

Pre-Suche

Einloggen

Account anlegen

SuchenPasswort ä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

Versandserviceauswählen

Einfache Einkaufs-

möglichkeit

Page 64: Anforderungen haben immer Schuld

Pre-Suche

Einloggen

Account anlegen

Suchen

Passwort ändern Filtern

Details ansehen

In den Warenkorb legen

Aus dem Warenkorb

löschen

Versandserviceauswählen

Bewerten

Eigene Marmelade

zusammenstellen

Detaillierte Inhaltsliste anzeigen

Abo anlegen

Anzahl im Warenkorb

ändern

BestellungWarenkorbSucheLogin

Bestellen

Bewertung

Einfache Einkaufs-

möglichkeit

Page 65: Anforderungen haben immer Schuld

Warenkorb

Story MappingSucheLogin Bestellung ...

*

Jeff Patton

Benutzer-verwaltung

Bestellprozess

Page 66: Anforderungen haben immer Schuld

RELEASE 1:MINISHOP

RELEASE 2:AUKTIONEN

RELEASE 3:MARKTPLATZ

Page 67: Anforderungen haben immer Schuld

DAS GROSSE HEFT DER LASTEN

(1602 SEITEN)

UNDURCHSUCHBAR

UNAKTUELLUNNÜTZ

Page 68: Anforderungen haben immer Schuld

DURCHSUCHBAR

AKTUELLNÜTZLICH

Page 69: Anforderungen haben immer Schuld

Und was ist mit den nicht funktionalen Anforderungen?

Page 70: Anforderungen haben immer Schuld

reliability

availability

portability

scalability

usability

maintainability

security

performance

correctness

robustness

Page 71: Anforderungen haben immer Schuld

Unsere

Story Map

Unsere

Rahmenbedingungen

DoD

Als Kundemöchte ich, dass das System 99,99% Erreichbarkeit hat

Als Administratormöchte ich, dass das System in einem Fail-Over Cluster läuft

Als Kundemöchte ich, dass das System mobile Endgeräte unterstützt

Als ausländischer Kundemöchte ich, dass das System meine Sprache anbietet

Aufbau der Testinfra-struktur

Page 72: Anforderungen haben immer Schuld

Epos 31

Epos 19Epos 12

Epos 9Epos 4

Epos 7Epos 2

Funktion Test

FunktionSpikeDesign

Tools

Infrastruktur

Technische

Unterstützung

Funktion

Page 73: Anforderungen haben immer Schuld

Gibt‘s noch was?

Page 74: Anforderungen haben immer Schuld

DON‘T WANT STORIES

Als RolleMöchte ich nicht, dass...Weil / Damit ich sonst...

Page 75: Anforderungen haben immer Schuld

Und wie sieht der Prozess für Stories bzw. Anforderungen aus?

Page 76: Anforderungen haben immer Schuld

DAILY

SCRUM

SPRINT

PLANNING

Product

BacklogProduct

BacklogSPRINT

BACKLOG

PRODUCT

BACKLOGPRODUCT

BACKLOGPRODUCT

BACKLOGPRODUCT

BACKLOGPRODUCT

BACKLOGPRODUCT

BACKLOG

PRODUCT

REVIEW

RETROSPECTIVE

STORY TODOIN

PROGRESS DONE

SCRUM BOARD (VISUALISIERUNG)

REFINEMENT

Page 77: Anforderungen haben immer Schuld

REFINEMENT

SPRINT PLANNING

Page 78: Anforderungen haben immer Schuld

TICKETSYSTEM

Offen

Bereit zur Umsetzung

(Ready)

In Bearbeitung

WIKI

Fertig(Done)

DIE GROSSE SYSTEMDOKUMENTATION

Das muss ich tun

Page 79: Anforderungen haben immer Schuld

DAS FAZIT

Page 80: Anforderungen haben immer Schuld

Anforderungen haben

immer SchuldKomplexität mit gutem Anforderungsmanagement

beherrschenFrank Düsterbeck

@fduesterbeck

Page 81: Anforderungen haben immer Schuld

Anforderungen haben

nimmer SchuldKomplexität mit gutem Anforderungsmanagement

gerecht werdenFrank Düsterbeck

@fduesterbeck

Page 82: Anforderungen haben immer Schuld
Page 83: Anforderungen haben immer Schuld

Frank Düsterbeck

[email protected]

@fduesterbeck

de.slideshare.net/fduesterbeck

Page 84: Anforderungen haben immer Schuld