"Anforderung = Story", stimmt das? Das Konzept der User Story scheint fest etabliert – als Anforderungsdokument, als Schätzgrundlage und als oft einzige Möglichkeit mit Anforderungen umzugehen. Der Ursprung des Konzepts Story hat viel mehr mit dem Vorgehen als mit dem Format einer Anforderung zu tun. Die noch in XP-Zeiten beschriebenen Phasen Card, Conversation und Confirmation (kurz CCC) beschreiben dabei viel mehr als nur die Entstehung einer Anforderung. In dieser Session werden die ursprünglichen Ideen hinter dem Konzept "Story" deutlich und wir durchleben verschiedene Ansätze, auch heute wieder gemeinsam sinnvoll(er) – im agilen Sinn – mit Anforderungen umzugehen.
What's in a Story? Drei Ansätze, um mit Anforderungen gemeinsam erfolgreich zu sein
1. Slide #
2018 Michael Mahlberg
What's In A Story?
1
Michael Mahlberg 5. September 2019
Drei Ansätze, um mit Anforderungen
gemeinsam erfolgreich zu sein
2. Slide #
2019 Michael Mahlberg 2
Was zum Schreiben und
Zeichnen wäre gut…
…es wird Übungen
geben
3. Slide #
2019 Michael Mahlberg
What's in a Story?
Drei Ansätze, um mit Anforderungen
gemeinsam erfolgreich zu sein
3
4. Slide #
2019 Michael Mahlberg
Als <Productowner> möchte ich, dass <das
Feld Bestellnummer 12-stellig wird> weil
<ich es so sage>
4
5. Slide #
2019 Michael Mahlberg
“Our mission is to become the
international leader in the space
industry through maximum team-
centered innovation and
strategically targeted aerospace
initiatives.”
Heath, Chip,Dan Heath. Made to Stick: Why some ideas take hold and others
come unstuck (p. 21). Random House. Kindle Edition.
5
6. Slide #
2019 Michael Mahlberg
“Put a man on the moon and return
him safely by the end of the
decade.” (John F. Kennedy)
Heath, Chip,Dan Heath. Made to Stick: Why some ideas
take hold and others come unstuck (p. 21). Random House.
Kindle Edition.
6
7. Slide #
2019 Michael Mahlberg
Gedächtnisübung
Geschichten vs. Fakten, Fakten, Fakten
7
18. Slide #
2019 Michael Mahlberg
Quelle
http://cis.bentley.edu/lwaguespack/CS360_Site/Downloads_files/
Use%20Case%20Template%20%28Cockburn%29.pdf
Basic
Use
Case
Template,
Alistair
Cockburn
Document:
TR.96.03a
October
26,
1998
19. Slide #
2019 Michael Mahlberg
Quelle
http://cis.bentley.edu/lwaguespack/CS360_Site/Downloads_files/
Use%20Case%20Template%20%28Cockburn%29.pdf
Basic
Use
Case
Template,
Alistair
Cockburn
Document:
TR.96.03a
October
26,
1998
21. Slide #
2019 Michael Mahlberg
Quelle
https://www.researchgate.net/figure/Left-Model-tree-for-the-IFM-model-in-Rhapsody-
Right-DOORs-Rhapsody-link-on-the_fig3_265475891
Software
Support
for
the
Consistent
Transition
from
Requirements
to
Functional
Modeling
to
System
Simulation
25. Slide #
2019 Michael Mahlberg 25
Quelle
http://csis.pace.edu/~marchese/CS616/Agile/FDD/fdd.pdf
Major Seminar On Feature Driven Development WS 2007/08 Sadhna Goyal
26. Slide #
2019 Michael Mahlberg 26
By Definition: A feature is a small, client valued function that
can be implemented in two weeks
The feature naming template is
<action>the <result><by|for |of | to|><a(n)><object>
Example of features are :
• Calculate [action] the total [result] of a sale [object].
• Assess the fulfilment timeliness of a sale
• Calculate the total purchases by a customer
A feature Set is a grouping of business related features.
<action><-ing><a(n)><object>
Example : Making a product sale.
A major feature Set
<object>Management
Example: Product-Sales Management
27. Slide #
2019 Michael Mahlberg
Feature-Teams
LeSS / Larman&Vodde
u.a https://featureteams.org/
27
29. Slide #
2019 Michael Mahlberg
Alte Welt: Fachseite wirft Anforderung über
die Mauer
Neue Welt: „Product Owner“ wirft User
Stories mit Akzeptanzkriterien über die
Mauer
29
30. Slide #
2019 Michael Mahlberg
Zusammenarbeit bei der
Spezifikation
Jason Little’s Simulation (Anforderungen
Zeichnen lassen)
30
53. Slide #
2019 Michael Mahlberg
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
54. Slide #
2019 Michael Mahlberg 54
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
55. Slide #
2019 Michael Mahlberg 55
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
Given <some situation>
When <some observable event>
Then <some observable result>
Elaboration on the result
a Gherkin Scenario
56. Slide #
2019 Michael Mahlberg 56
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
Given <some situation>
When <some observable event>
Then <some observable result>
Elaboration on the result
a Gherkin Scenario
Developer
Discuss
57. Slide #
2019 Michael Mahlberg 57
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
Given <some situation>
When <some observable event>
Then <some observable result>
Elaboration on the result
a Gherkin Scenario
Developer
Discuss
Google
http://Documents.wiki.internal
Web Page Title
Event-Description
[Wiki]
# ruby
Given /^some (.*) situation$/ do |name|
# ...
end
some step
implementations
# ruby
When /^some observable event$/ do
# ...
end
# ruby
Then /^some observable result$/ do
# ...
end
58. Slide #
2019 Michael Mahlberg 58
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
Given <some situation>
When <some observable event>
Then <some observable result>
Elaboration on the result
a Gherkin Scenario
Developer
Discuss
Google
http://Documents.wiki.internal
Web Page Title
Event-Description
[Wiki]
# ruby
Given /^some (.*) situation$/ do |name|
# ...
end
some step
implementations
# ruby
When /^some observable event$/ do
# ...
end
# ruby
Then /^some observable result$/ do
# ...
end
Extends
another (developer driven)
Gherkin Scenario
Given <a different situation>
When <some observable event>
Then <some observable result>
59. Slide #
2019 Michael Mahlberg 59
Product Owner
Business Analyst
Creates
As a <persona>
I want <system behavior>
so that <business relevant result>
a user story
Google
http://Documents.wiki.internal
Web Page Title
Persona-Description
[Wiki]
Given <some situation>
When <some observable event>
Then <some observable result>
Elaboration on the result
a Gherkin Scenario
Developer
Discuss
Google
http://Documents.wiki.internal
Web Page Title
Event-Description
[Wiki]
# ruby
Given /^some (.*) situation$/ do |name|
# ...
end
some step
implementations
# ruby
When /^some observable event$/ do
# ...
end
# ruby
Then /^some observable result$/ do
# ...
end
Extends
another (developer driven)
Gherkin Scenario
Given <a different situation>
When <some observable event>
Then <some observable result>
# ruby
Given /^some (.*) situation$/ do |name|
# ...
end
more step
implementations
# ruby
When /^some observable event$/ do
# ...
end
# ruby
Then /^some observable result$/ do
# ...
end
63. Slide #
2019 Michael Mahlberg 63
In order to <value to achieve>
as a <customer role>
I want <some functionality>
Quelle:
https://lizkeogh.com/2010/02/02/theyre-not-user-stories/
64. Slide #
2019 Michael Mahlberg 64
Damit <Wert der geschöpft werde soll>
Möchte ich als <Nutzer/Stakeholder>,
dass <Systemverhalten>
Quelle:
https://lizkeogh.com/2010/02/02/theyre-not-user-stories/
65. Slide #
2019 Michael Mahlberg
Connextras / Mike
Cohns Format
für User Stories
65
66. Slide #
2019 Michael Mahlberg 66
Quelle:
https://www.mountaingoatsoftware.com/blog/why-the-three-part-user-story-template-works-so-well
As a (role),
I want (function)
so that (business value).
67. Slide #
2019 Michael Mahlberg 67
Quelle:
https://www.mountaingoatsoftware.com/blog/why-the-three-part-user-story-template-works-so-well
Als (Rolle / [Persona] ),
möchte ich (Systemverhalten)
damit (Wert der geschöpft werde soll).
68. Slide #
2019 Michael Mahlberg
Was ist ein
Akzeptanzkriterium?
(Und was nicht?)
68
71. Slide #
2019 Michael Mahlberg
Story ist ein Prozess => CCC
Anmerkung:
Constant
Customer
Collaboration
71
72. Slide #
2019 Michael Mahlberg
Wenn schon Sachen über den Zaun
geworfen werden, dann nutze ein
anderes „Format“ an Stelle von
„User Stories“
Anmerkung
Use-Cases sind nicht verboten
72
73. Slide #
2019 Michael Mahlberg
Wenn schon „User Story“, dann
vielleicht doch im Stile von Liz
Keogh…
73
74. Slide #
2019 Michael Mahlberg
Gedächtnis Übung vom
Anfang
Zusätzlich: Rahmeninformationen abfragen.
(Context)
74
77. Slide #
2019 Michael Mahlberg
Contact Information
• If you have questions, don’t hesitate to contact me
via e-mail at: mm@michaelmahlberg.com
• You can also find me on Twitter as MMahlberg
• I blog on http://agile-aspects.michaelmahlberg.com
• My homepage is http://www.michaelmahlberg.de
77