1
00:00:00,040 --> 00:00:02,240
Der guckt so in den Netzwerk 
Traffic so rein. 

2
00:00:02,400 --> 00:00:06,480
Oh ja, Oh ja, der Funk wurde 
aufgerufen, Oh ja, sehr gut 

3
00:00:06,480 --> 00:00:09,720
Coding Buddies Dein Podcast rund
um Softwareentwicklung und 

4
00:00:09,720 --> 00:00:12,280
aktueller Tech News herzlich 
willkommen. 

5
00:00:24,180 --> 00:00:28,100
Moin Moin und Herzlich 
Willkommen zum Coding Buddies 

6
00:00:28,100 --> 00:00:31,600
Podcast. 
Eine Woche ist rum, es ist 

7
00:00:31,600 --> 00:00:34,320
wieder soweit, neue Folge steht 
in den Startlöchern. 

8
00:00:34,320 --> 00:00:38,960
Hier und damit möchte ich auch. 
Tino, der mir hier schon 

9
00:00:39,360 --> 00:00:42,480
gegenüber sitzt und Grimassen 
schneidet. 

10
00:00:44,880 --> 00:00:48,480
Zustimmende Grimassen begrüßen. 
Ich wollte mal sehen, wie 

11
00:00:48,480 --> 00:00:52,800
fokussiert du sein kannst. 
Was geht ab, Vati, was geht, was

12
00:00:52,800 --> 00:00:54,960
geht, was geht. 
Neue Woche, neues Glück wa ja. 

13
00:00:55,440 --> 00:00:59,280
Ja klar, auf jeden Fall. 
Eigentlich immer so jede Woche. 

14
00:00:59,920 --> 00:01:03,560
Ja, ja, weißt du doch. 
Aber diese Woche war auf jeden 

15
00:01:03,560 --> 00:01:06,000
Fall was cooler diese Woche 
letzte Woche eigentlich 

16
00:01:06,000 --> 00:01:10,400
offiziell, letzte Woche noch war
ja was Cooles, da waren wir ja 

17
00:01:10,400 --> 00:01:15,680
bei der Testkonf, das ist ja ne,
ich sag mal ne Konferenz online 

18
00:01:15,680 --> 00:01:20,480
rein online, die auf Twitch 
gestreamt wird und das ist so 

19
00:01:20,480 --> 00:01:22,040
wie man sich das halt normal 
vorstellt. 

20
00:01:22,040 --> 00:01:24,120
Ne du hast so verschiedene 
Speaker und Speakerinnen, die 

21
00:01:24,120 --> 00:01:27,840
dann halt eben ihre Beiträge in 
den entsprechenden Slots. 

22
00:01:28,640 --> 00:01:32,240
Zum besten gegen geben ne und da
haben waren wir auch dabei. 

23
00:01:33,200 --> 00:01:37,280
Du und ich als Coding Buddies 
wie man uns so kennt und hatten 

24
00:01:37,280 --> 00:01:42,160
ja auch NN Slot, konnten da n 
bisschen was über TTD und Pair 

25
00:01:42,160 --> 00:01:46,000
Programming erzählen und da gab 
es ja noch ne Frage am Ende die 

26
00:01:46,320 --> 00:01:48,520
so n bisschen ich glaub wir 
hatten nicht mehr ganz so viel 

27
00:01:48,520 --> 00:01:51,880
Zeit das zu beantworten und da 
haben wir uns gedacht machen wir

28
00:01:51,880 --> 00:01:54,000
noch mal ne. 
Podcast Folge darüber und 

29
00:01:54,000 --> 00:01:55,920
beleuchten das noch mal n 
bisschen genauer, ne. 

30
00:01:56,000 --> 00:01:59,880
Ja genau, und zwar wir hatten ja
wirklich viel über Tdd 

31
00:01:59,880 --> 00:02:02,680
gesprochen, hat noch so ne live 
Demo gemacht, Liebe zuhören 

32
00:02:02,680 --> 00:02:05,440
lieber Zuhörer, falls du dich 
dafür interessierst. 

33
00:02:05,560 --> 00:02:08,479
Man kann ja jetzt noch keine 
Ahnung ein 2 Monate wie lange 

34
00:02:08,479 --> 00:02:10,320
kann man sich VODS auf Twitch 
angucken? 

35
00:02:10,440 --> 00:02:11,560
Kommt drauf an, wie man es 
einstellt. 

36
00:02:11,560 --> 00:02:14,000
Glaube ich ja. 
Ich glaube maximal 3 Monate oder

37
00:02:14,000 --> 00:02:17,360
so, aber auf jeden Fall aktuell 
kann man sich da die Konferenz 

38
00:02:17,360 --> 00:02:19,840
noch angucken, weil es ist wie 
gesagt Free und es lohnt sich, 

39
00:02:19,840 --> 00:02:21,520
sind sehr coole Vorträge bei 
gewesen. 

40
00:02:22,240 --> 00:02:25,200
Und falls du Bock hast, unseren 
dir anzuschauen, dann kannst du 

41
00:02:25,200 --> 00:02:28,000
den da auch finden und danach 
wird es glaube ich noch auf 

42
00:02:28,000 --> 00:02:30,160
Youtube hochgeladen, aber das 
ist aktuell noch nicht der Fall.

43
00:02:30,800 --> 00:02:36,320
Also es wird noch persistiert 
und zu der Frage genau die 

44
00:02:36,320 --> 00:02:39,600
Fragerunde war ja sag ich mal n 
bisschen knapp ausgefallen, weil

45
00:02:39,600 --> 00:02:46,160
wir n bisschen getrödelt haben 
und da kam halt die Frage OKTDD 

46
00:02:46,160 --> 00:02:47,720
verstehe ich, dass ihr das so 
macht? 

47
00:02:47,720 --> 00:02:50,160
Das ist cool. 
Wie steht denn ihr zum Thema 

48
00:02:50,160 --> 00:02:55,040
BDD? 
Und wie ergänzt das TDD? 

49
00:02:55,040 --> 00:02:56,680
Jetzt kommen die ganzen 
Abkürzungen, wir erklären sie 

50
00:02:56,680 --> 00:03:03,440
gleich ABC und ja, da bin ich 
halt nur kurz drauf eingegangen 

51
00:03:03,440 --> 00:03:07,080
und da dachte ich mir, ey, fabi,
ist da eigentlich ne coole Frage

52
00:03:07,080 --> 00:03:12,360
gewesen und BDD ist auch n sehr 
spannendes Thema, also lass uns 

53
00:03:12,360 --> 00:03:14,720
doch einfach direkt ne Podcast 
Folge im Anschluss da drüber 

54
00:03:14,720 --> 00:03:16,880
raushauen. 
Und das würd ich halt gerne 

55
00:03:16,880 --> 00:03:19,920
heute mit dir machen. 
Auf jeden Fall, um das ganze Mal

56
00:03:20,080 --> 00:03:23,320
quasi einzufangen. 
Also BDD ist vielleicht nicht 

57
00:03:23,320 --> 00:03:26,000
jedem Begriff, ich muss ehrlich 
sagen, ich hab auch kurz 

58
00:03:26,000 --> 00:03:28,760
nachgedacht, wo ich die Frage 
gelesen hab, weil die war ja so 

59
00:03:28,760 --> 00:03:32,800
im Chat, es geht dabei um 
Behavior Driven Development, 

60
00:03:32,800 --> 00:03:36,080
also bei TDD gibt es haben wir 
auch ne Folge zu gemacht, das 

61
00:03:36,080 --> 00:03:39,920
ist ja quasi eine Praxis oder 
eine Strategie sag ich mal die 

62
00:03:39,920 --> 00:03:43,360
wir in. 
Sag ich mal als Coder Leben und 

63
00:03:43,360 --> 00:03:46,320
integriert haben in unseren 
Coding Alltag auch im 

64
00:03:46,320 --> 00:03:48,800
beruflichen Kontext. 
Und das ist ja Test driven 

65
00:03:48,800 --> 00:03:51,600
development. 
Noch mal ganz kurz, da geht es 

66
00:03:51,600 --> 00:03:55,760
ja darum, dass man quasi erst 
den Test schreibt sieht, diese 

67
00:03:55,760 --> 00:03:59,080
Funktionalität ist nicht 
implementiert, der Test ist rot,

68
00:03:59,080 --> 00:04:02,320
man implementiert ist und sorgt 
dafür, dass der Test erfolgreich

69
00:04:02,320 --> 00:04:04,880
ist. 
Grün refact das noch und das ist

70
00:04:04,880 --> 00:04:08,000
so die Arbeitsmethodik, dass du 
sagst erst testen, dann 

71
00:04:08,000 --> 00:04:09,760
implementieren. 
Genau. 

72
00:04:09,840 --> 00:04:14,080
Bei BDD geht es, geht man jetzt 
sag ich mal das ganze noch n 

73
00:04:14,080 --> 00:04:18,480
Schritt weiter, also ganz am 
Anfang mal der Disclaimer. 

74
00:04:18,560 --> 00:04:24,240
Ja es geht jetzt nicht darum TDD
mit BDD zu ersetzen, sondern on 

75
00:04:24,240 --> 00:04:27,840
top das Ganze das noch mal ganz 
klar, dass das hier nicht in 

76
00:04:27,840 --> 00:04:30,400
falschen Hals kommt. 
Wir wollen heute mal beleuchten,

77
00:04:30,400 --> 00:04:34,720
wie kann man jetzt das Prinzip 
von Behavior Driven Development 

78
00:04:35,120 --> 00:04:39,040
nutzen um es quasi mit. 
Test Driven development zu 

79
00:04:39,040 --> 00:04:42,400
verbinden. 
Genau das ist auf jeden Fall ne 

80
00:04:42,400 --> 00:04:47,960
gute ne gute Beschreibung zu 
verbinden zu erweitern, weil man

81
00:04:47,960 --> 00:04:53,640
kann TDD auch ohne BDD machen 
sozusagen, aber es wird glaub 

82
00:04:53,640 --> 00:04:59,320
ich einfach schöner wenn man BDD
noch mit dazu nimmt um jetzt mal

83
00:04:59,320 --> 00:05:02,280
so n bisschen vielleicht so 
diesen Painpoint zu adressieren,

84
00:05:02,280 --> 00:05:06,320
ne weil BDD was das jetzt quasi 
so. 

85
00:05:06,880 --> 00:05:12,280
Genau ist, worum es da geht. 
Find ich hab ich mal so n 

86
00:05:12,280 --> 00:05:15,440
kleines Beispiel mitgebracht, 
dass man sich so vielleicht 

87
00:05:15,440 --> 00:05:18,200
hineinversetzen kann und 
vielleicht auch sich denkt, Boah

88
00:05:18,200 --> 00:05:21,480
ich kenn das, das ist irgendwie 
ne Sache, die hab ich nur leider

89
00:05:21,480 --> 00:05:26,440
viel zu oft mitgekriegt und wir 
glaub ich auch Tino wenn man 

90
00:05:26,440 --> 00:05:29,560
jetzt zum Beispiel irgendwie ne 
im Berufsalltag sagt ich möchte 

91
00:05:29,600 --> 00:05:32,480
irgendwas implementieren ne also
irgendwas soll jetzt gemacht 

92
00:05:32,480 --> 00:05:35,520
werden. 
Und man denkt sich so, OK, ich 

93
00:05:35,520 --> 00:05:38,720
hab ja irgendwie n so ne Story, 
ne wo jetzt dann drin steht was 

94
00:05:38,720 --> 00:05:42,480
gemacht werden soll und jetzt 
stell dir mal ne Story vor, ne 

95
00:05:42,480 --> 00:05:45,920
wo es darum geht. 
Du hast jetzt irgendwie ne ne 

96
00:05:45,920 --> 00:05:49,040
Shopping Card ne und sollst 
jetzt n Endpunkt implementieren 

97
00:05:49,040 --> 00:05:53,240
und da steht sowas wie 
Implementiere n Endpunkt Card at

98
00:05:53,240 --> 00:05:57,640
ne und die Methode soll ein 
Produkt Objekt zur Session 

99
00:05:57,640 --> 00:05:59,760
hinzufügen. 
Wenn das Produkt bereits 

100
00:05:59,760 --> 00:06:04,320
existiert, erhöhe die Quantity 
um 1 und verwende die Service. 

101
00:06:04,480 --> 00:06:08,320
Die Card Serviceklasse für die 
Persistenz. 

102
00:06:08,400 --> 00:06:15,840
So könnte jetzt ne Story sein, 
mal als Beispiel wo ich glaube, 

103
00:06:17,360 --> 00:06:20,120
also dass man das schon oft 
gehört hat, dass man zumindest 

104
00:06:20,120 --> 00:06:23,480
so oft so ne Art und Weise schon
mal vor sich liegen hatte und 

105
00:06:23,480 --> 00:06:27,200
sich dann denkt hm. 
Also da könnte jetzt ne Menge 

106
00:06:27,200 --> 00:06:28,800
mit passieren. 
Ne, also zum Beispiel, was 

107
00:06:28,800 --> 00:06:31,760
bedeutet genau existiert ne 
heißt das der User hat schon 

108
00:06:31,760 --> 00:06:35,600
Warenkorb oder existiert das 
Produkt bereits in diesem 

109
00:06:35,600 --> 00:06:38,320
Warenkorb oder gibt es das 
überhaupt in diesem Katalog? 

110
00:06:38,320 --> 00:06:41,760
Ne soll der Nutzer irgendwie ne 
Bestätigung sehen? 

111
00:06:41,760 --> 00:06:43,720
Was passiert eigentlich wenn das
Produkt nicht verfügbar ist? 

112
00:06:43,760 --> 00:06:46,320
Das sind ja alles fragen die man
sich unter Umständen direkt 

113
00:06:46,320 --> 00:06:49,600
irgendwie dir dir in den Kopf 
kommen und worauf ich hinaus 

114
00:06:49,600 --> 00:06:52,400
will ist du hast ne Story, du 
hast irgendwie ne Aufgabe mit an

115
00:06:52,400 --> 00:06:54,320
der du arbeiten sollst und du 
fragst dich. 

116
00:06:55,120 --> 00:06:56,960
OK, aber was soll ich hier 
eigentlich genau machen? 

117
00:06:56,960 --> 00:06:59,680
Da sind ja so super viele 
unklare Sachen und irgendwie ist

118
00:06:59,680 --> 00:07:03,840
es alles auf einer komischen 
Ebene erklärt, ja vielleicht 

119
00:07:04,400 --> 00:07:07,360
teilweise technisch, vielleicht 
teilweise fachlich irgendwie 

120
00:07:07,360 --> 00:07:10,200
vermischt, aber irgendwie so 
hingewurstelt weißt du? 

121
00:07:11,680 --> 00:07:13,760
Ja, das also. 
Es klingt halt eher wie ne 

122
00:07:13,760 --> 00:07:16,440
Story, die wahrscheinlich von 
einem Developer, also es ist 

123
00:07:16,440 --> 00:07:19,520
jetzt nur so n bisschen leicht, 
provokativ, spaßig, ja von einem

124
00:07:19,520 --> 00:07:23,600
Developer, oder? 
So geschrieben wurde fast schon 

125
00:07:23,600 --> 00:07:25,360
wie nen Reminder. 
Ach ja, das muss ich 

126
00:07:25,360 --> 00:07:28,120
implementieren, in der Klasse 
muss ich das noch machen und so 

127
00:07:28,120 --> 00:07:30,480
und das ist halt so technisch, 
dass da ja quasi schon 

128
00:07:30,640 --> 00:07:34,080
codeelemente auftreten, ne, also
wenn du jetzt zum Beispiel 

129
00:07:34,080 --> 00:07:39,200
sagst, bitte nimm die Klasse 
oder schreib eine Klasse sowieso

130
00:07:39,440 --> 00:07:42,880
und ich finde der Name ist 
Story, gerade wenn wir jetzt so 

131
00:07:43,040 --> 00:07:46,560
im agilen sind, wir sind ja hier
auch in der Agilität unterwegs, 

132
00:07:46,560 --> 00:07:49,760
ja. 
Beschreibt ja Story an sich 

133
00:07:49,760 --> 00:07:52,240
schon, worum es eigentlich geht.
Ne Story. 

134
00:07:52,240 --> 00:07:55,640
Also wenn ich jetzt wirklich mal
ne Geschichte erzähle, dann sag 

135
00:07:55,640 --> 00:07:59,520
ich ja nicht, es war einmal eine
Chartklasse, die hatte einen 

136
00:07:59,520 --> 00:08:04,080
Service und der konnte sein. 
Was hast du gesagt seine Anzahl 

137
00:08:04,080 --> 00:08:07,200
um 1 erhöhen wenn man den Add 
Endpunkt aufgerufen hat? 

138
00:08:07,520 --> 00:08:10,640
Es war eine fantastische 
Geschichte, so weißt du das 

139
00:08:10,640 --> 00:08:14,760
machst du ja nicht, also die. 
Die die Namensgebung sagt ja 

140
00:08:14,760 --> 00:08:17,080
schon oder lenkt das ja 
eigentlich schon in ne andere 

141
00:08:17,080 --> 00:08:21,280
Richtung und da setzt ja auch 
BDD an, wenn man jetzt BDD in 

142
00:08:21,280 --> 00:08:24,320
einem Satz erklären sollte, 
würde ich sagen, ist das 

143
00:08:24,320 --> 00:08:27,280
Softwareentwicklung aus der 
Sicht des Benutzers, also des 

144
00:08:27,320 --> 00:08:30,880
Endanwenders ne, Ich möchte 
jetzt Software aus der Brille 

145
00:08:30,880 --> 00:08:35,280
des Users entwickeln und dann 
macht also im Prinzip man 

146
00:08:35,280 --> 00:08:39,039
fokussiert sich nicht mehr so. 
Darauf, wie setze ich das um? 

147
00:08:39,120 --> 00:08:42,320
So wäre jetzt das Ticket oder 
die Story, die dein Beispiel 

148
00:08:42,320 --> 00:08:45,440
war, umgesetzt. 
So wie machen wir das? 

149
00:08:45,440 --> 00:08:48,000
Na ja, indem wir diese Klasse 
erweitern, indem wir diese 

150
00:08:48,000 --> 00:08:50,880
Klasse schreiben, indem wir 
diese Funktion implementieren, 

151
00:08:50,960 --> 00:08:53,440
darum geht es nicht, es geht 
eher um das warum, machen wir 

152
00:08:53,440 --> 00:08:56,720
das ja, also ich möchte in der 
Story beschreiben, warum 

153
00:08:56,720 --> 00:09:00,560
brauchen wir diesen Endpunkt, 
warum müssen wir. 

154
00:09:00,720 --> 00:09:04,920
Feststellen können, dass es 
jetzt ja Anzahl ich, ich hab es 

155
00:09:04,960 --> 00:09:08,800
nicht mehr ganz auf dem Champs, 
ich glaub der Warenkorb, also 

156
00:09:08,800 --> 00:09:12,160
ein Element mehr hat ja dass ich
dann bloß 1 rechne oder sowas, 

157
00:09:13,600 --> 00:09:17,520
das ist die Frage, ist ja nach 
dem warum, also wenn ich mich 

158
00:09:17,520 --> 00:09:20,960
darauf fokussiere, ja dann komm 
ich halt viel mehr in die Sicht 

159
00:09:21,200 --> 00:09:26,720
des Nutzers und vor allem auf 
eine sprachliche Ebene, die 

160
00:09:26,720 --> 00:09:28,800
jeder verstehen kann und das ist
n ganz. 

161
00:09:29,360 --> 00:09:32,240
Wie soll ich sagen n Kernelement
bei BDD ne. 

162
00:09:32,480 --> 00:09:35,120
Ja, auf jeden Fall. 
Ich find n gutes ne gute 

163
00:09:35,120 --> 00:09:38,320
Beschreibung dafür, was ich da 
irgendwie ne Zeit lang mal 

164
00:09:38,320 --> 00:09:42,920
gehört hab ist was für ein User 
Value gibt es ne? 

165
00:09:43,040 --> 00:09:45,280
Also ich find diesen Begriff 
eigentlich ganz gut user Value 

166
00:09:45,280 --> 00:09:48,800
weil das ist nämlich genau das 
wie du meintest worum es geht 

167
00:09:48,800 --> 00:09:51,080
aus Sicht des Users. 
Was hat denn der User davon, 

168
00:09:51,080 --> 00:09:54,840
dass wir das gerade machen? 
Ne nicht wie machen wir das wie 

169
00:09:54,840 --> 00:09:58,000
du es so schön meintest, sondern
was bringt es diesem User also 

170
00:09:58,000 --> 00:10:00,160
ne. 
Der User guckt sich dieses 

171
00:10:00,160 --> 00:10:04,640
Produkt an, was gerade 
entwickelt wird und welchen Wert

172
00:10:05,200 --> 00:10:09,000
schöpft denn diese neue, dieses 
neue Feature sozusagen für den 

173
00:10:09,120 --> 00:10:12,000
User? 
Ich musste mir gerade dran 

174
00:10:12,000 --> 00:10:13,840
denken. 
Stell dir mal vor, so welchen 

175
00:10:13,840 --> 00:10:16,920
Wert ist das für n User oder der
guckt so in den Netzwerk Traffic

176
00:10:16,920 --> 00:10:19,680
so rein. 
Oh ja Oh ja, der Endpunkt wurde 

177
00:10:19,680 --> 00:10:23,920
aufgerufen Oh ja sehr gut 200 OK
oh super. 

178
00:10:26,240 --> 00:10:29,560
Gut, das ist aber richtig. 
User Value, dass der Card 

179
00:10:29,840 --> 00:10:33,440
Service aufgerufen wurde, genau 
das ist ja gut. 

180
00:10:34,160 --> 00:10:37,560
Genau das ist aber natürlich 
Spaß beiseite, natürlich nicht 

181
00:10:37,560 --> 00:10:40,080
der User Value, ja wie du so 
schön, ich find den Begriff halt

182
00:10:40,080 --> 00:10:44,000
auch sehr stark sich darauf zu 
fokussieren zu sagen was schafft

183
00:10:44,000 --> 00:10:47,200
wirklich Value für den 
Endanwender ne oder oder manche 

184
00:10:47,200 --> 00:10:50,640
sagen ja auch impact ne was hat 
wirklich impact am Ende so? 

185
00:10:51,680 --> 00:10:53,920
Genau und wichtig dabei ist ja 
wirklich dann einfach mal vom 

186
00:10:53,920 --> 00:10:56,400
Fachjargon wegzukommen. 
Ist übrigens n witziges Wort 

187
00:10:56,400 --> 00:11:02,880
Jargon davon wegzukommen und mal
Tickets oder Stories so zu 

188
00:11:02,880 --> 00:11:06,880
beschreiben, dass sie jeder 
versteht, einfach um sag ich 

189
00:11:06,880 --> 00:11:09,360
mal, diese Unklarheiten aus dem 
Weg zu räumen. 

190
00:11:09,520 --> 00:11:13,200
Das Beispiel was du gemacht hast
vorhin, ne, das hast du mir 

191
00:11:13,200 --> 00:11:15,680
jetzt so einmal aufgesagt, ich 
hab es ja nicht mitgelesen, ja 

192
00:11:15,760 --> 00:11:18,000
oder ich konnte es gar nicht 
mitlesen, du hast es mir gesagt,

193
00:11:18,000 --> 00:11:20,960
so und da war ich doch schon 
nach 2 Sätzen abgehangen, also 

194
00:11:20,960 --> 00:11:23,120
ich konnte. 
Jetzt zwar grob folgen, aber im 

195
00:11:23,120 --> 00:11:25,760
Endeffekt denkt man drüber nach 
und denkt so ja OK und hier und 

196
00:11:25,760 --> 00:11:31,120
da hä was wie hä hättest du mir 
jetzt einfach quasi auf nicht 

197
00:11:31,120 --> 00:11:33,920
fachlicher ebene nee auf 
fachlicher Ebene so nicht auf 

198
00:11:33,920 --> 00:11:39,440
technischer andersrum sorry das 
erklärt was du vorhast in diesem

199
00:11:39,440 --> 00:11:41,760
Ticket, dann wär ich einfach 
viel mehr bei dir gewesen, weil 

200
00:11:41,760 --> 00:11:44,480
wir einfach direkt ohne 
irgendwelche technischen 

201
00:11:44,480 --> 00:11:47,840
Hindernisse miteinander 
kommunizieren können und genau 

202
00:11:47,840 --> 00:11:50,400
darum geht es ja auch, wenn du 
jetzt beispielsweise. 

203
00:11:51,040 --> 00:11:52,960
Alle aus einem Team mit 
Reinziehst. 

204
00:11:52,960 --> 00:11:57,800
Ja, also Business owner, ne QA 
zum Beispiel. 

205
00:11:57,800 --> 00:12:01,400
Ja, also wirklich Leute die gar 
nicht eigentlich wo die 

206
00:12:01,400 --> 00:12:03,640
Implementierung denen gar nicht 
so wichtig ist. 

207
00:12:03,640 --> 00:12:05,760
Es geht denen darum, dass es 
implementiert ist und 

208
00:12:05,760 --> 00:12:08,720
funktioniert, ja, dass ihre 
Anforderungen umgesetzt sind 

209
00:12:08,880 --> 00:12:12,160
oder das gewünschte Verhalten 
auch tatsächlich stattfindet, 

210
00:12:12,320 --> 00:12:14,880
aber denen ist ja egal ob du 
jetzt ne Serviceklasse da 

211
00:12:14,880 --> 00:12:18,280
implementierst oder nicht, das 
ist ja in deiner Verantwortung, 

212
00:12:18,280 --> 00:12:21,280
das ist ja die technische Seite.
Das finde ich auch immer, finde 

213
00:12:21,440 --> 00:12:24,560
ich auch gut, dass du es sagst, 
weil genauso haben technische 

214
00:12:24,560 --> 00:12:26,600
Beschreibungen halt eben zum 
Beispiel in Stories auch nicht 

215
00:12:26,600 --> 00:12:30,720
wirklich viel zu suchen meiner 
Meinung nach, weil ich finde ne 

216
00:12:30,720 --> 00:12:34,720
Story wird im Normalfall, 
zumindest ist das meine Ansicht 

217
00:12:34,800 --> 00:12:37,600
der Dinge, eben nicht von einem 
Developer oder ne Developerin 

218
00:12:37,600 --> 00:12:41,040
geschrieben, sondern halt eben 
von einer anderen Rolle im Team.

219
00:12:41,040 --> 00:12:45,280
Und diese Rolle hat eben gerade 
auch aus diesen Gründen 

220
00:12:45,280 --> 00:12:47,600
vielleicht. 
Keinen technischen Bezug 

221
00:12:47,600 --> 00:12:50,240
unbedingt, jedenfalls nicht so 
krass, oder steckt nicht in der 

222
00:12:50,240 --> 00:12:53,040
Implementierung drin, weshalb es
eigentlich schon schön ist, wenn

223
00:12:53,040 --> 00:12:55,520
dann sozusagen diese Story halt 
eben auch aus dieser Sicht 

224
00:12:55,520 --> 00:12:58,440
geschrieben wird und eben dann 
die technische Seite 

225
00:12:58,440 --> 00:13:01,760
rausgenommen wird und eher die 
fachliche Seite beleuchtet wird.

226
00:13:02,320 --> 00:13:05,680
Was mir noch dazu einfällt, wo 
ich das gern noch mal ganz kurz 

227
00:13:05,680 --> 00:13:08,120
abgrenzen möchte, weil wir 
hatten ja jetzt auch in der 

228
00:13:08,120 --> 00:13:12,120
letzten Folge über. 
DDD gesprochen. 

229
00:13:12,120 --> 00:13:13,240
Da haben wir auch sehr viel 
gesagt. 

230
00:13:13,240 --> 00:13:15,280
OK, wir wollen von der 
technischen Seite weggehen und 

231
00:13:15,280 --> 00:13:17,120
wollen das ganze fachlich 
beleuchten und diese 

232
00:13:17,120 --> 00:13:19,600
Fachlichkeiten in den 
Mittelgrund stellen, in den 

233
00:13:19,600 --> 00:13:22,280
Mittelgrund, in den in den 
Vordergrund stellen, in den 

234
00:13:22,280 --> 00:13:25,120
Mittelpunkt Vordergrund sind 
und. 

235
00:13:26,240 --> 00:13:29,760
Es ist quasi. 
Prinzipiell ist es ein bisschen 

236
00:13:29,760 --> 00:13:31,920
ähnlich. 
Es geht darum, wirklich Dinge 

237
00:13:32,000 --> 00:13:35,080
fachlich zu beschreiben und 
nicht technisch, nur das ist 

238
00:13:35,080 --> 00:13:38,280
halt eben der Unterschied ist, 
dass ddd, ich sag mal die 

239
00:13:38,280 --> 00:13:42,280
Struktur definiert, also welche 
Fachlichkeiten hat denn das 

240
00:13:42,280 --> 00:13:44,880
System, welche Parts gibt es 
denn da? 

241
00:13:44,880 --> 00:13:48,080
Und wenn du jetzt aber mit BDD 
an das ganze Rangehst, dann hast

242
00:13:48,080 --> 00:13:50,400
du halt eben. 
Dass du dir anguckst, welche. 

243
00:13:50,720 --> 00:13:53,920
Wie verhält sich denn konkret 
eine Domäne oder eine 

244
00:13:53,920 --> 00:13:56,280
Fachlichkeit? 
Ne, also du definierst das n 

245
00:13:56,280 --> 00:13:58,280
bisschen runter, du 
spezifizierst das n bisschen 

246
00:13:58,280 --> 00:14:01,040
genauer ne, also könnte man 
jetzt zum Beispiel um das noch 

247
00:14:01,040 --> 00:14:04,320
mal kurz in einem Satz 
abzugrenzen, beispielsweise 

248
00:14:04,320 --> 00:14:08,080
könntest du sagen DDD modelliert
was ne Domäne bedeutet Ne und 

249
00:14:08,080 --> 00:14:12,240
BDD beschreibt wie das System 
sich aus der Sicht des Anwenders

250
00:14:12,240 --> 00:14:15,240
verhalten soll, also die 
Bedeutung und wie ist die Sicht 

251
00:14:15,240 --> 00:14:19,680
des Anwenders auf ja? 
Und trotzdem teilen Sie sich ja 

252
00:14:19,680 --> 00:14:23,520
irgendwie diese gleiche 
Grundhaltung halt auch technisch

253
00:14:23,520 --> 00:14:24,840
von. 
Also das fachliche vom 

254
00:14:24,840 --> 00:14:27,280
technischen zu trennen. 
Also es ist halt auch immer 

255
00:14:27,280 --> 00:14:29,600
spannend, klar, es sind 
unterschiedliche Bereiche 

256
00:14:29,600 --> 00:14:33,760
irgendwo, aber sie wohnen 
entwickelt mit gleichen 

257
00:14:33,760 --> 00:14:36,080
Grundprinzipien, das find ich 
halt auch immer spannend dabei. 

258
00:14:36,320 --> 00:14:39,080
Deswegen, liebe Zuhörer, liebe 
Zuhörer, falls du die Folge 

259
00:14:39,080 --> 00:14:41,440
nicht gehört hast und dich das 
Thema interessiert. 

260
00:14:42,240 --> 00:14:46,280
Domain driven Design DDD auch 
ein super spannendes Thema haben

261
00:14:46,280 --> 00:14:47,880
wir auch erst vor kurzem ne 
Folge zu gemacht. 

262
00:14:47,880 --> 00:14:54,600
Hör da gerne mal rein. 
Genau und um dieses ganze ich 

263
00:14:54,600 --> 00:14:58,400
möcht mal auf nen Thema kommen 
was wir selbst leben sag ich mal

264
00:14:58,400 --> 00:15:00,800
und ich finde das hat gehört 
hier jetzt auch einfach hin weil

265
00:15:00,800 --> 00:15:03,200
es einfach auch wirklich perfekt
zu BDD passt. 

266
00:15:04,240 --> 00:15:06,320
Weil wir bei Tickets schon waren
oder Stories. 

267
00:15:06,320 --> 00:15:10,880
Ja, wie schaffe ich es denn, das
ganze fachlich zu beschreiben 

268
00:15:10,880 --> 00:15:14,160
oder aus der Sicht des Users? 
Und da muss ich sagen, so über 

269
00:15:14,160 --> 00:15:17,280
die Projekte und über die Teams 
hinweg, in denen ich gearbeitet 

270
00:15:17,280 --> 00:15:21,120
hab, ist mir aufgefallen, dass 
das schon nicht einfach ist, das

271
00:15:21,120 --> 00:15:24,680
umzusetzen, dass manche Leute 
Probleme damit haben und immer 

272
00:15:24,680 --> 00:15:28,800
dazu neigen, schon technische 
Vorgaben reinzugeben oder schon 

273
00:15:28,800 --> 00:15:32,000
wirklich zu beschreiben, was zu 
implementieren ist am Ende. 

274
00:15:32,480 --> 00:15:34,640
Was ja aber überhaupt gar nicht 
der Sinn ist. 

275
00:15:34,640 --> 00:15:38,360
Und ich meine in dieser No go 
Folge war das auch ein No go von

276
00:15:38,360 --> 00:15:40,560
dir, dass du persönlich das ja 
gar nicht magst. 

277
00:15:40,560 --> 00:15:45,760
Wenn jemand quasi dir vorgibt, 
wie es zu implementieren ist und

278
00:15:45,760 --> 00:15:49,120
dann, wenn ich quasi sehr 
technisch meine Stories 

279
00:15:49,120 --> 00:15:53,280
beschreibe, lande ich ja 
automatisch irgendwann da dem 

280
00:15:53,600 --> 00:15:55,520
Entwickler oder der 
Entwicklerin, je nachdem wer 

281
00:15:55,520 --> 00:15:58,960
sich das Ticket zieht, irgendwie
Vorgaben zu machen und bin aber 

282
00:15:58,960 --> 00:16:02,720
vielleicht gar nicht wirklich. 
Zu 100% drin in der Software, 

283
00:16:02,720 --> 00:16:04,280
dass die Personen sich denken, 
ja warte mal. 

284
00:16:04,280 --> 00:16:06,640
Nee so, so so können wir das 
nicht implementieren, das wär 

285
00:16:06,640 --> 00:16:08,760
nicht gut das so zu 
implementieren, aber man kriegt 

286
00:16:08,760 --> 00:16:12,080
halt einfach schon so n so n 
Blick auf ne technische Seite 

287
00:16:12,080 --> 00:16:14,480
und der kann ja auch schlecht 
sein, aber der ist ja erstmal 

288
00:16:14,480 --> 00:16:17,120
da, das ist ja jetzt erstmal in 
deinem Kopf was du da gelesen 

289
00:16:17,120 --> 00:16:21,760
hast, sozusagen ne und davon 
will man ja wegkommen und wie 

290
00:16:21,760 --> 00:16:24,320
schafft man das am besten? 
Und weil das halt nicht einfach 

291
00:16:24,320 --> 00:16:27,200
ist, gibt es ja auch 
verschiedene Techniken dafür 

292
00:16:27,200 --> 00:16:31,280
einfach und wir persönlich. 
Sind ja absolut Fan von der 

293
00:16:31,280 --> 00:16:35,000
gerkin Schreibweise Technik. 
Ich glaub Schreibweise nennt man

294
00:16:35,000 --> 00:16:40,240
es ja, ist ja im Prinzip, dass 
du sagst ich habe eine feste 

295
00:16:40,240 --> 00:16:46,240
Struktur um ein gewünschtes 
Szenario was der Endanwender 

296
00:16:46,240 --> 00:16:51,680
oder der Kunde der User wie du 
gesagt hast ne macht und welches

297
00:16:51,680 --> 00:16:55,800
welcher Value daraus entsteht. 
Ne damit ich ganz klar wirklich 

298
00:16:55,800 --> 00:17:01,040
ne Geschichte erzählen kann. 
Nicht es war einmal, sondern die

299
00:17:01,120 --> 00:17:04,400
Givenwhen than Struktur. 
Magst du das vielleicht mal kurz

300
00:17:04,400 --> 00:17:06,480
anhand von einem Beispiel 
erläutern? 

301
00:17:07,760 --> 00:17:13,880
Ja, also wenn du jetzt zum 
Beispiel sagst givenwhen zen und

302
00:17:13,880 --> 00:17:17,280
ich, also wenn ich jetzt zum 
Beispiel das nehme, was ich 

303
00:17:17,280 --> 00:17:21,000
gerade so super technisch mit 
diesem Warenkorb beschrieben 

304
00:17:21,000 --> 00:17:23,079
hab, ne. 
Und ich sag jetzt einfach mal, 

305
00:17:23,079 --> 00:17:25,040
OK, wir nehmen jetzt eine 
Anforderung. 

306
00:17:25,040 --> 00:17:27,760
Ne, das war ich hatte ja ein 
paar Fragen hinterher gestellt 

307
00:17:28,240 --> 00:17:32,320
dazu, also was bedeutet 
existiert und und diese ganzen 

308
00:17:32,320 --> 00:17:38,480
Sachen ne gerne noch mal 
zurückspulen und man nimmt jetzt

309
00:17:38,480 --> 00:17:42,040
es ist man kommt ja relativ 
schnell darauf, dass es mehrere 

310
00:17:42,040 --> 00:17:44,280
Anforderungen sind, die da 
irgendwie beschrieben sind und 

311
00:17:44,280 --> 00:17:46,320
wenn du jetzt zum Beispiel 
sagst, OK, du hast zum Beispiel 

312
00:17:46,320 --> 00:17:50,080
ein Szenario was du beschreibst,
das Szenario ist neues Produkt 

313
00:17:50,080 --> 00:17:53,440
wird zum Beispiel hinzugefügt 
und jetzt beschreibt man das 

314
00:17:53,440 --> 00:17:56,160
Ganze mit so, mit dieser gerkin 
Schreibweise ne given when, denn

315
00:17:56,160 --> 00:17:58,920
es gibt manchmal auch noch so n 
paar Additionswörter wie zum 

316
00:17:58,920 --> 00:18:02,240
Beispiel End ne, dass du sagst, 
OK du kannst noch sozusagen eine

317
00:18:02,240 --> 00:18:05,160
und Verknüpfung am Ende für das 
denn zum Beispiel hinzufügen 

318
00:18:05,160 --> 00:18:07,920
oder wie auch immer. 
Oder auch für das wenn ne, wenn 

319
00:18:07,920 --> 00:18:09,520
es jetzt mehrere Bedingungen 
gibt, ja. 

320
00:18:09,680 --> 00:18:12,080
Oder auch das. 
Und dann könnte es zum Beispiel 

321
00:18:12,080 --> 00:18:15,760
so aussehen, dass du halt eben 
sagst Given ne, also angenommen,

322
00:18:15,760 --> 00:18:19,160
ein Nutzer hat einen leeren 
Warenkorb, das heißt du hast auf

323
00:18:19,160 --> 00:18:22,240
jeden Fall die aktuelle 
Situation vor dir, das weißt du.

324
00:18:22,800 --> 00:18:26,720
Wenn jetzt ne, also wenn der 
Benutzer n Produkt in den 

325
00:18:26,720 --> 00:18:31,960
Warenkorb reinlegt ne klare 
Sache was da passiert versteht 

326
00:18:31,960 --> 00:18:35,200
man. 
Wenn also, dann erscheint das 

327
00:18:35,200 --> 00:18:38,280
Produkt im Warenkorb so und kann
man jetzt noch machen. 

328
00:18:38,280 --> 00:18:40,600
Dieses End, was ich gerade 
meinte, die Menge des Produkts 

329
00:18:40,600 --> 00:18:46,400
beträgt dann 1 ne so und das ist
halt ne relativ ne weil wir weil

330
00:18:46,400 --> 00:18:48,320
du ja vorhin meintest, ich 
konnte nicht so richtig folgen, 

331
00:18:48,640 --> 00:18:52,000
da ich vermute mal ich geh jetzt
mal der Annahme, dass das 

332
00:18:52,000 --> 00:18:53,920
eigentlich relativ einfach zu 
verstehen ist. 

333
00:18:53,920 --> 00:18:57,280
Du sagst OK, du hast irgendwie n
leeren Warenkorb, du fügst n 

334
00:18:57,280 --> 00:19:00,280
Produkt in den Warenkorb hinzu, 
also hast du quasi dann. 

335
00:19:00,960 --> 00:19:02,960
Wenn du es vorher nicht hattest,
die Menge 1 drin. 

336
00:19:03,680 --> 00:19:05,800
Das kannst du jetzt natürlich 
noch erweitern, dass du sagst 

337
00:19:05,800 --> 00:19:09,120
okay angenommen du hast einen 
Warenkorb und du fügst wieder 

338
00:19:09,120 --> 00:19:12,000
das gleiche Produkt hinzu, was 
schon im Warenkorb drin ist, 

339
00:19:13,520 --> 00:19:16,400
dann erhöht sich halt die Menge 
auf um 2 beispielsweise. 

340
00:19:16,400 --> 00:19:19,600
Also du hast halt relativ gut 
eine Beschreibung auf einer 

341
00:19:19,600 --> 00:19:22,880
fachlichen Ebene, wo man wo 
gesagt wird, so und so passiert 

342
00:19:22,880 --> 00:19:25,720
ist wie jetzt genau dein 
Warenkorb aussieht, was das für 

343
00:19:25,720 --> 00:19:27,680
eine Klasse ist, was es für 
Attribute hat. 

344
00:19:29,200 --> 00:19:31,320
Oder was für n Service da 
genutzt wird. 

345
00:19:31,320 --> 00:19:32,760
Ob du überhaupt n Service 
nimmst. 

346
00:19:32,760 --> 00:19:35,880
Ne man weiß ja nicht wie diese. 
Also man sollte eigentlich nicht

347
00:19:35,880 --> 00:19:38,000
davon ausgehen, dass man weiß 
wie diese Software darunter 

348
00:19:38,240 --> 00:19:41,920
zugrunde liegend aussieht. 
Ja dieses Wissen braucht man 

349
00:19:41,920 --> 00:19:45,800
doch gar nicht, kann man das 
ganze Ding so implementieren und

350
00:19:45,800 --> 00:19:48,240
was ich an dieser gerkin 
Schreibweise super super geil 

351
00:19:48,240 --> 00:19:52,320
finde ist, dass selbst wenn du 
zum Beispiel egal wer jetzt 

352
00:19:52,320 --> 00:19:55,640
diese. 
Diese diese Story sag ich jetzt 

353
00:19:55,640 --> 00:19:58,680
mal abnimmt oder mal prüft und 
guckt ob es funktioniert, kannst

354
00:19:58,680 --> 00:20:03,640
du genau diese entsprechenden 
Schritte dir einfach sozusagen 

355
00:20:03,640 --> 00:20:05,200
nachstellen? 
Ne, also du kannst zum Beispiel 

356
00:20:05,200 --> 00:20:07,320
gucken, OK warte mal, ich brauch
n Warenkorb der leer ist. 

357
00:20:07,320 --> 00:20:10,400
OK hab ich passt ne dann kannst 
du es einfach so wirklich 

358
00:20:10,400 --> 00:20:13,000
durchprüfen und kannst dann 
einfach sagen OK wenn ich das 

359
00:20:13,000 --> 00:20:16,640
Hinzufüge, dann hab ich danach 
ein ein Produkt drin OK passt 

360
00:20:16,640 --> 00:20:19,200
auch super OK die Story scheint 
wohl zu funktionieren so nach 

361
00:20:19,200 --> 00:20:22,280
dem Motto Ne und dann brauchst 
du aber nicht zum Beispiel 

362
00:20:22,280 --> 00:20:24,200
wirklich zu gucken. 
Weiß ich nicht. 

363
00:20:24,200 --> 00:20:27,640
Wurde denn jetzt tatsächlich das
technisch so umgesetzt, wie es 

364
00:20:27,640 --> 00:20:29,520
in der Story steht? 
Da musst du vielleicht irgendwie

365
00:20:29,520 --> 00:20:32,320
noch in den Code gucken, obwohl 
du ja eigentlich mit dem Code 

366
00:20:32,320 --> 00:20:34,640
vielleicht gar nichts zu tun 
hast, weil du keine Ahnung 

367
00:20:34,640 --> 00:20:37,200
product owner bist oder sowas ne
und nicht developer 

368
00:20:37,200 --> 00:20:41,800
beispielsweise. 
Ja und was halt auch cool ist, 

369
00:20:41,800 --> 00:20:45,800
an der Schreibweise ist, dass du
ja also genauso wie du es gesagt

370
00:20:45,800 --> 00:20:47,840
hast ne, also ich definier n 
Szenario. 

371
00:20:48,240 --> 00:20:52,600
Warum also das ist ja das warum,
warum mach ich etwas ne ich hab 

372
00:20:52,600 --> 00:20:55,040
n Szenario, das möchte ich 
erreichen, ich möchte etwas in 

373
00:20:55,040 --> 00:20:57,600
den Warenkorb legen wie du jetzt
als Beispiel genommen hast. 

374
00:20:57,600 --> 00:21:00,480
Ne das ist so mein Szenario. 
Und beschreibe. 

375
00:21:00,480 --> 00:21:04,080
Denn, was passieren soll und was
am Ende das Ergebnis ist. 

376
00:21:04,160 --> 00:21:08,800
Und genauso kann ich ja jetzt 
viele Szenarien so aufbauen, ne,

377
00:21:08,800 --> 00:21:10,960
dass sie sozusagen den Titel 
haben, was so n bisschen das 

378
00:21:10,960 --> 00:21:14,840
warum abdeckt, ne, dass man 
einfach mit einem Satz oder mit 

379
00:21:14,840 --> 00:21:18,040
einem Schlagwort lesen kann. 
Ah OK, darum geht es in diesem 

380
00:21:18,040 --> 00:21:22,640
Szenario, dann nehm ich die 
gerkin Schreibweise und das Gute

381
00:21:22,640 --> 00:21:27,040
ist es ist ne übungssache Ticket
so zu formulieren, weil es am 

382
00:21:27,040 --> 00:21:30,160
Anfang schwer fällt. 
Und das ist halt genau der der 

383
00:21:30,160 --> 00:21:32,640
Knackpunkt dabei, was ich so 
witzig finde ist, wenn es 

384
00:21:32,640 --> 00:21:36,560
schwerfällt, das was du gerade 
vorhast in diese Schreibweise zu

385
00:21:36,560 --> 00:21:39,920
bringen, kann es sein, dass es 
vielleicht gar nicht so richtig 

386
00:21:39,920 --> 00:21:44,160
user Value liefert, an der 
Stelle weißt du mal provokativ 

387
00:21:44,160 --> 00:21:46,960
gesagt, also wenn ich es nicht 
formulieren kann, dann fällt es 

388
00:21:46,960 --> 00:21:51,840
mir ja scheinbar schwer das 
warum zu definieren, warum mach 

389
00:21:51,840 --> 00:21:55,280
ich das gerade eigentlich, warum
soll das jetzt in die Software? 

390
00:21:56,320 --> 00:21:59,840
Leicht, provokativ, klar, es 
gibt auch, man hat auch Tickets 

391
00:21:59,840 --> 00:22:02,440
Chance oder so wo man sagt, EY 
wir müssen mal was umbauen, wir 

392
00:22:02,440 --> 00:22:06,360
müssen mal was refact dann oder 
so ne es geht aber jetzt so sag 

393
00:22:06,360 --> 00:22:09,280
ich mal um Features um Stories 
ne die jetzt wirklich neue 

394
00:22:09,280 --> 00:22:12,720
Sachen mit reinbringen. 
Ja, zum Beispiel kannst du ja 

395
00:22:12,800 --> 00:22:16,080
einfach dir überlegen, OK, es 
ist ne vielleicht n refactoring,

396
00:22:16,080 --> 00:22:18,480
das heißt du änderst was an 
deiner Infrastruktur. 

397
00:22:19,120 --> 00:22:21,960
Veränderst aber nicht die 
Funktionalität oder kein Value 

398
00:22:22,080 --> 00:22:25,360
der irgendwie, also der der User
Value verändert sich nicht, weil

399
00:22:25,520 --> 00:22:29,120
der User benutzt das trotzdem 
noch genauso wie vorher ne 

400
00:22:29,280 --> 00:22:32,240
veränderst ne andere Datenbank 
was auch immer ne, aber am Ende 

401
00:22:32,640 --> 00:22:34,320
ändert sich für den User 
trotzdem nichts. 

402
00:22:34,320 --> 00:22:35,440
Ne das wäre zum. 
Beispiel N Shore. 

403
00:22:35,680 --> 00:22:37,440
Oder n Bug. 
Ich finde das sind Dinge, die 

404
00:22:37,440 --> 00:22:39,680
kann man auf jeden Fall 
technisch beschreiben, aber halt

405
00:22:39,680 --> 00:22:42,480
eben nicht die. 
Guten Bug kannst du natürlich 

406
00:22:42,480 --> 00:22:45,760
auch in der Schreibweise oftmals
unterbringen, als ist das 

407
00:22:45,760 --> 00:22:48,000
möglich. 
Auf jeden Fall aber nur um das 

408
00:22:48,000 --> 00:22:49,840
klar. 
Also danke für den Hinweis, um 

409
00:22:49,840 --> 00:22:52,240
das halt einfach mal n bisschen 
zu differenzieren, dass wir hier

410
00:22:52,240 --> 00:22:55,680
natürlich von User Value von 
neuen User Value sprechen, ne? 

411
00:22:57,280 --> 00:23:01,640
Und genau, und jetzt ist die 
Frage ne, ich mach jetzt so 

412
00:23:01,640 --> 00:23:05,680
mehrere Szenarien, ich kann das 
runter definieren wie du 

413
00:23:05,680 --> 00:23:09,120
meintest, jetzt kann jemand das 
nehmen der nicht in der Software

414
00:23:09,120 --> 00:23:11,480
drin steckt in die 
Implementierung ja also der ist 

415
00:23:11,480 --> 00:23:14,880
nicht implementiert und ist 
trotzdem in der Lage es 

416
00:23:14,880 --> 00:23:17,600
theoretisch testen zu können. 
Ja. 

417
00:23:17,840 --> 00:23:21,240
Ja, also manuell zum Beispiel, 
indem man einfach sich auf die 

418
00:23:21,240 --> 00:23:23,600
Website geht. 
Die Applikation startet, das 

419
00:23:23,600 --> 00:23:26,520
einfach ausprobiert, je nachdem,
welches Projekt das jetzt ist, 

420
00:23:26,520 --> 00:23:28,400
ne. 
Und das finde ich halt. 

421
00:23:28,880 --> 00:23:34,000
Das coole an BDD, dass du sagst,
lass uns doch mal, bevor wir 

422
00:23:34,000 --> 00:23:37,520
hier irgendwie über 
implementieren, testen oder 

423
00:23:37,520 --> 00:23:40,320
irgendwas sprechen, mal 
wirklich. 

424
00:23:40,640 --> 00:23:43,200
Erst das Verhalten klären, 
genauso wie wir es ja gerade 

425
00:23:43,200 --> 00:23:46,480
gesagt haben und das in so nen 
Ticket zum Beispiel ist jetzt 

426
00:23:46,480 --> 00:23:48,920
nur n Beispiel ne wo du es 
hinschreibst darum geht es nicht

427
00:23:48,920 --> 00:23:52,880
ne also du kannst es von mir aus
auch in ne Textdatei speichern 

428
00:23:52,880 --> 00:23:55,600
und einchecken für den nächsten,
aber jetzt gehen wir mal davon 

429
00:23:55,600 --> 00:23:58,880
aus du hast jetzt n Ticketsystem
oder irgendwas Fakt ist du 

430
00:23:58,880 --> 00:24:02,960
definierst das verhalten was du 
möchtest das warum warum soll 

431
00:24:02,960 --> 00:24:06,160
das jetzt passieren? 
Die Szenarien sind eigentlich 

432
00:24:06,160 --> 00:24:12,000
irgendwo ja auch Beispiele. 
Ne also Beispiele wie das Ganze 

433
00:24:12,160 --> 00:24:14,960
passieren soll, dass dieser User
Value entsteht. 

434
00:24:15,760 --> 00:24:19,840
Du hast jetzt die Sicht des 
Users und guckst da drauf und 

435
00:24:19,840 --> 00:24:22,640
denkst dir so was will ich 
machen in der Situation ja ich 

436
00:24:22,640 --> 00:24:24,720
möchte es hinzufügen ja aber 
warte mal. 

437
00:24:24,720 --> 00:24:27,040
Vielleicht hab ich ja was 
Falsches hinzugefügt, da möchte 

438
00:24:27,040 --> 00:24:29,400
ich ja auch wieder Sachen 
wegnehmen können und so und du 

439
00:24:29,400 --> 00:24:32,080
fängst halt an es aus user 
Brille zu sehen. 

440
00:24:32,400 --> 00:24:35,720
Und machst dir über die ganzen 
Cases, ja über die verschiedenen

441
00:24:35,720 --> 00:24:39,280
Möglichkeiten viel mehr Gedanken
und schreibst sie halt genau in 

442
00:24:39,280 --> 00:24:43,440
dieser Schreibweise runter, 
sodass jetzt jemand das abtesten

443
00:24:43,440 --> 00:24:45,760
kann. 
Und BDD geht ja jetzt deswegen 

444
00:24:45,760 --> 00:24:48,880
auch als Zusatz zu TDD und jetzt
kommen wir mal so n bisschen in 

445
00:24:48,880 --> 00:24:54,520
die Testingwelt BDD sagt OK, 
jetzt haben wir diese ganzen 

446
00:24:54,520 --> 00:24:57,760
Szenarienbeispiele. 
Aber die möchte ich natürlich 

447
00:24:57,760 --> 00:24:59,840
jetzt auch automatisiert in 
Tests Gießen. 

448
00:24:59,840 --> 00:25:01,920
Ja, also automatisiert im Sinne 
von. 

449
00:25:01,920 --> 00:25:04,080
Die Tests können automatisiert 
laufen, nicht dass jetzt 

450
00:25:04,080 --> 00:25:06,960
irgendwie aus Zauberhandtests 
daraus entstehen. 

451
00:25:06,960 --> 00:25:09,680
Ja, also wir sind jetzt hier 
nicht mit irgendwie KI 

452
00:25:09,840 --> 00:25:14,080
unterwegs, sondern einfach dass 
quasi. 

453
00:25:14,560 --> 00:25:18,800
Diese Beispiele, Szenarien, die 
Tests dazu auch automatisiert 

454
00:25:18,800 --> 00:25:21,280
laufen können. 
Und das ist halt n super cooler 

455
00:25:21,280 --> 00:25:25,400
Ansatz, der jetzt mit TDD 
verschmilzt, sozusagen, dass man

456
00:25:25,400 --> 00:25:28,400
sich jetzt zum Beispiel n 
givenwhen zen Szenario nimmt 

457
00:25:29,440 --> 00:25:32,320
und. 
N Test schreibt Ja und da 

458
00:25:32,320 --> 00:25:34,320
bildest du das jetzt ab. 
Jetzt gibt es so verschiedene 

459
00:25:34,320 --> 00:25:38,240
Tools die da oder Frameworks die
das unterstützen, dass du halt 

460
00:25:38,240 --> 00:25:42,080
wirklich so annotations hast wie
Given when denn und dann werden 

461
00:25:42,080 --> 00:25:44,520
die entsprechenden Funktionen da
drunter aufgerufen und dann hast

462
00:25:44,520 --> 00:25:49,040
du das so ganz Fancy. 
In dieser Struktur, muss aber 

463
00:25:49,040 --> 00:25:51,680
nicht sein, du kannst. 
Das ist nämlich das wichtige bei

464
00:25:51,680 --> 00:25:54,880
das ist n Prinzip, das ist ne 
Strategie, das ist kein kein 

465
00:25:54,880 --> 00:25:58,000
Tool, kein Framework im Sinne 
von dann musst du jetzt auch 

466
00:25:58,240 --> 00:26:01,480
keine Ahnung Lizenz XY kaufen um
BDD machen zu können. 

467
00:26:01,480 --> 00:26:04,400
Ja das noch mal ganz klar 
gesagt, du kannst jetzt auch 

468
00:26:04,560 --> 00:26:06,680
keine Ahnung, wir nehmen ja zum 
Beispiel auf, just wenn wir 

469
00:26:06,680 --> 00:26:09,040
irgendwie auch auf Twitch was 
coden, du kannst jetzt auch n 

470
00:26:09,040 --> 00:26:13,240
ganz einfachen Unit Test mit 
just anlegen und trotzdem dieses

471
00:26:13,240 --> 00:26:16,800
Szenario da abbilden und im 
Endeffekt ist das ja auch. 

472
00:26:17,120 --> 00:26:20,560
Beispielsweise in unserem Beruf.
Ja, wir sind ja im selben Team 

473
00:26:20,800 --> 00:26:26,320
wie wir auch implementieren 
aktuell ne, dass wir die Tickets

474
00:26:26,720 --> 00:26:29,600
gerne so hätten, wenn wir sie 
selbst schreiben, schreiben wir 

475
00:26:29,600 --> 00:26:32,080
sie so, wir können nicht immer 
beeinflussen, wie sie von außen 

476
00:26:32,080 --> 00:26:34,800
kommen, ja, aber wir sind halt 
Fans von der gerkin 

477
00:26:34,800 --> 00:26:38,320
Schreibweise, weil man daraus 
wirklich gute Tests auch 

478
00:26:38,320 --> 00:26:42,960
schreiben kann und da wir nach 
TDD arbeiten oder so n Mix aus 

479
00:26:42,960 --> 00:26:48,600
BDD und TDD ja machen. 
Sind wir ja froh, diese Tickets 

480
00:26:48,600 --> 00:26:52,000
zu haben, weil es sich gut in 
Tests gießen lässt, um dann 

481
00:26:52,000 --> 00:26:54,960
daraus resultierend zu 
implementieren. 

482
00:26:55,200 --> 00:26:56,560
Du hast ja im Endeffekt genau 
du. 

483
00:26:56,560 --> 00:27:00,120
Du kannst ja theoretisch, weil 
so n ich sag mal so ne given 

484
00:27:00,120 --> 00:27:02,960
when, denn kann man ja auch als 
Anforderung sehen. 

485
00:27:03,760 --> 00:27:06,600
Innerhalb also als eine 
Anforderung zu einem Feature zum

486
00:27:06,600 --> 00:27:08,280
Beispiel oder zu einer Story 
beispielsweise ne. 

487
00:27:08,280 --> 00:27:11,680
Genau kann man ja so sehen, kann
man ja dann auch direkt so in 

488
00:27:11,680 --> 00:27:13,440
eine in den Test gießen wie du 
meinst. 

489
00:27:13,440 --> 00:27:17,160
Ich hab zum Beispiel auch mal 
gehabt, da hat n mein Kollege 

490
00:27:17,160 --> 00:27:20,640
zum Beispiel n alter Kollege von
mir, der hat das, der hatte mal 

491
00:27:20,640 --> 00:27:24,400
n Kommentar drüber geschrieben, 
ne given, dann hat er was den 

492
00:27:24,400 --> 00:27:27,320
Code gemacht, da in dem Test und
dann when und dann then. 

493
00:27:28,160 --> 00:27:32,360
Ich find zum Beispiel muss man 
nicht unbedingt machen, weil man

494
00:27:32,360 --> 00:27:34,720
sich irgendwie diese Kommentare 
sparen kann, weil im Endeffekt 

495
00:27:35,280 --> 00:27:38,400
kommst du gar nicht drumherum, 
dieses Givenwhen denn irgendwie 

496
00:27:38,400 --> 00:27:41,520
Prinzip anzuwenden, weil dein 
Given sind ja im ersten Mal so 

497
00:27:41,520 --> 00:27:45,680
irgendwie, sagen wir mal 
bestimmte Klassen oder 

498
00:27:45,680 --> 00:27:47,760
beziehungsweise Objekte von 
Klassen, die du dir irgendwie 

499
00:27:47,760 --> 00:27:50,040
erstellst für dein Testszenario 
ne. 

500
00:27:50,040 --> 00:27:52,360
Also was brauch ich, was ist 
denn aktuell da zum Beispiel? 

501
00:27:52,360 --> 00:27:54,720
Du stellst irgendwie n Warenkorb
der leer ist beispielsweise ne. 

502
00:27:55,840 --> 00:27:59,280
Und hast dann zum Beispiel sowas
wie du nimmst halt deine dein, 

503
00:27:59,360 --> 00:28:01,920
also deinen Warenkorb und machst
n at drauf oder deinen Service 

504
00:28:01,920 --> 00:28:04,480
machst n at mit einem bestimmten
Produkt, was du dir auch im 

505
00:28:04,480 --> 00:28:06,400
Given angelegt hast. 
Ne, das heißt du hast im 

506
00:28:06,400 --> 00:28:08,920
Endeffekt irgendwie sowas wie 
gegeben, Lern Warenkorb und 

507
00:28:08,920 --> 00:28:11,680
irgendwie n Produkt und dann 
sagst OK füg das Produkt da 

508
00:28:11,680 --> 00:28:14,560
hinzu, das ist dann dein denn 
und dann dein Expect am Ende zum

509
00:28:14,560 --> 00:28:17,120
Beispiel oder wie du es nennen 
magst ist dann im Endeffekt das 

510
00:28:17,440 --> 00:28:21,200
das denn ne. 
So und manchmal finde ich es 

511
00:28:21,200 --> 00:28:23,200
auch ganz angenehm, wenn man 
dann vielleicht so einfach 

512
00:28:23,200 --> 00:28:25,680
logisch ne Leerzeile in die 
Tests einbaut. 

513
00:28:25,680 --> 00:28:27,920
An den Stellen hast du zum 
Beispiel gesagt, zwischen Given 

514
00:28:27,920 --> 00:28:30,240
ran und dann immer mal ne 
Leerzeile rein, dann hast du es 

515
00:28:30,240 --> 00:28:32,800
ja optisch n bisschen 
geclustert, wie gesagt, n alter 

516
00:28:32,800 --> 00:28:35,160
Kollege von mir hat das halt 
halt mit Kommentaren dran 

517
00:28:35,160 --> 00:28:36,960
geschrieben, kann man auch. 
Machen ja, hab ich auch schon 

518
00:28:36,960 --> 00:28:39,000
öfter gesehen, finde ich nicht 
schlimm, ich selbst mach es, 

519
00:28:39,040 --> 00:28:41,880
mach es auch nicht, aber ich ich
sag mal das ist. 

520
00:28:42,480 --> 00:28:45,120
Das ist OK, das sind nicht, das 
sind nicht so böse Kommentare, 

521
00:28:45,120 --> 00:28:47,240
wie wir sie ja schon öfter mal 
erwähnt haben, sondern das ist 

522
00:28:47,240 --> 00:28:50,640
OK so, das kann man machen, ne, 
wenn das einfach optische 

523
00:28:50,640 --> 00:28:54,320
Struktur noch reinbringt, genau.
Aber zum Beispiel auch gerade, 

524
00:28:54,320 --> 00:28:56,880
wenn man sich jetzt also für 
mich, ich finde mal das 

525
00:28:56,880 --> 00:29:02,080
häufigste ist dann so n Argument
zu sagen, ja gut, aber was ist 

526
00:29:02,080 --> 00:29:04,240
denn, wenn du zum Beispiel n 
Fall vergisst? 

527
00:29:04,240 --> 00:29:08,240
Also ne Anforderung in deiner 
gerkin Schreibweise in deiner 

528
00:29:08,240 --> 00:29:10,320
Story. 
Da denk ich mir immer so. 

529
00:29:10,320 --> 00:29:12,920
Ja du kannst bei TDD auch n Fall
vergessen und wenn du zum 

530
00:29:12,920 --> 00:29:16,720
Beispiel sagst, OK du machst TDD
mäßig, wirklich nur das was du 

531
00:29:16,720 --> 00:29:18,400
in deiner Story zum Beispiel 
drin hast. 

532
00:29:18,400 --> 00:29:23,040
Was so behavior driven sag ich 
jetzt mal definiert wurde und du

533
00:29:23,040 --> 00:29:24,960
denkst nicht mehr mit und 
versuchst es einfach nur n Test 

534
00:29:24,960 --> 00:29:26,400
abzubilden. 
Das ist natürlich blöd, man 

535
00:29:26,400 --> 00:29:28,240
sollte natürlich immer 
mitdenken, also zu von dem 

536
00:29:28,240 --> 00:29:30,960
Schritt ich sag ich nenn es 
jetzt einfach mal von BDD zu TDD

537
00:29:30,960 --> 00:29:34,160
rüber, sollte man natürlich 
immer noch mitdenken, es ist nie

538
00:29:34,160 --> 00:29:39,200
verkehrt das zu tun, aber genau.
Du kannst immer was vergessen 

539
00:29:39,200 --> 00:29:40,960
und ich finde es halt immer so 
lustig. 

540
00:29:40,960 --> 00:29:44,640
Klar, du kannst immer irgendwas 
vergessen, aber und das ist doch

541
00:29:44,640 --> 00:29:48,240
genau der.es ist doch auch noch 
keiner, also kein Meister vom 

542
00:29:48,240 --> 00:29:52,080
Himmel gefallen, also wie? 
Wieso erwartet man wenn man sagt

543
00:29:52,080 --> 00:29:56,160
ja wir machen das nicht, weil 
das ist irgendwie zu kompliziert

544
00:29:56,160 --> 00:29:58,960
oder man vergisst da was oder 
man kriegt das nicht richtig 

545
00:29:58,960 --> 00:30:02,480
hin. 
Kann man sich natürlich so 

546
00:30:02,480 --> 00:30:05,840
hinstellen, aber so würde man ja
glaub ich gefühlt im Leben nie 

547
00:30:05,840 --> 00:30:08,040
was auf die Reihe kriegen, wenn 
man nicht sagt, OK, ich kann es 

548
00:30:08,040 --> 00:30:10,480
nicht, also lass ich es so. 
Nein ich kann es nicht, also 

549
00:30:10,480 --> 00:30:12,000
lern ich es, weil es sinnvoll 
ist. 

550
00:30:12,240 --> 00:30:15,200
So das ist finde ich immer eher 
dann die Herangehensweise. 

551
00:30:16,000 --> 00:30:18,400
Ja und Fehler passieren halt 
einfach ne also. 

552
00:30:18,960 --> 00:30:21,480
Das ist ja nur nur das, das das 
braucht man ja nicht 

553
00:30:21,480 --> 00:30:24,880
diskutieren, das ist einfach so.
Die Frage ist ja eher, welche 

554
00:30:24,880 --> 00:30:28,560
Strategien kann man anwenden, ne
um einfach bestmöglich das 

555
00:30:28,560 --> 00:30:33,680
umzusetzen oder so wenig wie 
möglich Fälle zu vergessen und 

556
00:30:33,920 --> 00:30:37,200
wenn man jetzt so n ganz 
klassisches TDD von BDD noch mal

557
00:30:37,200 --> 00:30:42,320
so n bisschen unterscheiden 
möchte, ne ganz klassisches TDD 

558
00:30:42,720 --> 00:30:46,640
sagt ja eigentlich nur wie wir 
vorhin meinten. 

559
00:30:47,680 --> 00:30:51,360
Teste, bevor du Implementierst, 
zeigt, dass es nicht geht, 

560
00:30:51,360 --> 00:30:55,440
implementiere es und dann geht 
es und refector noch mal so. 

561
00:30:56,560 --> 00:31:00,000
Das ist ja aber auf einer, sagen
wir mal, hier sind wir jetzt so 

562
00:31:00,000 --> 00:31:02,920
auf Unit testebene ist das 
natürlich sehr technisch, ne, 

563
00:31:02,920 --> 00:31:04,800
das kann jetzt auch einfach 
sein, dass ich ne kleine 

564
00:31:04,800 --> 00:31:08,080
berechnungsfunktion hab, die 
irgendwo verwendet wird und die 

565
00:31:08,080 --> 00:31:10,560
teste ich ab, dann schreibe ich 
meinen Test. 

566
00:31:10,960 --> 00:31:14,560
TDDE funktioniert nicht, 
implementiere OK, das 

567
00:31:14,560 --> 00:31:16,400
funktioniert. 
Schreib den nächsten Test. 

568
00:31:16,400 --> 00:31:19,360
Ja, aber bei der Berechnung 
funktioniert es nicht richtig, 

569
00:31:19,360 --> 00:31:23,840
ah OK zwoter Test pass meine 
Implementierung an beide Tests 

570
00:31:23,840 --> 00:31:27,840
noch grün und so weiter 
klassisches TDD ist ja aber 

571
00:31:28,720 --> 00:31:32,960
wirklich im Endeffekt nur wie 
funktioniert diese Funktion? 

572
00:31:32,960 --> 00:31:35,840
Ich schreibe Tests die 
beschreiben wie diese 

573
00:31:35,920 --> 00:31:37,760
Berechnungsfunktion 
funktioniert. 

574
00:31:38,120 --> 00:31:40,800
Ja. 
Ja, also ich bin auf sehr 

575
00:31:40,800 --> 00:31:46,560
technischer Ebene unterwegs. 
Das ist das ganz klassische TDD,

576
00:31:46,800 --> 00:31:49,760
wie wir jetzt zum Beispiel im 
Berufsalltag arbeiten, geht ja 

577
00:31:49,760 --> 00:31:53,200
schon mehr in die BDD Richtung, 
ja, dass wir jetzt nämlich 

578
00:31:53,200 --> 00:31:57,840
sagen, Na, wir testen jetzt aber
nicht nur TDD, technisch das 

579
00:31:57,840 --> 00:32:02,240
technische so kleine Funktion 
ab, sondern wir überlegen uns, 

580
00:32:02,240 --> 00:32:04,880
und da helfen jetzt die Tickets.
Warum mach ich? 

581
00:32:04,880 --> 00:32:07,680
Warum brauch ich diese 
berechnungsfunktion, wo brauch 

582
00:32:07,680 --> 00:32:10,040
ich diese Funktion, warum muss 
die überhaupt da sein? 

583
00:32:10,040 --> 00:32:13,120
Ne ich kann ja jetzt alles in 
kleinsten Bestandteilen abtesten

584
00:32:13,120 --> 00:32:16,480
OK, aber das gewährleistet 
nicht, dass das große warum 

585
00:32:16,480 --> 00:32:20,880
dahinter beantwortet ist. 
Also fang ich ja auch an TDD zu 

586
00:32:20,880 --> 00:32:25,920
nutzen mit dem Input der durch 
Behavior Driven Development 

587
00:32:25,920 --> 00:32:29,160
entsteht so meine Tests 
aufzubauen und dann bin ich halt

588
00:32:29,160 --> 00:32:33,840
bei dem Givenwand zum Beispiel. 
Ja ne was du meintest, es geht 

589
00:32:33,840 --> 00:32:35,760
ja auch nicht das warum 
beantworten. 

590
00:32:35,840 --> 00:32:38,080
Geht ja auch schon mit dem 
Testnamen finde ich los, den 

591
00:32:38,080 --> 00:32:41,400
kann man auch rein theoretisch 
schon sehr fachlich beschreiben,

592
00:32:41,400 --> 00:32:43,280
muss ihn nicht unbedingt 
technisch beschreiben. 

593
00:32:44,000 --> 00:32:46,760
Wenn du jetzt zum Beispiel 
sagst, OK, es wird ne Exception 

594
00:32:46,760 --> 00:32:49,440
geworfen, ne, dann musst du das 
nicht. 

595
00:32:49,440 --> 00:32:52,160
Im Test kannst du machen, kannst
sagen es wird ne Exception 

596
00:32:52,160 --> 00:32:54,320
geworfen. 
Wenn das und das passiert. 

597
00:32:54,560 --> 00:32:57,040
Du kannst natürlich aber auch 
sagen, dass es irgendwie failed 

598
00:32:57,040 --> 00:33:00,640
oder so ne oder irgendwie anders
anderweitig beschreiben, dass du

599
00:33:00,640 --> 00:33:02,720
nicht sagst, OK, es ist ne 
Exception, rein theoretisch 

600
00:33:02,720 --> 00:33:05,640
kannst du verschiedene Art und 
weisen auf verschiedene Art und 

601
00:33:05,640 --> 00:33:07,240
Weisen darstellen, dass etwas 
failed. 

602
00:33:07,240 --> 00:33:09,600
Entweder du wirst ne Exception 
oder du gibst ne -1 zurück, je 

603
00:33:09,600 --> 00:33:13,840
nach Kontext am Ende, aber das 
ist genau der Punkt. 

604
00:33:14,240 --> 00:33:16,640
Auch, weil wir manchmal gesagt 
haben oder weil wir gerne sagen,

605
00:33:16,720 --> 00:33:19,360
Tests dokumentieren auch die 
Software. 

606
00:33:19,840 --> 00:33:22,840
Je fachlicher sie geschrieben 
sind oder die Titel der Tests 

607
00:33:22,840 --> 00:33:25,440
sind, desto besser dokumentieren
sie eigentlich auch deine 

608
00:33:25,440 --> 00:33:29,120
Software, ohne dass du technisch
genau sagst, es muss jetzt eine 

609
00:33:29,120 --> 00:33:31,360
Exception geworfen werden oder 
halt nicht oder was auch immer, 

610
00:33:31,840 --> 00:33:35,640
ja. 
Jetzt ist die Frage auch mal so 

611
00:33:35,640 --> 00:33:37,880
in deine Richtung. 
Ne, jetzt haben wir so n 

612
00:33:37,880 --> 00:33:43,040
klassisches TDD mal gesagt, so 
NBDD als Aufbau oben drauf rum, 

613
00:33:43,040 --> 00:33:45,000
was ja so das Kernthema heute 
ist. 

614
00:33:45,000 --> 00:33:50,240
Ne heißt das entweder mach ich 
solche Tests oder solche Tests 

615
00:33:50,480 --> 00:33:54,720
oder ist es irgendwo auch n Mix 
am Ende also sind das jetzt so 

616
00:33:54,720 --> 00:33:57,840
ganz starre Struktur, ich weiß 
es so so so n bisschen 

617
00:33:57,840 --> 00:34:00,080
rhetorische Frage gerade, aber 
ich möchte das einfach noch mal 

618
00:34:00,080 --> 00:34:03,120
ganz klar sagen, ich möchte, 
dass du das noch mal ganz klar 

619
00:34:03,120 --> 00:34:06,320
sagst. 
Das geht doch beides, oder? 

620
00:34:07,040 --> 00:34:12,080
Ich bin raus. 
Nein, also ich denk mir also für

621
00:34:12,080 --> 00:34:16,320
mich ist es eigentlich so, dass 
auf je höherer, also je höher 

622
00:34:16,320 --> 00:34:19,280
deine Ebene ist, auf der du 
Testest, desto mehr solltest 

623
00:34:20,320 --> 00:34:23,199
Behavior driven sein, sag ich 
jetzt mal oder desto mehr sollte

624
00:34:23,199 --> 00:34:27,440
denn auch das ganze fachlich 
sein und je tiefer du kommst, 

625
00:34:27,440 --> 00:34:29,840
also je wirklich. 
Je tiefer du auf ne. 

626
00:34:30,080 --> 00:34:33,080
Wenn du jetzt zum Beispiel du 
hast ne utils Klasse ne die 

627
00:34:33,080 --> 00:34:36,159
irgendwie dieses klassische 
utils Ding ne, ja wo du 

628
00:34:36,159 --> 00:34:38,320
eigentlich dir. 
Denkauffanglager auffang weg. 

629
00:34:39,199 --> 00:34:41,280
Aber da kann sich ja jeder was 
drunter vorstellen. 

630
00:34:41,280 --> 00:34:43,239
Aber an dieser Stelle, 
beispielsweise wenn du da 

631
00:34:43,239 --> 00:34:46,560
irgendwie ne bestimmte Funktion 
abtestest wie willst du 

632
00:34:46,560 --> 00:34:49,440
irgendeine Fachlichkeit da 
reinbringen, die aber überhaupt 

633
00:34:49,440 --> 00:34:54,639
nicht wirklich fachlich ist? 
Ne, jetzt noch mal domain driven

634
00:34:54,639 --> 00:34:57,200
design in in domain driven 
design gesprochen. 

635
00:34:57,520 --> 00:35:00,560
Das ist ja, das gehört ja auch 
zu keiner, zu keiner Domain 

636
00:35:00,560 --> 00:35:03,280
dieses Utils, weil es wird 
irgendwo verortet, was überall 

637
00:35:03,280 --> 00:35:04,880
verwendet wird. 
Es ist also quasi keiner 

638
00:35:04,880 --> 00:35:07,560
Fachlichkeit zugeordnet, 
demzufolge, wenn du es in keiner

639
00:35:07,560 --> 00:35:10,800
Fachlichkeit zugeordnet hast, 
wie willst du es dann irgendwie,

640
00:35:11,280 --> 00:35:14,080
ich sag mal fachlich 
beschreiben, du kannst es 

641
00:35:14,080 --> 00:35:16,960
eigentlich nur technisch 
beschreiben oder eher technisch 

642
00:35:16,960 --> 00:35:21,960
beschreiben, ne, so solche utils
Dinger und genau das ist finde 

643
00:35:21,960 --> 00:35:24,800
ich so das Ding, also auf je 
höherer Ebene man unterwegs ist.

644
00:35:25,120 --> 00:35:28,840
Zum Beispiel du bedienst ne UI 
irgendwie im Browser irgendwas, 

645
00:35:28,840 --> 00:35:31,120
da kannst du super entspannt 
sagen, wenn du dies machst und 

646
00:35:31,120 --> 00:35:34,200
das machst, dann passiert das 
und das also ne, also zum 

647
00:35:34,200 --> 00:35:36,160
Beispiel dieses Shopping Card 
Ding Beispiel das kennt jeder 

648
00:35:36,160 --> 00:35:39,440
irgendwie irgendeinen E Commerce
Shop, das kannst du perfekt 

649
00:35:39,440 --> 00:35:43,480
damit abtesten auf Systemebene 
beispielsweise, aber wenn du 

650
00:35:43,480 --> 00:35:45,760
irgendwo ganz unten bist wie 
gesagt dann. 

651
00:35:46,280 --> 00:35:48,320
Wird es halt irgendwann super 
technisch und dann kommst du aus

652
00:35:48,320 --> 00:35:50,240
dieser technischen Seite auch 
gar nicht mehr raus. 

653
00:35:50,240 --> 00:35:52,440
Aber es ist dann auch nicht 
schlimm, weil du ja wie gesagt 

654
00:35:52,440 --> 00:35:55,120
technisch unterwegs bist und 
nicht fachlich überhaupt nicht. 

655
00:35:56,240 --> 00:35:59,920
Ja, ja oder n anderes Beispiel. 
Nehmen wir einfach so ne Login 

656
00:35:59,920 --> 00:36:04,960
Page, ja die begegnet dir 5000 
mal am Tag und dann kannst du 

657
00:36:04,960 --> 00:36:08,960
halt einmal BDD ne Story haben 
die sagt wenn ich auf der Login 

658
00:36:08,960 --> 00:36:13,040
page bin. 
Und ich gebe ne valide Username 

659
00:36:13,040 --> 00:36:14,800
und Passwort ein und drück auf 
Login. 

660
00:36:14,800 --> 00:36:17,520
Dann bin ich eingeloggt, so nach
dem Motto, ja das wär jetzt so 

661
00:36:17,520 --> 00:36:21,760
ne ganz simple Story die jeder 
versteht und da ist jetzt egal 

662
00:36:21,760 --> 00:36:24,480
wie der Login passiert oder was 
ob da überhaupt n richtiger 

663
00:36:24,480 --> 00:36:27,360
Login stattfindet oder du 
einfach weitergeleitet wirst. 

664
00:36:27,360 --> 00:36:31,440
Ja also bei dieser Story ist das
ja erstmal egal und trotzdem 

665
00:36:31,440 --> 00:36:34,640
kann ich unter der Haube zum 
Beispiel wenn Username irgendwie

666
00:36:34,640 --> 00:36:37,680
ne e Mail sein soll, also. 
Der Account nehmen, denn zum 

667
00:36:37,680 --> 00:36:41,860
Beispiel ist ne e Mail und ich 
hab da so n validata für ne e 

668
00:36:41,860 --> 00:36:43,280
Mail. 
Ja wie kann das überhaupt 

669
00:36:43,280 --> 00:36:45,760
aussehen? 
Dann bin ich halt so technisch, 

670
00:36:45,760 --> 00:36:49,280
dann schreib ich halt keine User
Value Test sondern ich teste 

671
00:36:49,280 --> 00:36:53,120
einfach in zig Cases ab ob er 
richtig erkennt ob das ne valide

672
00:36:53,120 --> 00:36:55,960
e Mail ist oder nicht um da 
jetzt noch mal so beide 

673
00:36:55,960 --> 00:36:59,440
Hierarchien zu zeigen, ja und 
das eine hat halt User Value und

674
00:36:59,440 --> 00:37:02,400
ist Behavior Driven und das 
andere ist Test driven um 

675
00:37:02,400 --> 00:37:06,320
einfach zu gewährleisten. 
Dass bitte jede valide E Mail 

676
00:37:06,320 --> 00:37:08,640
auch erkannt wird. 
Ja, aber das find ich ganz gut, 

677
00:37:08,640 --> 00:37:10,600
weil das Match irgendwie wieder 
weil am Ende ist. 

678
00:37:10,600 --> 00:37:13,680
Zum Beispiel so n so n ich nenn 
es mal jetzt e Mail validata ne 

679
00:37:13,680 --> 00:37:16,960
oder validate Mail was auch 
immer, wenn du das zum Beispiel 

680
00:37:16,960 --> 00:37:20,320
in so einem utils verortest, 
weil es an verschiedenen Stellen

681
00:37:20,320 --> 00:37:22,960
irgendwie gebraucht wird, dann 
ist es halt eigentlich nur 

682
00:37:22,960 --> 00:37:24,640
wichtig. 
OK ist das irgendwie ne valide 

683
00:37:24,640 --> 00:37:29,040
Mail oder nicht so ne und dann 
kann man es halt wie gesagt auch

684
00:37:29,040 --> 00:37:31,800
dann ist es technisch. 
Gut, dass man es technisch halt 

685
00:37:31,800 --> 00:37:33,600
eben beschreibt, weil es halt 
auch technisch ist. 

686
00:37:33,800 --> 00:37:37,200
Ne, also cooles Beispiel, auf 
jeden Fall genau. 

687
00:37:38,400 --> 00:37:41,000
Und jetzt ist ja aber irgendwo 
so n bisschen die Frage, was ist

688
00:37:41,000 --> 00:37:43,320
denn das Ziel dahinter? 
Ne, also das würde ich auch noch

689
00:37:43,320 --> 00:37:45,680
mal gerne n bisschen 
herauskristallisieren, weil wir 

690
00:37:45,680 --> 00:37:49,360
sind ja auch wirklich Verfechter
gerade vom TDD, wir nennen es 

691
00:37:49,360 --> 00:37:52,000
jetzt nicht so unbedingt, dass 
wir sagen, ja, wir arbeiten nach

692
00:37:52,000 --> 00:37:56,080
BDD ja, also wir, meistens reden
wir ja von Test driven 

693
00:37:56,080 --> 00:38:01,360
Development und im Endeffekt. 
Nehmen wir vieles von Behavior 

694
00:38:01,360 --> 00:38:03,760
Driven Development und setzen 
das bei uns auch in Top. 

695
00:38:03,760 --> 00:38:07,920
Ja, aber was sind so grob die 
Ziele dahinter? 

696
00:38:07,920 --> 00:38:10,160
Ne, weil man kann sich jetzt 
fragen, ja OK, klingt alles 

697
00:38:10,160 --> 00:38:12,640
irgendwie ganz cool, klingt aber
auch irgendwie nach ziemlich 

698
00:38:12,640 --> 00:38:13,920
viel Overhead. 
Ich könnt ja auch einfach 

699
00:38:13,920 --> 00:38:18,520
loslegen so ne, aber was erhofft
man sich oder was sind so die 

700
00:38:18,520 --> 00:38:21,720
Benefits davon das das muss man 
muss man ja auch einfach mal 

701
00:38:21,720 --> 00:38:24,800
klar herauskristallisieren. 
Ja, das ist so ein bisschen 

702
00:38:24,800 --> 00:38:28,240
ähnlich wie bei DDD. 
Also du hast halt eine klare 

703
00:38:28,240 --> 00:38:31,760
Kommunikation, also du weißt 
halt am Ende, wenn du über 

704
00:38:31,760 --> 00:38:34,960
irgendwas sprichst, wie wäre es 
ja schon wie du, du hast es am 

705
00:38:34,960 --> 00:38:37,960
Anfang eingehend super geil 
gesagt, ich habe es jetzt 

706
00:38:37,960 --> 00:38:40,800
irgendwie technisch irgendwie 
was zusammengeschustert und du 

707
00:38:40,800 --> 00:38:43,360
so ich kann, ich weiß jetzt 
schon gar nicht mehr was du 

708
00:38:43,360 --> 00:38:46,920
gesagt hast und irgendwie konnte
ich dir auch zu dem Zeitpunkt 

709
00:38:46,920 --> 00:38:49,360
gar nicht folgen, aber wenn ich 
es dir sozusagen fachlich 

710
00:38:49,360 --> 00:38:51,720
beschrieben hätte, dann wäre es 
super klar gewesen, das hättest 

711
00:38:51,720 --> 00:38:54,520
du wahrscheinlich also. 
Das, was ich dir vorhin 

712
00:38:54,520 --> 00:38:57,600
sozusagen dieser Szenarien und 
gerkin Schreibweise sozusagen so

713
00:38:58,000 --> 00:39:00,360
als Story erzählt hab, so, das 
hast du wahrscheinlich immer 

714
00:39:00,360 --> 00:39:03,760
noch im Kopf und das ist genau 
diese Art von Kommunikation, die

715
00:39:03,760 --> 00:39:08,320
du dann am Ende Halt hast, die 
einfach, das ist einfach klar 

716
00:39:08,320 --> 00:39:11,920
was passiert und ich finde, 
genau das ist ja auch das 

717
00:39:11,920 --> 00:39:14,240
Wichtige dabei, du hast 
unterschiedliche Rollen im Team 

718
00:39:14,640 --> 00:39:17,560
und jeder muss über das Gleiche 
sprechen, aber am Ende sozusagen

719
00:39:17,560 --> 00:39:20,320
der Rattenschwanz under the 
Hood, was dann da? 

720
00:39:20,800 --> 00:39:24,160
Unten drunter hängt, da kümmert 
sich dann halt jeder einzeln 

721
00:39:24,160 --> 00:39:26,400
drum ne. 
Also wenn du jetzt als 

722
00:39:26,640 --> 00:39:30,240
Entwickler weißt du was was 
gemeint ist und du musst es 

723
00:39:30,240 --> 00:39:35,120
entwickeln so und was weiß ich 
als wenn du jetzt irgendwie 

724
00:39:35,120 --> 00:39:37,920
Marketing Chef bist oder was 
auch immer, dann weißt du auch 

725
00:39:37,920 --> 00:39:39,360
was gemeint ist. 
Aber du musst ja trotzdem 

726
00:39:39,360 --> 00:39:41,520
irgendwie gucken wie du es 
vermarktet kriegst ne also es 

727
00:39:41,520 --> 00:39:44,320
sind halt unterschiedliche Dinge
wie du aber und du musst in 

728
00:39:44,320 --> 00:39:46,880
deiner. 
In deiner Welt dann damit 

729
00:39:46,880 --> 00:39:49,480
umgehen können, aber die 
gemeinsame Sprache haben, das 

730
00:39:49,480 --> 00:39:52,480
heißt, es ist halt einfach n 
kommunikationsding, was super 

731
00:39:52,480 --> 00:39:56,480
wertvoll ist. 
Na ja, und ich sag mal, dadurch 

732
00:39:56,480 --> 00:39:59,360
dass du ne Basis hast, auf der 
du kommunizierst, wirst du auch 

733
00:39:59,360 --> 00:40:02,080
sehr sehr wahrscheinlich weniger
böse Überraschungen haben. 

734
00:40:02,080 --> 00:40:04,880
Am Ende ne. 
Sowohl für Stakeholder als auch 

735
00:40:04,880 --> 00:40:08,560
für den Coder, der jetzt 
wochenlang implementiert, mal 

736
00:40:08,560 --> 00:40:12,560
übertrieben gesagt, Ey Leute 
nicht so große Tickets, ne, aber

737
00:40:12,560 --> 00:40:15,360
jetzt war in unserem Beispiel 
wochenlang implementiert und 

738
00:40:15,360 --> 00:40:18,240
dann heißt es auf einmal. 
Ja, nee, das ist doch überhaupt 

739
00:40:18,240 --> 00:40:22,000
gar nicht, was wir wollen. 
Also wir haben doch ganz, ganz 

740
00:40:22,000 --> 00:40:24,480
dolle technisch 5 Minuten 
darüber gesprochen, es muss doch

741
00:40:24,480 --> 00:40:27,840
absolut klar sein, was gewollt 
war. 

742
00:40:27,920 --> 00:40:31,120
Ja nee, sorry, also hab komplett
in ne andere Richtung gedacht, 

743
00:40:31,120 --> 00:40:34,560
ja und weniger Überraschung 
kommt natürlich dem Projekt 

744
00:40:34,560 --> 00:40:37,880
einfach zugute, ne, weil einfach
Features die dann am Ende 

745
00:40:37,880 --> 00:40:41,200
implementiert werden auch 
wirklich echten Nutzen haben. 

746
00:40:41,200 --> 00:40:43,520
Ja also wir beide, das ist doch 
gar nicht so lange her, 

747
00:40:43,520 --> 00:40:46,560
vielleicht n Jahr oder so. 
Da haben wir beide ja auch an 

748
00:40:46,560 --> 00:40:50,400
einem größeren Feature 
gearbeitet, was man uns quasi 

749
00:40:50,400 --> 00:40:53,360
erklärt hat, dass das wichtig 
ist und hier und da, und dann 

750
00:40:53,360 --> 00:40:55,600
haben wir da ewig 
rumimplementiert und das war n 

751
00:40:55,600 --> 00:40:58,800
absolutes Chaos, wo wir uns auch
dachten, Leute, was geht hier 

752
00:40:58,800 --> 00:41:01,840
eigentlich ab und am Ende fragen
wir uns bis heute, was jetzt 

753
00:41:01,840 --> 00:41:06,080
wirklich der User Value dahinten
war dahinter war oder ob das nur

754
00:41:06,080 --> 00:41:07,920
gefühlt einer Person geholfen 
hat. 

755
00:41:08,360 --> 00:41:11,440
Und das ist glaub ich auch 
wichtig, weil gerade diese Art 

756
00:41:11,440 --> 00:41:14,560
und Weise sozusagen Software zu 
entwickeln beziehungsweise die 

757
00:41:14,720 --> 00:41:19,120
diesen Ansatz zu fahren. 
Du versetzt dich viel mehr in 

758
00:41:19,120 --> 00:41:22,040
das in das hinein, was 
eigentlich am Ende gewünscht 

759
00:41:22,040 --> 00:41:25,040
wird, was es eigentlich soll, 
was wirklich, wirklich wichtig 

760
00:41:25,040 --> 00:41:27,920
ist, ne was so reale. 
Szenarien sind einfach ne und 

761
00:41:27,920 --> 00:41:32,000
nicht nur so n so n absoluter 
Sondercase, der einmal in 1000 

762
00:41:32,000 --> 00:41:34,480
Jahren auftritt so. 
Du verhaspelst dich halt nicht 

763
00:41:34,480 --> 00:41:36,560
so krass. 
Was ja auch irgendwie dann am 

764
00:41:36,560 --> 00:41:39,080
Ende bedeutet, du brauchst 
weniger oder machst vielleicht 

765
00:41:39,080 --> 00:41:42,480
auch weniger over Engineering, 
weil du halt gar nicht n riesen 

766
00:41:42,480 --> 00:41:45,200
Konstrukt möglicherweise 
brauchst, von dem es halt, was 

767
00:41:45,200 --> 00:41:47,680
eigentlich gar nicht gewünscht 
ist, was dann auch wieder dazu 

768
00:41:47,680 --> 00:41:50,160
führt, dass zum Beispiel im 
Normalfall dann auch weniger 

769
00:41:50,160 --> 00:41:54,080
Bugs irgendwie hast, die dann 
auftreten, ne und ja, das ist ne

770
00:41:54,080 --> 00:41:56,360
Sache, ich mein das haben wir 
schon oft genug gesagt, aber die

771
00:41:56,360 --> 00:41:58,640
Dokumentation, die allein schon 
über die Tests. 

772
00:41:58,880 --> 00:42:00,640
Also du hast ja auf 
verschiedenen Art und weisen ne 

773
00:42:00,640 --> 00:42:02,400
Dokumentation. 
Du kannst in den Stories 

774
00:42:02,400 --> 00:42:06,480
supergeil nachlesen, OK was 
passiert hier eigentlich, was 

775
00:42:06,480 --> 00:42:09,680
macht das eigentlich, das sind 
es ist natürlich Dokumentation 

776
00:42:10,320 --> 00:42:13,120
ist noch mal n eigenes Thema für
sich, weil Dokumentation findet 

777
00:42:13,120 --> 00:42:15,760
auf verschiedenen Ebenen statt 
ne das ist ja Software 

778
00:42:15,920 --> 00:42:19,480
Dokumentation der Software 
Dokumentation der Anwendung für 

779
00:42:19,480 --> 00:42:23,200
den Anwender beispielsweise 
Dokumentation für was weiß ich 

780
00:42:23,360 --> 00:42:26,520
ich sag mal aus PO sicht ne so 
in die Richtung du hast ja 

781
00:42:26,520 --> 00:42:28,400
Dokumentation auf verschiedenen 
Ebenen aber. 

782
00:42:28,880 --> 00:42:32,640
Einige Arten von Dokumentationen
sind halt einfach schon so Low 

783
00:42:32,640 --> 00:42:37,360
hanging Fruits dabei, dann ne ja
und es hilft natürlich auch 

784
00:42:37,600 --> 00:42:40,200
diese Dokumentation. 
Wenn du jetzt Wochen später also

785
00:42:40,200 --> 00:42:43,120
auch für dich selbst ja der das 
entwickelt hat, ist es für dich 

786
00:42:43,120 --> 00:42:46,440
auch ne Dokumentation, wenn du 
Wochen später drauf guckst und 

787
00:42:46,440 --> 00:42:49,280
nicht mehr weißt, wie es 
wirklich funktioniert hat und du

788
00:42:49,280 --> 00:42:52,640
dann anhand solcher 
Schreibweisen oder gut benahmten

789
00:42:52,640 --> 00:42:54,960
Tests sofort wieder weißt, was 
da abging. 

790
00:42:55,120 --> 00:42:57,440
Ich mein, das beste Beispiel 
kann man ja einfach mal aus 

791
00:42:57,440 --> 00:43:00,760
unseren Twitch sessions nehmen. 
Wir haben ja nen eigenen Chatbot

792
00:43:00,760 --> 00:43:03,520
geschrieben, so war so Community
Wunsch. 

793
00:43:03,520 --> 00:43:06,240
Ey lass mal machen, klar der 
kann nicht so viel wie von weiß 

794
00:43:06,240 --> 00:43:09,040
nicht streamlabs oder was nutzen
die meisten, das ist ja so n 

795
00:43:09,040 --> 00:43:13,240
ultimativer Overbot der einfach 
alles kann so ne unser nicht, 

796
00:43:13,240 --> 00:43:17,760
aber dafür ist er witzig von uns
geschrieben aber trotzdem gab es

797
00:43:17,760 --> 00:43:19,840
schon so oft den Moment wo wir 
uns dachten. 

798
00:43:20,480 --> 00:43:23,160
Boah, wie sehen denn noch mal 
diese Twitch messages aus, die 

799
00:43:23,160 --> 00:43:24,880
wir da empfangen? 
Wie sieht denn das noch mal aus?

800
00:43:24,960 --> 00:43:27,760
Und anstatt wieder die ganze 
Doku durchzukramen, gucken wir 

801
00:43:27,760 --> 00:43:32,000
einfach in die Tests rein und 
sehen einfach aha, wenn ich das 

802
00:43:32,000 --> 00:43:35,600
mache und hier und dann kriege 
ich das und das erwarte ich so 

803
00:43:35,600 --> 00:43:37,040
mal. 
Jetzt ganz einfach gesagt, du 

804
00:43:37,040 --> 00:43:40,080
kannst da einfach reingucken und
weißt sofort, ah so sieht es 

805
00:43:40,080 --> 00:43:44,960
aus, du weißt hoch auf dein Test
auch genau und kannst es dann 

806
00:43:44,960 --> 00:43:47,360
einfach schnell wieder 
reproduzieren und das ist halt 

807
00:43:47,360 --> 00:43:50,480
auch n riesen Benefit. 
Den, den ich anfangs 

808
00:43:50,480 --> 00:43:53,680
unterschätzt hatte, wo ich mir 
dachte, ja OK, Dokumentation ja 

809
00:43:53,680 --> 00:43:56,760
OK, wir haben Tests, die haben 
Namen, ist ja in Ordnung, aber 

810
00:43:56,760 --> 00:44:00,560
es hilft dir im Nachhinein 
unglaublich, wieder in solche 

811
00:44:00,560 --> 00:44:02,880
Themen dann wieder einzusteigen,
gerade wenn es auch schon n 

812
00:44:02,880 --> 00:44:04,960
bisschen älter ist und noch so 
mantained werden muss. 

813
00:44:05,280 --> 00:44:07,920
Ja, auf jeden Fall. 
Ich meine, man muss natürlich 

814
00:44:07,920 --> 00:44:11,280
sagen, klar hast du 
Herausforderungen irgendwo bei 

815
00:44:11,280 --> 00:44:13,600
der ganzen Sache. 
Weil du musst. 

816
00:44:13,600 --> 00:44:15,880
Die musst dich natürlich 
irgendwie, also du musst dich 

817
00:44:15,880 --> 00:44:18,160
irgendwie einarbeiten, du musst 
gedanklich erstmal da 

818
00:44:18,160 --> 00:44:22,800
reinkommen, dass man sich denkt,
na ja, OK, wie geht das jetzt 

819
00:44:22,800 --> 00:44:25,440
noch mal ne also gerkin 
Schreibweise, was auch immer wie

820
00:44:25,440 --> 00:44:29,680
wie formulier ich das am besten 
und ich hab das auch manchmal, 

821
00:44:29,680 --> 00:44:31,920
dass ich mir denke so man kann 
sich ja hinstellen und sagen ich

822
00:44:31,920 --> 00:44:34,720
bin Entwickler, ich möchte 
gerne, dass das so gemacht wird 

823
00:44:35,280 --> 00:44:37,280
und wenn ich da selber zum 
Beispiel mal darüber nachdenke 

824
00:44:37,280 --> 00:44:40,200
und sage, OK, wie würde ich denn
sowas beschreiben, denk ich mir 

825
00:44:40,200 --> 00:44:42,960
auch manchmal so. 
Gar nicht so einfach, unbedingt 

826
00:44:42,960 --> 00:44:45,760
ne und klar ist es nicht immer 
einfach, wenn man was Neues 

827
00:44:45,760 --> 00:44:47,440
macht. 
Wie ich schon meinte, aber es 

828
00:44:47,440 --> 00:44:50,320
lohnt sich halt am Ende ne und 
da finde ich ist es halt einfach

829
00:44:50,320 --> 00:44:52,560
ne gute Gelegenheit. 
Man kann ja auch nur besser 

830
00:44:52,560 --> 00:44:55,600
werden und ich denk mir so 
selbst ne. 

831
00:44:56,640 --> 00:44:59,680
Gerkin Schreibweise einer Story 
meiner Meinung nach ist immer 

832
00:44:59,680 --> 00:45:03,480
noch besser als irgendeine 
technische irgendwas wulst e 

833
00:45:03,480 --> 00:45:05,840
Mail reinkopiert so und so soll 
es werden. 

834
00:45:05,840 --> 00:45:08,840
Mach mal bitte und dann hast du 
irgendwas wo du denkst OK ich 

835
00:45:08,840 --> 00:45:13,680
hab 1000 fragen ne wo du aber im
Endeffekt wirklich mehr darüber 

836
00:45:13,680 --> 00:45:16,160
versuchst nachzudenken was 
eigentlich wirklich gemacht 

837
00:45:16,160 --> 00:45:18,480
werden soll, was überhaupt nicht
aus Usersicht. 

838
00:45:19,600 --> 00:45:23,600
Irgendwie dargestellt ist, 
sondern eher so aus technischer 

839
00:45:23,680 --> 00:45:27,840
Insider Sicht sag ich jetzt mal 
ne, das ist dann irgendwie Käse,

840
00:45:28,080 --> 00:45:33,680
also klar Overhead, neue 
Gedanken, neue Sichtweise, aber 

841
00:45:34,320 --> 00:45:35,600
ich würd sagen es lohnt sich 
dennoch. 

842
00:45:36,880 --> 00:45:39,720
Auf jeden Fall. 
Natürlich bringt es nicht nur 

843
00:45:39,720 --> 00:45:43,840
Overhead mit sich, sondern auch 
wie jede Strategie ne, nichts 

844
00:45:43,840 --> 00:45:46,920
ist perfekt. 
Oder nichts ist für jedes Team 

845
00:45:46,920 --> 00:45:49,360
geeignet oder für jedes Projekt.
Man muss halt immer 

846
00:45:49,360 --> 00:45:53,120
differenzieren, bringt es uns in
unserem aktuellen Projekt was 

847
00:45:53,120 --> 00:45:58,800
oder nicht, deswegen würde ich 
gerne ja das ganze noch mal so n

848
00:45:58,800 --> 00:46:01,600
bisschen durchspielen mit dir, 
wie man jetzt quasi. 

849
00:46:02,000 --> 00:46:05,040
Ja, wie Havia Driven Development
betreiben kann. 

850
00:46:05,040 --> 00:46:07,080
Wir haben ja eigentlich jeden 
Punkt besprochen, ich würd es 

851
00:46:07,080 --> 00:46:09,040
gerne noch mal n bisschen 
zusammenfassen, so als kleiner 

852
00:46:09,040 --> 00:46:13,920
Überblick und aber dann speziell
mal auf unsere Sicht der Dinge 

853
00:46:13,920 --> 00:46:16,800
eingehen. 
Was ist der Vorteil jetzt dabei 

854
00:46:16,880 --> 00:46:20,000
und was ist ne Herausforderung, 
die wir vielleicht auch selbst 

855
00:46:20,480 --> 00:46:24,560
da einfach schon erlebt haben, 
weil man muss ja fair sein wir 

856
00:46:24,760 --> 00:46:28,800
es ist jetzt nicht der heilige 
Gral so ne wie alles, so jede 

857
00:46:28,800 --> 00:46:31,440
Strategie die wir oder designen 
was wir besprechen. 

858
00:46:31,920 --> 00:46:34,240
Und deswegen würd ich einfach 
mal starten. 

859
00:46:34,240 --> 00:46:37,200
Ne, Wir haben ja gesagt es geht 
darum ne klare Kommunikation zu 

860
00:46:37,200 --> 00:46:40,640
fahren, ne und wenn man jetzt so
das ganz prozesstechnisch 

861
00:46:40,640 --> 00:46:45,280
betrachtet so Lehrbuchhaft wie 
du immer sagst beginnt halt BDD 

862
00:46:45,280 --> 00:46:48,720
genau da und man sagt man hat so
ne Discovery Phase ne dass man 

863
00:46:48,720 --> 00:46:51,680
sagt wir sorgen jetzt erstmal 
dafür, dass wir n gemeinsames 

864
00:46:51,680 --> 00:46:54,960
Verständnis haben, ne dass alle 
verstehen worum es geht und 

865
00:46:54,960 --> 00:46:58,400
warum wir das machen und das 
find ich ist ne sehr ist n sehr 

866
00:46:58,400 --> 00:47:00,880
wichtiger Schritt, den haben wir
ja auch schon jetzt wirklich. 

867
00:47:01,440 --> 00:47:03,680
Viel besprochen, aber noch mal 
ganz kurz. 

868
00:47:04,640 --> 00:47:07,000
Was ist eigentlich das Problem, 
was wir lösen wollen? 

869
00:47:07,000 --> 00:47:10,960
Was will der User von uns? 
Das sind so die Fragen, die man 

870
00:47:10,960 --> 00:47:15,280
da klären muss auf einer 
allgemeinen Sprache und dieser 

871
00:47:15,280 --> 00:47:17,840
Schritt ist so essentiell, warum
ich es jetzt noch mal explizit 

872
00:47:17,840 --> 00:47:21,440
anspreche, wie oft lesen wir in 
der Community oder bringen wir 

873
00:47:21,440 --> 00:47:25,680
auch selbst in die Community 
rein, das ist so echt top. 3 der

874
00:47:25,680 --> 00:47:27,840
Probleme könnt es sogar auf 
Platz 1 sein, aber es ist 

875
00:47:27,840 --> 00:47:29,760
mindestens top 3 würde ich 
sagen. 

876
00:47:30,080 --> 00:47:32,960
Sind. 
Man fühlt sich als Entwicklerin 

877
00:47:32,960 --> 00:47:37,200
oder Entwickler einfach Lost, 
weil Anforderungen einfach 

878
00:47:37,200 --> 00:47:40,520
nullklar sind. 
So richtig schön unklar, man 

879
00:47:40,520 --> 00:47:42,760
weiß eigentlich gar nicht, was 
genau zu tun ist. 

880
00:47:42,760 --> 00:47:45,680
Man entwickelt erstmal, weil man
muss ja vorwärts kommen, man hat

881
00:47:45,680 --> 00:47:48,840
Projektdruck und am Ende ist es 
vielleicht auch noch komplett 

882
00:47:48,840 --> 00:47:51,920
falsch und muss noch mal von 
vorne anfangen und genau mit 

883
00:47:51,920 --> 00:47:57,360
dieser Discovery Phase. 
Sorgt BDD dafür, da Struktur da 

884
00:47:57,360 --> 00:48:01,920
wirklich endlich mal Struktur 
reinzubringen und zu versuchen, 

885
00:48:01,920 --> 00:48:04,320
genau nicht mehr in diese Falle 
zu tappen? 

886
00:48:04,480 --> 00:48:07,600
Ich finde, wenn man das jetzt so
in den Arbeitsalltag integrieren

887
00:48:07,600 --> 00:48:11,040
würde, zum Beispiel agiles 
Framework, hast du halt genau 

888
00:48:11,040 --> 00:48:14,480
den Punkt. 
Jemand schreibt diese Stories. 

889
00:48:14,800 --> 00:48:17,280
Und die werden dann zum Beispiel
im Refinement einfach noch mal 

890
00:48:17,280 --> 00:48:20,160
durchgegangen. 
Das heißt, du also, da wird ja 

891
00:48:20,160 --> 00:48:22,320
quasi im ganzen Team noch mal 
besprochen, was ist denn jetzt 

892
00:48:22,320 --> 00:48:24,640
eigentlich der User Value, 
welche Probleme haben wir denn 

893
00:48:24,640 --> 00:48:26,800
eigentlich und ist es überhaupt 
sinnvoll, das Ganze zu machen? 

894
00:48:26,960 --> 00:48:30,240
So, und dann kannst du genau das
an dieser Stelle adressieren, so

895
00:48:30,240 --> 00:48:34,160
dass es für mich zumindest 
irgendwie diese Discovery Face 

896
00:48:34,160 --> 00:48:37,760
ne gehört irgendwie so n 
bisschen mit da rein, also so im

897
00:48:37,920 --> 00:48:41,680
ja, ich sag mal in in in den in 
den echten Arbeitsalltag 

898
00:48:41,680 --> 00:48:45,360
integriert, ne. 
Ja, ja, das verschmilzt ja auch.

899
00:48:45,520 --> 00:48:48,760
Du hast ja dann im Lehrbuch noch
so ne formulation Phase, so als 

900
00:48:48,760 --> 00:48:51,760
zweites ne, das verschmilzt halt
irgendwo dann. 

901
00:48:51,760 --> 00:48:55,200
Aber wichtig ist, dass man 
diesen Inhalt versteht dieser 

902
00:48:55,200 --> 00:48:57,720
Phasen und die lebt sozusagen, 
weil du jetzt meintest 

903
00:48:57,720 --> 00:48:59,640
Refinement. 
Jetzt kann ja jemand sagen hä 

904
00:48:59,680 --> 00:49:04,080
laut Lehrbuch schreiben wir 
jetzt aber erst ja die Tickets 

905
00:49:04,080 --> 00:49:08,560
in gerkin Format ja OK, ist 
alles gut, beruhigen wir uns 

906
00:49:08,560 --> 00:49:12,800
alle mal wieder. 
Aber im Prinzip sind das so die 

907
00:49:12,800 --> 00:49:17,440
Phasen, ja, und die Phase 2 sagt
jetzt, jetzt schreiben wir das 

908
00:49:17,440 --> 00:49:19,400
Ganze, diese Szenarien, wir 
haben jetzt da drüber 

909
00:49:19,400 --> 00:49:21,960
gesprochen, wir wissen, was es 
für Szenarien gibt, und die 

910
00:49:21,960 --> 00:49:24,800
werden jetzt quasi genau in 
dieser einheitlichen Sprache 

911
00:49:24,800 --> 00:49:27,440
aufgeschrieben. 
Ja, und dann so gut lesbar für 

912
00:49:27,440 --> 00:49:30,560
alle, damit mein ich nicht die 
Schriftgröße oder so, sondern 

913
00:49:30,560 --> 00:49:35,440
halt, dass es so fachlich ist, 
dass jeder es versteht, ja und 

914
00:49:35,520 --> 00:49:43,040
und so gut und. 
Deswegen, das ist n Punkt muss 

915
00:49:43,040 --> 00:49:46,480
ich sagen, nutzen wir super gern
für unsere Tickets. 

916
00:49:47,040 --> 00:49:50,400
Also diesen Schritt wirklich 
ausführlich zu machen und zu 

917
00:49:50,400 --> 00:49:53,960
sagen mit dieser Schreibweise 
Wir sind dran gewöhnt wir diese 

918
00:49:53,960 --> 00:49:55,960
Buzzwords. 
Ja man schreibt die ja auch oft 

919
00:49:55,960 --> 00:50:00,080
so capslock, dass du sagst given
when when und du kannst einfach.

920
00:50:00,720 --> 00:50:03,040
Sag ich mal. 
Tickets unfassbar schnell 

921
00:50:03,040 --> 00:50:05,200
scannen und wenn du jetzt zum 
Beispiel von einem Refinement 

922
00:50:05,200 --> 00:50:08,000
sprichst, wo nicht jeder auf dem
Schirm hat, um welches Ticket es

923
00:50:08,000 --> 00:50:10,960
gerade geht, dann kriegt jeder 
seine Minute und danach ist 

924
00:50:10,960 --> 00:50:13,120
klar, worum es geht und dann 
kann man zusammen noch mal 

925
00:50:13,120 --> 00:50:15,720
drüber sprechen. 
Genau, und das ist so ein riesen

926
00:50:15,720 --> 00:50:18,480
Benefit am Ende. 
Und das ist genau wichtig, weil 

927
00:50:18,880 --> 00:50:22,480
du einfach sofort verstehst, was
da passieren soll. 

928
00:50:22,480 --> 00:50:24,240
Und es geht nicht um die 
technische Seite. 

929
00:50:24,240 --> 00:50:27,840
Scheiß auf die technische Seite,
es geht nur darum was was was 

930
00:50:27,840 --> 00:50:30,960
ist eigentlich gewollt so. 
Fertig. 

931
00:50:30,960 --> 00:50:32,960
Genau. 
Und das ist auf jeden Fall 

932
00:50:32,960 --> 00:50:34,640
wichtig. 
Ja, und dann, wenn du jetzt 

933
00:50:34,640 --> 00:50:36,840
schon bei den ganzen offiziellen
Phasen bist, kommt ja die 

934
00:50:36,840 --> 00:50:39,000
Automation Phase wo du dann 
sagst, OK, du hast jetzt 

935
00:50:39,000 --> 00:50:41,320
vielleicht irgendwie Tools wie 
zum Beispiel Cubecome habe ich 

936
00:50:41,320 --> 00:50:44,320
noch nie mitgearbeitet, bietet 
sowas was du vorhin meintest 

937
00:50:44,320 --> 00:50:47,120
auch mit so einer gärkchen 
Schreibweise oder wie wir es 

938
00:50:47,120 --> 00:50:49,040
vorhin besprochen haben und dann
gießt du halt eben die 

939
00:50:49,040 --> 00:50:50,960
entsprechenden Anforderungen, 
die du irgendwie in der gärkchen

940
00:50:50,960 --> 00:50:53,240
Schreibweise von deiner Story 
hast, in die entsprechenden 

941
00:50:53,240 --> 00:50:55,520
Tests und hast die dann halt 
sozusagen einmal. 

942
00:50:55,520 --> 00:50:57,760
Ja und? 
Dann sind wir so in dem tdd 

943
00:50:57,760 --> 00:51:01,040
Zyklus am Ende genau genau. 
Kann man so sagen, ne, also du 

944
00:51:01,040 --> 00:51:04,120
hast denn natürlich ich. 
Also ich hab jetzt meine Tests, 

945
00:51:04,120 --> 00:51:06,560
die daraus resultieren wie du 
meintest ich implementier sie 

946
00:51:06,560 --> 00:51:09,760
sehe, dass sie erfolgreich sind,
hab denn im Prinzip auch meine 

947
00:51:09,760 --> 00:51:14,560
Schleifen wieder meine Feedback 
und Factoring schleifen und zieh

948
00:51:14,560 --> 00:51:17,600
das dann so durch bis es 
abgeschlossen ist bis ich sage 

949
00:51:17,600 --> 00:51:21,600
jetzt ist es sag ich mal stabil 
ne also jetzt ist der Userwunsch

950
00:51:21,600 --> 00:51:24,720
umgesetzt und funktioniert 
genauso wie der User sich das 

951
00:51:24,720 --> 00:51:27,920
wünscht nächstes Ticket nächste 
Story ja dann ist das 

952
00:51:27,920 --> 00:51:31,720
abgeschlossen. 
Genau, aber ich würd gern noch 

953
00:51:31,720 --> 00:51:34,400
mal so auf n paar 
Herausforderungen eingehen. 

954
00:51:34,960 --> 00:51:37,480
Würdest du sagen es gibt aber 
Projekte wo es keinen Sinn 

955
00:51:37,480 --> 00:51:40,920
macht? 
Es gibt immer irgendwie was, wo 

956
00:51:40,920 --> 00:51:42,440
es keinen Sinn macht würd ich 
sagen. 

957
00:51:42,800 --> 00:51:48,120
Es sind 99% der Fälle oder also 
es ist halt, es ist halt oft so.

958
00:51:48,120 --> 00:51:51,960
Es ist natürlich, wenn du wie 
wir auch bei DDD schon gesagt 

959
00:51:51,960 --> 00:51:55,360
haben, je komplexer irgendwas 
ist desto mehr Techniken. 

960
00:51:55,560 --> 00:51:57,040
Bräuchtest. 
Das heißt, wenn du jetzt aber 

961
00:51:57,040 --> 00:52:00,160
zum Beispiel sagst, du hast 
kleine Projekte oder du hast zum

962
00:52:00,160 --> 00:52:03,440
Beispiel, Du entwickelst eine 
Library, die zum Beispiel sehr 

963
00:52:03,440 --> 00:52:06,600
technisch ist, wie willst du da 
großartig fachlich werden, so 

964
00:52:06,600 --> 00:52:09,920
als Idee ne oder zum Beispiel, 
du willst irgendwie so Proof of 

965
00:52:09,920 --> 00:52:14,560
Concept machen und Prototyping, 
ein MVP schnell irgendwie 

966
00:52:14,560 --> 00:52:17,120
rausballern, dann hast du halt 
einfach ein anderes Ziel 

967
00:52:17,120 --> 00:52:21,680
dahinter einen anderen, ich sag 
mal n anderen Purpose der 

968
00:52:21,680 --> 00:52:23,960
dahinter steckt und dann 
brauchst du jetzt nicht 

969
00:52:23,960 --> 00:52:28,720
unbedingt mit BDD anfangen, 
heißt aber nicht, dass man es 

970
00:52:28,720 --> 00:52:31,600
komplett gar nicht machen 
sollte, oder vielleicht sag ich 

971
00:52:31,600 --> 00:52:35,040
mal TDD, wenn man jetzt zum 
Beispiel trotzdem aber ne 

972
00:52:35,040 --> 00:52:39,200
gewisse, Ich sag mal Sicherheit 
für seine Software haben möchte,

973
00:52:39,200 --> 00:52:42,240
kannst du ja trotzdem irgendwie 
das ganze so ich sag mal so ne 

974
00:52:42,240 --> 00:52:45,920
Art Mischmasch ne oder so n 
Ansatz da zu fahren, aber es wie

975
00:52:45,920 --> 00:52:47,840
gesagt es lohnt sich nicht immer
den kompletten. 

976
00:52:49,360 --> 00:52:51,840
Wurf da drauf zu machen auf 
alles was man tut. 

977
00:52:53,120 --> 00:52:55,440
Ja genau. 
Also ich find so ne technische 

978
00:52:55,440 --> 00:52:59,120
Library ist n gutes Beispiel die
ich nach Mithilfe von TDD 

979
00:52:59,120 --> 00:53:01,840
entwickeln kann, aber BDD 
vielleicht keinen Sinn macht, 

980
00:53:01,840 --> 00:53:03,120
weil ich halt auch gar nicht 
weiß. 

981
00:53:03,360 --> 00:53:05,240
Also wo ist der User Value am 
Ende? 

982
00:53:05,240 --> 00:53:07,280
Ne wenn ich jetzt zum Beispiel 
so Berechnungen mache hatten wir

983
00:53:07,280 --> 00:53:09,680
ja vorhin als Beispiel, ich kann
ja auch ne ganze Library haben 

984
00:53:09,680 --> 00:53:13,040
an Berechnungsfunktion ja die 
irgendwelche mathematischen 

985
00:53:13,040 --> 00:53:17,520
Formeln abbilden oder so. 
Dann bin ich ganz bei dir, wie? 

986
00:53:17,520 --> 00:53:23,160
Ja, also wie will ich das 
formulieren, dann am Ende ja ich

987
00:53:23,160 --> 00:53:28,160
würd sagen wir haben es coole 
Folge zusammengefasst. 

988
00:53:28,640 --> 00:53:32,960
BDD ist irgendwie so 
kommunikationsgetriebenes TDD. 

989
00:53:34,320 --> 00:53:37,360
Wenn man so auch noch mal sich, 
das sag ich mal, auf der Zunge 

990
00:53:37,360 --> 00:53:39,520
zergehen lässt und drüber 
nachdenkt, kann man sagen, dass 

991
00:53:39,520 --> 00:53:43,600
wir schon mehr Richtung BDD 
gehen als klassisches TDD. 

992
00:53:44,240 --> 00:53:46,320
Ich kann nicht versprechen, dass
ich jetzt immer sage, ja, wir 

993
00:53:46,320 --> 00:53:51,200
arbeiten nach BDD, ich glaub für
mich ist es weiter TDD, aber 

994
00:53:51,440 --> 00:53:54,960
Fakt ist, und das ist die Key 
Message kommunikationsgetrieben,

995
00:53:54,960 --> 00:53:59,200
also wirklich die Kommunikation 
und das fachliche in den Fokus 

996
00:53:59,200 --> 00:54:02,240
stellen um einfach daraus die 
Benefits zu ziehen. 

997
00:54:02,800 --> 00:54:05,400
Und das macht absolut Sinn. 
Und das Ziel verfolgen wir ja 

998
00:54:05,400 --> 00:54:08,320
auch und deswegen kann man da 
auch von BDD bei uns privat 

999
00:54:08,320 --> 00:54:10,160
jetzt oder im beruflichen 
Kontext sprechen. 

1000
00:54:10,320 --> 00:54:15,120
Ja. 
Ja, ansonsten falls es Fragen 

1001
00:54:15,120 --> 00:54:19,040
dazu gibt, Liebe Zora, Liebe 
Zora, du weißt es vielleicht 

1002
00:54:19,040 --> 00:54:21,000
schon, ansonsten sag ich es 
jetzt noch mal. 

1003
00:54:21,000 --> 00:54:23,000
In den Shownotes findest du 
unsere Mail, da kannst du uns 

1004
00:54:23,000 --> 00:54:25,440
drüber erreichen. 
Stell dir gerne die Fragen, wir 

1005
00:54:25,600 --> 00:54:28,600
antworten super super gerne, 
ansonsten schau auf unserem 

1006
00:54:28,600 --> 00:54:32,080
Discord vorbei, kannst auch da 
gibt es n Feedback Channel. 

1007
00:54:32,720 --> 00:54:36,800
Wo denn auch quasi andere Leute 
aus der Community ihre Meinung 

1008
00:54:36,800 --> 00:54:39,600
dazu kundtun können. 
Und das machen Sie auch sehr 

1009
00:54:39,600 --> 00:54:41,040
gerne. 
Es ist immer n supergeiler 

1010
00:54:41,040 --> 00:54:44,320
Austausch ich freue oder ich was
heißt ich wir beide freuen uns 

1011
00:54:44,320 --> 00:54:47,080
immer wenn es zu einer Folge 
Feedback gibt und dann quasi die

1012
00:54:47,080 --> 00:54:51,600
Diskussion so auf den Discord 
weitergeführt wird, weil ganz 

1013
00:54:51,600 --> 00:54:55,040
klar, das war jetzt quasi die 
Sicht von Fabi und mir zu dem 

1014
00:54:55,040 --> 00:54:57,360
Thema ne und es gibt 
unterschiedliche Sichtweisen 

1015
00:54:57,360 --> 00:55:00,320
dazu. 
Ansonsten, wenn der Podcast 

1016
00:55:00,320 --> 00:55:04,920
weiterhin gefällt oder ab jetzt 
gefällt, wie auch immer, findest

1017
00:55:04,920 --> 00:55:08,200
du auch n Spendenlink in den 
Shownotes würden wir uns mega 

1018
00:55:08,200 --> 00:55:11,520
drüber freuen, ansonsten lass 
auch gerne ne Bewertung, da 

1019
00:55:11,520 --> 00:55:14,440
Teile den Podcast abonnier den 
Podcast. 

1020
00:55:14,440 --> 00:55:16,920
Es gibt auch so ne absolut 
abgefahrene Glocke die man 

1021
00:55:16,920 --> 00:55:19,560
drücken kann um immer 
benachrichtigt zu werden, kommt 

1022
00:55:19,560 --> 00:55:23,440
richtig cool, ansonsten sehen 
wir uns alle nee hören wir uns 

1023
00:55:23,440 --> 00:55:26,600
alle nächste Woche wieder, habt 
ne schöne Zeit bis dahin fabi 

1024
00:55:26,600 --> 00:55:31,600
wir sehen uns sogar. 
Und bis dahin eure Coding 

1025
00:55:31,600 --> 00:55:36,160
Buddies gemeinsam besser. 
Vielleicht so nicht so 

1026
00:55:36,240 --> 00:55:40,800
Deutschland, ne die die die die 
die die die die die die das 

1027
00:55:40,800 --> 00:55:42,800
könnte könnte auch so ein 
richtig geiler Rap sein.

