Einführung in Episode 'Secrets Not Included'
00:00:00
Kai Ole Hartwig
Willkommen zurück zu einer hervorragenden, fantastischen neuen Folge Secrets Not Included mit Daniel und Ole.
00:00:10
Kai Ole Hartwig
Und letzte Woche haben wir euch angekündigt, wir wollen ein bisschen nochmal über Agentic Engineering sprechen.
00:00:18
Daniel Langemann
Ja, jetzt hatten wir fünf Minuten Zeit, uns vorzubereiten.
00:00:21
Daniel Langemann
Stimmt, tut mir leid.
00:00:23
Kai Ole Hartwig
Daniel, seit wann bereitest du dich vor?
00:00:25
Kai Ole Hartwig
Ich finde, das ist unprofessionell.
00:00:29
Kai Ole Hartwig
Also, du kannst jetzt nicht behaupten, du würdest dich vorbereiten zu einem Podcast oder vorbereitet in Meetings gehen.
00:00:38
Kai Ole Hartwig
Nachher können, also, nee, nee, bitte.
00:00:41
Kai Ole Hartwig
Nachher weißt du noch etwas und kannst noch etwas, das würde jetzt alle Menschen davon abhalten, nichts zu wissen.
00:00:47
Daniel Langemann
Wollen ihr nicht übertreiben, ja?
00:00:48
Daniel Langemann
Ja, soll ja Spaß machen.
00:00:49
Kai Ole Hartwig
Ja, genau, also nicht overperformen hier, vor allem nicht im Podcast, bitte.
00:00:55
Kai Ole Hartwig
Ja, es geht ja nicht, dass wir irgendwas wissen können oder sonst irgendetwas.
AI im Software-Entwicklungsprozess
00:01:01
Kai Ole Hartwig
Deswegen lassen wir ja eigentlich auch Vibe-Coding-mäßig die KI alles programmieren.
00:01:06
Kai Ole Hartwig
Ja, und chillen hier halt und machen nur nette Podcasts und ansonsten trinken wir den ganzen Tag über Kaffee oder Tee oder beides.
00:01:13
Daniel Langemann
Das mache ich ohne Podcast doch auch.
00:01:14
Daniel Langemann
Also ich verstehe den Unterschied nicht.
00:01:16
Daniel Langemann
Sehr gut.
00:01:17
Daniel Langemann
Mit Bierchen.
00:01:17
Daniel Langemann
Zu streamen.
00:01:21
Kai Ole Hartwig
Der Unterschied ist, dass wir im Podcast halt miteinander quatschen und dabei trinken.
00:01:27
Kai Ole Hartwig
Alkoholfreie Getränke.
00:01:30
Kai Ole Hartwig
Vielleicht sollten wir mal so eine Abendsession machen.
00:01:37
Kai Ole Hartwig
Das müssten wir aber als Live-Podcast machen.
00:01:39
Kai Ole Hartwig
Das wäre auch noch eine Idee.
00:01:45
Daniel Langemann
Bin dabei.
00:01:45
Kai Ole Hartwig
Ich weiß noch nicht, ob das... Mal schauen, mal schauen.
00:01:49
Kai Ole Hartwig
Also, falls ihr das haben wollt, dann müsstet ihr mal kommentieren.
00:01:53
Kai Ole Hartwig
Wo auch immer ihr kommentiert, bei Instagram oder Spotify oder Apple Podcast.
00:01:57
Kai Ole Hartwig
Wir werden das dann drei Wochen später oder so lesen und zur Kenntnis nehmen.
00:02:04
Kai Ole Hartwig
Ja, Agentic Engineering wollten wir eigentlich drüber quatschen.
00:02:11
Kai Ole Hartwig
So, was gibt's da zu sagen, Daniel?
00:02:11
Kai Ole Hartwig
Ach, die ich dir geben müsste, okay.
00:02:12
Kai Ole Hartwig
Hast du mir letzte Woche nicht zugehört?
00:02:15
Daniel Langemann
Also ich würde mal mit der Definition anfangen, die ich nicht gelesen habe und die du mir jetzt geben müsstest, weil ich habe keine Ahnung von dem Thema.
00:02:24
Daniel Langemann
Also ich bin ehrlich, was?
00:02:33
Kai Ole Hartwig
Ja, also für mich und ich glaube, das ist die lebende Definition, die wir gerade so, der lebende Konsent, den es so gibt, ist Vibe Coding.
00:02:46
Kai Ole Hartwig
Du sagst, der KI, bau mir das neue Slack für meine Company.
00:02:56
Daniel Langemann
Ja, genau.
00:02:56
Daniel Langemann
Ja, dann kannst du ein Scheren.
00:02:57
Kai Ole Hartwig
mach das ohne Fehler.
00:03:02
Kai Ole Hartwig
Der Hype für, also der Trick für alle Hype-Performer immer hinten, mach keine Fehler und mach eine Million-Dollar-Company raus.
00:03:14
Kai Ole Hartwig
So, und dann nimmst du das Ding und dann läuft das auf Localhost 3000 oder so und sagst, hey, ich habe das geile neue Ding hier hochgezogen, war eine Sache von zwei Stunden und alles lief.
00:03:30
Kai Ole Hartwig
Und Agentic Engineering ist die Weiterentwicklung der Softwareentwicklung, des Programmierens oder des Entwicklens.
00:03:40
Kai Ole Hartwig
Ich finde, Programmieren haben wir lange schon nicht mehr gemacht, weil Programmieren war dieses, jemand produziert einfach Code runter, so Code-Monkey-mäßig.
00:03:51
Kai Ole Hartwig
Und Entwicklung war schon lange, länger dieses Thema mit, okay, wir haben ein Problem und wir überlegen uns, wie lösen wir das in der Softwareentwicklung.
00:04:05
Kai Ole Hartwig
Ja, vom Problem angefangen zur Software zu fertigen und Agentic Engineering ist jetzt im Prinzip,
00:04:15
Kai Ole Hartwig
Du hast jemand, der kann Software entwickeln, der versteht die Prinzipien, der könnte selber programmieren, wenn er Lust dazu hat.
00:04:26
Kai Ole Hartwig
Und geht jetzt hin und arbeitet mit Methoden wie Spectrum Development, über das wir auch schon gesprochen haben, mit der KI zusammen.
00:04:36
Kai Ole Hartwig
In einer Form, dass die KI spezifizierte Aufgaben bekommt, die dann auch wieder überprüft werden, ob sie denn entsprechend ausgeführt wurden.
Herausforderungen der KI-gestützten Programmierung
00:04:49
Daniel Langemann
Also eher zum Code generieren und zum Sparring vorher so ein bisschen, das Back-Driven.
00:04:51
Kai Ole Hartwig
Genau, die... Ja, genau, also du hast einen KI-gestützten Entwicklungsprozess.
00:05:01
Kai Ole Hartwig
Und hast selber aber die Fähigkeiten, auch das selber tun zu können, um halt das vollständig zu beurteilen.
00:05:09
Kai Ole Hartwig
Also das heißt, du hast quasi das Ownership, Best-Wort-Bingo heute so ein bisschen, aber den Ownership über den Coach weiter, der da rauskommt.
00:05:16
Daniel Langemann
Oh ja, ich brüll gleich Bingo.
00:05:23
Daniel Langemann
Hast du so oder so?
00:05:24
Daniel Langemann
Also du haftest ja auch als Unternehmer für das, was du produzierst.
00:05:27
Daniel Langemann
Aber anderes Thema.
00:05:28
Kai Ole Hartwig
Anderes Thema.
00:05:30
Kai Ole Hartwig
Nicht schon wieder so ein juristisches Ausschweife hier heute, bitte.
00:05:34
Kai Ole Hartwig
Aber du gehst halt hin und hast das Ownership, ja, also das heißt, du prüfst auch, du bist verantwortlich dafür, was dort passiert ist und das hast du halt beim BIP-Coding ja irgendwie nur implizit und hier halt ganz explizit.
00:05:49
Kai Ole Hartwig
Ja, so wie früher in der Softwareentwicklung, du bist verantwortlich für den Shit, der da rauskommt.
00:05:54
Kai Ole Hartwig
aber du hast einen KI-geschützten Prozess.
00:05:57
Kai Ole Hartwig
Der unterstützt dich halt vielleicht schon bei dem Weg der Spezifikation.
00:06:03
Kai Ole Hartwig
Ja, das wäre dieses, wir machen Spectrum Development, also wir sagen, okay, wir möchten dieses Thema lösen und dann schreibst du deine Spezifikation auf KI-gestützt und hast dann nachher deine Tasks und diese Tasks sind ja im Prinzip dafür da, dass die KI das dann auch wieder abarbeitet und halt quasi die KI dein Code-Monkey ist, dein Programmierer.
00:06:25
Kai Ole Hartwig
Ja, deswegen der Job des Programmierers, der einfach nur Code schreibt,
00:06:30
Kai Ole Hartwig
wenn der nicht schon vor zehn Jahren tot war, jetzt ist er tot.
00:06:35
Kai Ole Hartwig
Aus meiner Sicht.
00:06:36
Kai Ole Hartwig
Weil das kann die KI halt tatsächlich einfach schneller.
00:06:40
Kai Ole Hartwig
Und die hat das halt mittlerweile ja so viele Trainingsdaten gehabt, dass die Qualität halt auch
00:06:48
Kai Ole Hartwig
in Ordnung ist.
00:06:50
Kai Ole Hartwig
Man muss das reviewen, man muss da Leitplanken einbauen mit den Spezifikationen, was Sicherheit, was Architektur etc.
00:07:00
Kai Ole Hartwig
Das muss man auch reviewen, aber manchmal vergisst die Dinge.
00:07:04
Daniel Langemann
Ja, das große Problem finde ich aber, dass du mittlerweile, ich glaube, mehr Zeit, also ich rede jetzt nur von mir, ich habe keine Studien dazugelesen, aber ich glaube, ich investiere mehr Zeit, mit der KI zu reden, zu diskutieren und zu reparieren,
00:07:18
Daniel Langemann
was sie baut, als manchmal, weiß ich nicht, wenn ich mich klonen könnte, ob der Daniel, der fleißig alles runtertippt, schneller wäre.
00:07:27
Daniel Langemann
Also ein anderes Beispiel ist so, gerade wenn es Präsentationen gibt, hast du dieses leere Blattproblem.
00:07:33
Daniel Langemann
Also ich bin ganz schlecht darin, mich hinzusetzen und zu sagen, ich mache eine Präsentation.
00:07:37
Daniel Langemann
Also kann ich sagen, KI, mach mal.
00:07:39
Daniel Langemann
Sie rotzt da was hin.
00:07:41
Daniel Langemann
Ich gucke an und sage, das ist okay, aber das gefällt mir nicht, das gefällt mir nicht, das gefällt mir nicht.
00:07:45
Daniel Langemann
Und dann kann ich anfangen umzubauen und bin schnell.
00:07:48
Daniel Langemann
Und gerade dieses Umbauen ist eigentlich, also beim Programmieren oder beim Softwareentwickeln, sagen wir mal, bin ich tiefer drin, dann habe ich dieses weiße Blattproblem nicht so.
00:08:00
Daniel Langemann
Da sage ich der KI, mach mal.
00:08:03
Daniel Langemann
Mit Spec-Driven Development fange ich an, Sachen runter zu spezifizieren.
00:08:06
Daniel Langemann
Früher habe ich Tickets runtergeschrieben im Team.
00:08:08
Daniel Langemann
Wenn ich alleine war, habe ich trotzdem ähnlich irgendwie versucht, mich erstmal vorher zu sortieren.
00:08:13
Daniel Langemann
High-Level angefangen zu sagen, guck mal, was ist das Problem, wo kann, also bei Fehlersuche, wo kann es herkommen, was kann die Ursache sein oder bei Feature-Entwicklung, was möchten wir, was sind Nebenkriegsschauplätze, also will ich nicht mitmachen, was mache ich mit und habe mich dann so runterspezifiziert.
00:08:30
Daniel Langemann
Das gleiche ist jetzt mit Spectrum Development auch nur im Ping-Pong mit der KI erstmal.
00:08:34
Kai Ole Hartwig
Ja, so, meine Erfahrung, und dazu gibt es aber auch Paper, also es gibt ein Paper, das sagt, relativ neu auch, je häufiger die KI ein Dokument anfasst, also eine Datei oder irgendetwas, und da Veränderungen macht, macht, steigt die Wahrscheinlichkeit, dass Dinge kaputt gehen.
00:09:02
Kai Ole Hartwig
Verrückt, ne?
00:09:03
Kai Ole Hartwig
Also gibt es eine Untersuchung zu und das ist auch völlig, also man kann das nicht so genau eingrenzen, wann das passieren wird.
00:09:10
Kai Ole Hartwig
Ja, meine 7 versuchen mal 8, mal 20, so.
00:09:14
Kai Ole Hartwig
Also, das passiert.
00:09:16
Kai Ole Hartwig
Und natürlich, und das ist nämlich dieser Faktor mit, du musst das reviewen, sehe ich auch immer wieder bei mir Glitches oder AI-Slop, wo auf einmal etwas verändert wird, was überhaupt nichts mit der Aufgabe zu tun hat.
00:09:30
Kai Ole Hartwig
Ja, auch das, dazu gibt es Studien, die halt auch sagen, okay,
00:09:37
Kai Ole Hartwig
In 20% der Zeit war es, glaube ich, da gilt mich jetzt nicht auf die 20% fest, fest, macht die KI Dinge kaputt, die sie vorher richtig gemacht hat.
00:09:48
Kai Ole Hartwig
Einfach random, zwischendrin.
00:09:49
Kai Ole Hartwig
Das passiert einfach.
00:09:53
Kai Ole Hartwig
Und aus meiner Erfahrung mit dem Umgang heißt, wo jeder neuen Aufgabe das Kontextwindow zu lernen hilft,
00:10:11
Kai Ole Hartwig
abarbeitet.
00:10:16
Kai Ole Hartwig
Dann, Dann, was hatte ich gesagt?
00:10:19
Kai Ole Hartwig
Feature-Branch, kleiner Kontext.
00:10:21
Kai Ole Hartwig
Also selbst, dass das Kontext-Windows jetzt zum Beispiel bei Cloud Code eine Million ist, ja, ist total schön.
00:10:26
Kai Ole Hartwig
macht es schlimmer.
00:10:28
Kai Ole Hartwig
Also früher mal ein Clear oder Compress oder so, ist total sinnvoll, um die Qualität zu steigern.
00:10:37
Kai Ole Hartwig
So, und dann halt wirklich den Shit kontrollieren.
00:10:41
Kai Ole Hartwig
Du kommst nicht um eine Code Review rum.
00:10:44
Kai Ole Hartwig
Und da halt mittlerweile auch bei mir der Fokus ganz krass darauf, ist nur das geändert worden,
Code-Review und Qualitätssicherung
00:10:51
Kai Ole Hartwig
was ich erwarten würde.
00:10:53
Kai Ole Hartwig
Also an Dateien,
00:10:55
Kai Ole Hartwig
und dann anstellen und dann schaut ja die Pipeline schon, ob die Codequalität mal so in dem Rahmen ist, wo es sein soll, ne?
00:11:04
Daniel Langemann
Ja, also ich habe zum Beispiel, also genau, um bei dem Beispiel zu bleiben, bei mir fällt halt auf, die Zeit, die ich früher
00:11:04
Kai Ole Hartwig
Was Syntax und so weiter.
00:11:14
Daniel Langemann
vorne länger gebraucht hätte, brauche ich mindestens doppelt hinten beim Reviewen.
00:11:19
Daniel Langemann
Also ein Review-Prozess ist ja nicht etwas, was mich automatisch schneller macht, sondern wenn ich das eins zu eins vergleiche, damals beim Testen, war auch immer das Argument, ja, Testen macht mich langsamer.
00:11:32
Daniel Langemann
Ja, natürlich, im ersten Moment, weil ich auch Tests schreiben muss, aber hinten raus viel weniger Fehler habe und dadurch Zeit spare.
00:11:39
Daniel Langemann
Jetzt habe ich so das Gefühl, es ist genau das Gleiche mit KI macht mich schneller, das stimmt gar nicht, weil ich muss hinterher viel mehr reviewen und ich muss mich zum Beispiel in fremden Code einlesen, verstehen, was da passiert, reparieren, dann passiert mir zumindest immer wieder genau das, was du sagst, sagt die KI, oh ja, du hast recht, baut alles um und macht es noch schlimmer oder versteckt zwei andere Sachen, wo ich wieder von vorne anfange zu reviewen und ich verliere hinten raus viel mehr Zeit und
00:12:06
Daniel Langemann
Gerade in Themen, wo ich mich gut auskenne oder in Frameworks zum Beispiel, wo ich mich gut auskenne, wo ich sage, es gibt in Symfony oder in API-Plattformen gewisse Pattern, Sachen, die man macht oder nicht macht oder auch generell beim Programmieren, so Kontext irgendwie trennen, das kriegt die ganz schwer hin und klatscht dann zum Beispiel überall lustig Methoden irgendwo dran und dann findet man dreimal, fünfmal die gleiche Methode.
00:12:26
Kai Ole Hartwig
Ja, genau.
00:12:28
Kai Ole Hartwig
Und das ist halt das, was dann nachher auch das Vibe-Coding und das Agentic Engineering unterscheidet.
00:12:35
Kai Ole Hartwig
Dass du halt schaust, die KI so zu steuern mit deinen Specs auch, dass diese Dinge halt nicht passieren.
00:12:42
Daniel Langemann
Der macht keine Fehler am Ende.
00:12:42
Kai Ole Hartwig
Dass man halt
00:12:47
Kai Ole Hartwig
No new bugs, please.
00:12:51
Kai Ole Hartwig
So, und das ist halt eine Disziplin, ja.
00:12:53
Kai Ole Hartwig
Und ich glaube, dieses, oder mein Eindruck ist, mal von diesem Ich-Glaube-Wer wegzukommen, dass ganz häufig nur auf die Zeit des Programmierens, des Code-Erschaffens geschaut wird bei diesen Metriken.
00:13:07
Kai Ole Hartwig
Ein guter Freund von mir, den ich als Entwickler auch sehr, sehr schätze, hat mal gesagt, naja, für eine vernünftige Code-Review
00:13:18
Kai Ole Hartwig
benötigst du normalerweise mindestens die gleiche Zeit wie für das Programmieren.
00:13:26
Daniel Langemann
Ja, mindestens.
00:13:26
Daniel Langemann
Es könnte Projekte geben, wo es jetzt noch nicht gute Spezifikationen gibt.
00:13:27
Kai Ole Hartwig
So, und jetzt sehen wir halt, das verschiebt sich so krass, das Programmieren geht jetzt auf einmal viel schneller.
00:13:33
Kai Ole Hartwig
Wir schreiben jetzt aber viel bessere Spezifikationen auf einmal.
00:13:36
Kai Ole Hartwig
Also vielleicht wäre früher Programmieren auch schneller gegangen, wenn die Spezifikationen besser gewesen wären.
00:13:46
Kai Ole Hartwig
Ja, aber jetzt in der ganz heilen Welt schreiben wir jetzt ja Spectrum Development mäßig beim Agenting Engineering unsere hervorragenden Spezifikationen, die dazu führen, dass die KI halt sehr schnell sehr spezifischen Code entwickeln kann und möglichst wenig Fehler dabei produziert.
00:14:09
Daniel Langemann
Haben die extra Fehler gemacht?
00:14:09
Daniel Langemann
Ja, ja, genau.
00:14:09
Daniel Langemann
Ich habe die... Ja, genau.
00:14:10
Kai Ole Hartwig
Entwickler haben ja früher auch nicht fehlerfreie Sachen geschrieben.
00:14:17
Kai Ole Hartwig
Habe ich gehört.
00:14:19
Kai Ole Hartwig
Ich habe natürlich immer bugfrei geliefert.
00:14:23
Kai Ole Hartwig
Das waren immer andere.
00:14:25
Kai Ole Hartwig
Nie bei GitBlame bin ich, habe ich mich erst eine halbe Stunde aufgeregt, dann das GitBlame gemacht, um festzustellen, der Ole...
00:14:34
Daniel Langemann
Da war auch in einem Team irgendwo, also irgendjemand, so ein Freund von mir, war irgendwann beim Kunde vor Ort und wir waren glaube ich auch im Team Review, ich glaube wir waren drei oder fünf Entwickler sogar remote zugeschaltet in allem Gucken.
00:14:50
Daniel Langemann
Der Freund hat den Monitor geteilt.
00:14:54
Kai Ole Hartwig
Was ist das denn für scheiß Code hier?
00:14:57
Daniel Langemann
Richtig abgelästert so.
00:14:59
Daniel Langemann
Oh Mann, ich habe euch so oft gesagt, das ist der letzte Scheiß.
00:14:59
Kai Ole Hartwig
So hätte ich das ja niemals geschrieben.
00:15:05
Daniel Langemann
dann habe ich instinktiv GitBlame gemacht und da taucht da so mein Name auf und ich denke so, oh scheiße, das ist gleich aber groß.
00:15:10
Kai Ole Hartwig
Ey, natürlich hochprofessioneller Code.
00:15:13
Kai Ole Hartwig
Das ist die einzige akzeptable Lösung.
00:15:15
Kai Ole Hartwig
Vergiss, was ich bisher gesagt habe.
00:15:17
Daniel Langemann
Ja, es hatte bestimmt einen Grund, als ich das gebaut habe.
00:15:23
Daniel Langemann
Ja, natürlich haben wir auch Fehler gemacht damals oder immer.
00:15:26
Daniel Langemann
Ich baue jetzt immer noch den perfekten Code, also
00:15:26
Kai Ole Hartwig
Ja, ja, immer noch.
00:15:27
Kai Ole Hartwig
Also das ist so.
00:15:30
Kai Ole Hartwig
Da hat ja auch KI einfach nichts dran verändert, dass halt Fehler passieren und Fehler in den Codes drin sind.
00:15:39
Daniel Langemann
Mein großes Problem ist aber zum Beispiel, aktuell, wenn ich KI-geschriebenen Codes sehe, das, also ich kann es nicht anders beschreiben, das fühlt sich chaotisch an.
00:15:52
Daniel Langemann
Wenn ein Mensch Quelltext schreibt oder ein guter Entwickler zum Beispiel,
00:15:58
Daniel Langemann
dann hast du Text, der liest sich von oben nach unten, man erkennt eine rote Linie, wo er sagt, ich arbeite diesen Fall ab, wenn es diese Ausnahme gibt, gibt es einen Return, eine Exception oder eine andere Methode, die aufgerufen wird, das wird gekapselt und es liest sich halt wie so ein roter Faden durch.
00:16:15
Daniel Langemann
Und bei KI ist es oft so, dass du sagst, Alter, der springt von vorne nach hinten, von links nach rechts und ich kriege Kopfschmerzen beim Lesen, weil der immer wieder neuen Kontext aufmacht und
00:16:26
Daniel Langemann
Der liest, also macht irgendwelche Sachen, wenn das eintritt, dann kommen drei Fehlerbehandlungen.
00:16:31
Daniel Langemann
Wenn das eintritt, dann kommen da noch ein paar Fehlerbehandlungen.
00:16:34
Daniel Langemann
Dann gibt es einen Codeblock, der eigentlich gar keine Bedeutung mehr hat, weil der war vor fünf Schritten irgendwann mal wichtig, aber den hat die KI natürlich nicht aufgeräumt und ich habe ihn auch nicht entfernt, weil ich nicht wusste, dass er da ist.
00:16:47
Daniel Langemann
So wächst der Code dann.
00:16:48
Daniel Langemann
Und das habe ich jetzt schon mit ein paar Projekten gesehen, die mit Vibe Coding entstanden sind, wo du sagst, es funktioniert, es läuft alles glatt, aber
00:16:57
Daniel Langemann
Das Aufräumen nachher ist echt problematisch und das ist wie so, wenn du deinem Sohn oder deinem Kind sagst, räum dein Zimmer auf, das ist sauber, aber geh bloß nicht an die Schränke oder schau nicht unter das Bett, da findest du das Chaos und so fühlt sich das auch so ein bisschen vom Code an, also ich nutze auch super KI und ich bin auch super viel damit unterwegs,
00:17:18
Daniel Langemann
Also ganz außen vor, ich bin gar nicht dagegen, aber ich habe so meine Probleme einfach oder diese üblichen Wege, Sachen, die man ausprobiert hat, die für mich nicht funktioniert haben.
00:17:28
Kai Ole Hartwig
Definitiv, definitiv.
Sauberer Code und Spezifikationen
00:17:29
Kai Ole Hartwig
Also ich bin ja auch nicht der von Anfang an der größte Fan.
00:17:32
Kai Ole Hartwig
Also ich glaube, wir haben sehr früh damit gestartet und ich war da auch sehr euphorisch.
00:17:37
Kai Ole Hartwig
Und ich sage jetzt mal, ich lerne aus Schmerzen so ein bisschen.
00:17:42
Kai Ole Hartwig
Also für dein Bettproblem habe ich eine pragmatische Lösung Hochbett.
00:17:46
Kai Ole Hartwig
dann siehst du das.
00:17:46
Daniel Langemann
Da passt mehr drunter.
00:17:47
Kai Ole Hartwig
Und für die KI habe ich, ja, da passt auch mehr drunter, definitiv.
00:17:51
Kai Ole Hartwig
Aber du siehst es auch leichter.
00:17:52
Kai Ole Hartwig
Du musst dich nicht selber so.
00:17:55
Kai Ole Hartwig
Und naja, die KI muss durch die gleichen Quality Gates wie der menschliche Entwickler.
00:18:03
Kai Ole Hartwig
PHP-Stand, Clean Code.
00:18:06
Kai Ole Hartwig
Und was ich halt einfach mache, was heißt einfach, aber was wir mittlerweile machen, oder was ich eingeführt habe,
00:18:14
Kai Ole Hartwig
ist, natürlich muss der auch PHP-Stand etc.
00:18:19
Kai Ole Hartwig
So, aber wir haben halt auch einfach ein Skill, Clean Code, ja, nach, ja, Bob, wie heißt er denn?
00:18:28
Kai Ole Hartwig
Naja, steht hier bestimmt, da steht es irgendwo, ne, seht ihr jetzt nicht.
00:18:31
Daniel Langemann
Nicht, nee.
00:18:31
Kai Ole Hartwig
Clean Code, Clean Architecture, nach den Prinzipien, die Review macht, und dann hast du halt einfach das Ding,
00:18:44
Kai Ole Hartwig
dass du natürlich nicht die Schwierigkeiten hast, dass dein Code nicht diesen Prinzipien entspricht.
00:18:53
Kai Ole Hartwig
Also ich zwinge quasi die KI dazu, den Code in dieser Art und Weise zu schreiben, indem ich immer wieder ihr die Aufgabe gebe, review das nach diesen Prinzipien.
00:19:02
Daniel Langemann
Schnell da.
00:19:07
Kai Ole Hartwig
Und es halt grundsätzlich per Pistain ausgeführt wird und dann halt zurückkommt mit, hey,
00:19:14
Kai Ole Hartwig
ähm, das passt aber hier nicht, das PRP-Stan-Level wird nicht geschafft.
00:19:19
Kai Ole Hartwig
Und, ähm, das dann auch so weit geht, dass die KI sich darüber beschwert, das würde jetzt ja viel zu viel Zeit fressen, das umzubauen.
00:19:28
Kai Ole Hartwig
Im Moment musst du halt dann, ähm, hart bleiben, jetzt sind meine AirPods ausgefallen, naja, äh, musst, musst du halt hart bleiben und, und der KI halt so sagen, ja, Freund der Sonne, ähm,
00:19:46
Kai Ole Hartwig
Mach mal, ja, wir bauen hier ordentliche Software, nicht, wir machen hier das Hobbyprojekt, was ein bisschen laufen soll, sondern orientier dich auch an dem Code, wie wir das bisher gemacht haben.
00:19:58
Kai Ole Hartwig
Also du musst ihn halt wirklich da reinlenken, gerade auch, ich finde, in PHP ist es zum Beispiel schlimmer als in Go, ähm,
00:20:09
Kai Ole Hartwig
dass wirklich sauber gearbeitet wird.
00:20:12
Kai Ole Hartwig
Und ich glaube, das hängt sehr, oder mein Eindruck ist, es hängt sehr, sehr, sehr viel damit zusammen, welche Qualitäten die Trainingsdaten hatten.
00:20:20
Daniel Langemann
Ja, bestimmt sogar.
00:20:21
Daniel Langemann
Also, dass das nicht das Gelbe vom Ei war, weil viele Corporate-Sachen, sag ich mal, wo gute Entwickler unterwegs waren, natürlich nicht Open-Source waren.
00:20:32
Daniel Langemann
PHP lange Zeit eine Einstiegssprache war.
00:20:34
Daniel Langemann
Jetzt hat das Glück JavaScript geerbt.
00:20:38
Daniel Langemann
Das senkt natürlich das Level.
00:20:40
Daniel Langemann
Also, es ist noch nicht mal schlecht gemeint.
00:20:41
Daniel Langemann
Also, es kommen halt viele neue, die probieren sich aus.
00:20:44
Kai Ole Hartwig
Und viele Open-Source-PAP-Projekte haben auch hervorragende Code-Qualität seit Jahren.
00:20:49
Kai Ole Hartwig
Also es ist ja eher so der, ich sag mal, der Wildwuchs, die Noise quasi, die außenrum so auf GitHub rumliegt und so.
00:21:00
Kai Ole Hartwig
Und da liegt halt auch viel rum, was halt einfach aus professioneller Entwicklungssicht halt ja eher so Pop-Charakter hat von der Qualität her.
00:21:13
Daniel Langemann
Aber nochmal zurückzukommen auf das Thema, gerade so Clean Architecture und das ganze Thema.
00:21:22
Daniel Langemann
sehe KI noch nicht mal als Problem, sondern gerade dieses Clean Architecture und ich erzähle halt oder nutze gerne die Metapher, das ist wie so ein Buch schreiben.
00:21:32
Daniel Langemann
Also du kannst
00:21:34
Daniel Langemann
stichpunktartig oder kurze Sätze nutzen, um einfach so etwas zu beschreiben.
00:21:39
Daniel Langemann
Du kannst es blumig ausdrücken.
00:21:42
Daniel Langemann
Die Art und Weise, wie Bücher geschrieben werden, man erkennt sogar die Handschrift von einem Autor.
00:21:46
Daniel Langemann
Und so ist es ja bei Quelltext auch.
00:21:48
Daniel Langemann
Und so ist es auf der einen Seite schwer, das irgendwie technisch sicherzustellen, dass gewisse Sachen...
00:21:55
Daniel Langemann
richtig sind.
00:21:56
Daniel Langemann
Es ist sogar zwischen Teams unterschiedlich, dass man sagen könnte, in einem Team wirst du abgefeiert dafür, weil du echt guten Code schreibst und alle finden das toll, dass sie den gut lesen können.
00:22:05
Daniel Langemann
Du kommst ins nächste Team und die sagen so, ne, das versteht ja keine Sau.
00:22:10
Daniel Langemann
Also das kann dir passieren, ohne dass du schlechter oder besser geworden bist.
00:22:14
Daniel Langemann
Deswegen finde ich das schwer, festzuhalten, dass die KI, zu sagen, KI mach mal,
00:22:22
Daniel Langemann
Auf der anderen Seite ist halt auch, also mein Empfinden, immer wenn ich diesen Quelltext lese, habe ich oft das Gefühl, dass du bei KI einfach so, mir fehlt der rote Faden, ich erkenne den nicht.
00:22:32
Daniel Langemann
Oder ich finde den nicht.
00:22:33
Daniel Langemann
Oder vielleicht ticke ich auch anders wie der Großteil der Trainingsdaten.
00:22:36
Daniel Langemann
Und das ist mein Problem.
00:22:40
Kai Ole Hartwig
Ich kenne aber das Gefühl, das du beschreibst.
00:22:42
Kai Ole Hartwig
Ich weiß es auch.
00:22:43
Kai Ole Hartwig
Es ist halt einfach fremder Code und es ist häufiger nicht so, wie man das erwarten würde.
00:22:55
Kai Ole Hartwig
Darum sage ich ja, man muss das quasi mitgeben.
00:22:59
Kai Ole Hartwig
Die Specs bei mir enthalten zum Beispiel auch immer die Informationen,
00:23:06
Kai Ole Hartwig
sehr technische Informationen zu, wie ich auch die Architektur haben möchte.
00:23:15
Kai Ole Hartwig
Wie ich so etwas erwarte.
00:23:17
Kai Ole Hartwig
Ich habe so ganz grundsätzlich mal definiert, definiert, wie ich Sachen aufbaue.
00:23:26
Kai Ole Hartwig
Also wo zum Beispiel, also sowas auch festgelegt wie die zyklomatische Komplexität.
00:23:37
Kai Ole Hartwig
dass ich da fest sage, pass auf, meinetwegen erreiche eine zyklomatische Komplexität von 10, ich möchte aber grundsätzlich unter 3 bleiben.
00:23:51
Kai Ole Hartwig
In Ausnahmen kannst du davon abweichen.
00:23:55
Kai Ole Hartwig
Und da auch sehr an so Standards...
00:24:02
Kai Ole Hartwig
definiert, die es ja allgemein in der PHP-Welt gibt.
00:24:05
Kai Ole Hartwig
Und das hat dazu geführt, dass die Qualität für mein Empfinden wesentlich besser geworden ist.
00:24:17
Kai Ole Hartwig
Ja, manchmal fehlt da der rote Faden und manchmal hat die KI auch echt dumme Ideen zwischendrin.
00:24:25
Kai Ole Hartwig
Auf der anderen Seite, wenn die Spezifikation gut ist, und das musste ich auch lernen, man muss sie sehr, sehr genau definieren, dann wird das Ergebnis auch sehr gut.
00:24:36
Kai Ole Hartwig
Und das hatte ich am Anfang auch überhaupt gar nicht.
00:24:39
Kai Ole Hartwig
Als wir das erste Mal über Spectrum Development gesprochen haben,
00:24:44
Kai Ole Hartwig
Das hat mir quasi erstmal den Weg dahin eröffnet, wirklich effizienten, guten Code agentisch auch in einer gewissen Art und Weise schreiben zu lassen, bis zu einer gewissen Selbstständigkeit so Probleme abarbeiten zu lassen, auch wirklich wie andere hingehen, die sagen, ja, pass auf, ich gehe eigentlich hin.
00:25:09
Kai Ole Hartwig
schreibe die specs und dann sage ich dem ding jetzt okay pass auf hier die sachen die auf ready for coding oder was auch immer liegen und erhalten in ready liegen jetzt quasi für dich da im bord liegen die arbeitest du jetzt heute nacht alle selbstständig ab und morgens hingehen und reviewen ja zum teil selber auch tests implementiert haben die dann durchlaufen
00:25:36
Kai Ole Hartwig
Und so halt vorgehen und halt wirklich mit Spezifikationen zu arbeiten, damit im Prinzip je nach sechs, acht Entwicklern hingehen und das einfach abarbeiten.
00:25:58
Kai Ole Hartwig
machen wir das halt zum Beispiel mit Inhalterstellung.
00:26:03
Kai Ole Hartwig
Entwürfe und so weiter werden halt, wir arbeiten Pläne aus und diese Pläne werden selbstständig abgearbeitet.
00:26:09
Daniel Langemann
Das habe ich auch schon gehört, dass Leute das können.
00:26:10
Kai Ole Hartwig
Und das war wirklich eine krasse Umgewöhnung, auch was dieses sprachliche Definieren ist.
00:26:19
Kai Ole Hartwig
Ich habe immer noch nicht den Zugang gefunden, dass ich sage, ich spreche das rein, ich schreibe das wirklich runter.
00:26:28
Kai Ole Hartwig
Aber auch mein gesamter Tagesablauf hat sich geändert.
00:26:33
Kai Ole Hartwig
Ich habe ja eigentlich sehr, sehr wenig Zeit immer zum Arbeiten aus äußeren Umständen.
00:26:42
Kai Ole Hartwig
Und ich muss sagen, so dieses Vorgehen, Speck-Driven-Development und über Nacht programmieren lassen, hat mir sehr viel Produktivität zurückgegeben.
00:26:53
Daniel Langemann
Ja, krass.
00:26:54
Daniel Langemann
Also, ich sehe für mich mein Problem,
00:26:55
Kai Ole Hartwig
Also, wenn du mich fragst, ich bin jetzt garantiert produktiver im Sinne von Features, die gebaut werden, als vor zwei Jahren.
00:27:04
Kai Ole Hartwig
Als ich noch Vollzeit, oder vor drei Jahren, als ich Vollzeit arbeiten konnte und halt auch manchmal 60 Stunden in der Woche gemacht habe.
00:27:10
Kai Ole Hartwig
Programmieren, ne?
00:27:11
Kai Ole Hartwig
Den anderen Shit.
00:27:23
Daniel Langemann
das fing damals schon an mit dem Test-Driven-Development.
00:27:28
Daniel Langemann
Also ich verstehe wieso, weshalb, warum, ich sehe die ganzen Vorteile, aber ich habe es nie für mich geschafft, zum Beispiel vorab Sachen zu spezifizieren und die Analogie ist ja jetzt gleich, da hast du auch vorab mit Tests zwar, aber hast du auch spezifiziert, hast Tests geschrieben und dann den Qualtext dazu geschrieben, um das Feature zu testen und es grün zu bekommen.
00:27:51
Daniel Langemann
ich weiß es nicht, ich bin nie so tief in dem Thema immer drin gewesen oder mir fehlt anscheinend die Vorstellungskraft oder so.
00:27:58
Daniel Langemann
Also mein Problem ist einfach, ich muss mich hinsetzen und ich fange, also wie mit Bauklitzchen, du fängst an, stellst so hier und da ein paar auf und sagst, okay, das könnte grob so passen,
00:28:10
Daniel Langemann
Und dann schmücke ich die Sachen aus und dann merke ich so, guck mal, an der Stelle, da habe ich etwas überhaupt nicht mitbekommen.
00:28:17
Daniel Langemann
Muss noch irgendwo eine andere Datenquelle geupdatet werden.
00:28:20
Daniel Langemann
Also so erarbeite ich.
00:28:21
Daniel Langemann
Und ich sage ja immer so, dieses Test-Driven-Development hat bei mir nicht funktioniert, weil ich muss erstmal die Klötzchen überall hinstellen.
00:28:27
Daniel Langemann
Dann die Verbindungen herstellen, dann nochmal hin und her schieben, die Hälfte wieder abreißen, weil es doch nicht passt oder ein anderes Pattern besser passt.
00:28:34
Daniel Langemann
Und das kann ich vorher gar nicht und das ist egal, ob bei Test-Driven-Development oder ist auch Speck-Driven.
00:28:39
Daniel Langemann
Also ich kann vorspezifizieren und sagen, guck mal, Datenbank, brauche ich das, dass die Entity oder in der Tabelle müssen diese Felder drin sein.
00:28:48
Kai Ole Hartwig
Das mache ich zum Beispiel im Spec.
00:28:48
Daniel Langemann
Ich weiß, dass das ein Problem ist.
00:28:50
Daniel Langemann
Also so High-Level-Sachen, die kann ich alle abfrühstücken.
00:28:53
Daniel Langemann
Echt nicht?
00:28:54
Kai Ole Hartwig
Das mache ich zum Beispiel gar nicht.
00:28:55
Kai Ole Hartwig
Ich lege gar nicht im Spec-Driven Development, also in meinen Specs, lege ich gar nicht fest, welche Datenbankfelder und so.
00:29:06
Kai Ole Hartwig
Ich definiere wirklich Architektur-
00:29:12
Kai Ole Hartwig
mit, okay, da erwarte ich, dass das ein eigenes Blah ist und das ist ein eigenes Blub.
00:29:18
Kai Ole Hartwig
Und ich lege jetzt aber nicht auf Objektebene fest die Sachen.
00:29:25
Kai Ole Hartwig
Weil das weiß das Ding viel, viel besser als ich am Tagesende.
00:29:29
Kai Ole Hartwig
Und was ich ihm aber mitgebe, ist so etwas wie, hey, wenn wir passende Felder haben für diese Sachen, dann benutzt sie natürlich.
00:29:39
Kai Ole Hartwig
Mach nicht bitte für jeden Shit ein neues Datenbankfeld.
00:29:42
Daniel Langemann
Und macht keine Fehler.
00:29:47
Kai Ole Hartwig
Ich glaube, das ist so ein bisschen der Unterschied, dass die Kunst ist, spezifisch unspezifisch zu sein.
00:30:01
Daniel Langemann
Was wir Entwickler bestimmt sehr gut können, nicht.
00:30:10
Kai Ole Hartwig
und es verändert, also warte mal, wie erkläre ich das denn jetzt, was ich denke?
00:30:20
Kai Ole Hartwig
Also ich fühle das total mit Test-Driven-Development.
00:30:23
Kai Ole Hartwig
Ich habe mich auch immer mega schwer damit getan, vorab Tests zu schreiben.
00:30:27
Kai Ole Hartwig
Ich habe das quasi nie gemacht, wenn ich es vermeiden konnte.
00:30:35
Kai Ole Hartwig
Deswegen ist mein Vorgehen jetzt auch ein bisschen anders.
00:30:50
Kai Ole Hartwig
Die Specs sind ja auch Teil-KI generiert.
00:30:54
Kai Ole Hartwig
Also ich arbeite ja quasi auf Epic-Ebene und dann vielleicht noch auf Story-Ebene und der Rest ist KI generiert.
00:31:04
Kai Ole Hartwig
Und dann...
00:31:06
Kai Ole Hartwig
werden die Testfälle geschrieben.
00:31:07
Kai Ole Hartwig
Diese Testfälle review ich dann.
00:31:10
Kai Ole Hartwig
Und sage, ja, okay, das entspricht dem, was ich erwarte, oder, nee, das muss geändert werden.
00:31:15
Kai Ole Hartwig
Und passt die Specs dafür an?
00:31:18
Kai Ole Hartwig
So quasi diesen Rückkanal aus.
00:31:20
Kai Ole Hartwig
Wenn ich sage, der Testfall für das muss geändert werden, dann passt auch die Specs an.
00:31:25
Kai Ole Hartwig
Und dann lasse ich programmieren.
00:31:28
Kai Ole Hartwig
Wann auch immer, direkt oder nachts.
00:31:31
Kai Ole Hartwig
Wie man das halt so gerade machen möchte, ob man jetzt mehr Autonomie in dem System haben möchte oder nicht.
00:31:37
Kai Ole Hartwig
Und was ich auch habe, ist,
00:31:42
Kai Ole Hartwig
dass ich quasi Learnings, wenn ich Sachen korrigiere nachträglich, Learnings schreiben lasse, die dann wieder geladen werden, wenn ich neuen Kontext brauche.
00:31:58
Kai Ole Hartwig
Es ist halt, genau, ich glaube, wir arbeiten da gerade völlig anders, aber das ist für mich halt der Weg, den ich auch aus diesen Schmerzen quasi mit, es funktioniert nicht,
00:31:58
Daniel Langemann
Gut, dann arbeitet es komplett anders.
00:32:00
Daniel Langemann
Das fängt von den Modellen ab.
00:32:10
Kai Ole Hartwig
rausgefunden habe, wie es für mich gerade am besten funktioniert.
00:32:14
Kai Ole Hartwig
Ich weiß nicht, ob das der beste Weg ist.
00:32:17
Kai Ole Hartwig
Also kein Plan.
00:32:19
Kai Ole Hartwig
Und ob das der richtige Weg ist, ob der in zwei Monaten sich noch genauso gut anfühlt wie jetzt.
00:32:23
Kai Ole Hartwig
Vielleicht gibt es dann einen komplett anderen Weg, den ich gehe.
00:32:27
Daniel Langemann
Das fängt von den Modellen und den Fähigkeiten auch ab, glaube ich.
00:32:33
Kai Ole Hartwig
Ich habe mit Test-Driven-Development die gleichen Schwierigkeiten gehabt.
00:32:38
Kai Ole Hartwig
Ich habe auch am Anfang mit Agentic Engineering oder Vibe-Coding einfach keine coolen Ergebnisse gehabt.
00:32:44
Kai Ole Hartwig
Das hat sich erst verändert durch das Back-Driven-Development und dass ich dann mitbekommen habe, dass andere wirklich auch so diese Möglichkeit haben zu sagen, okay, ich
00:32:57
Kai Ole Hartwig
Lass das komplett selbstständig laufen und das Ergebnis ist da, wenn ich wieder anfange zu arbeiten.
00:33:03
Kai Ole Hartwig
Diese Idee, die fand ich einfach so faszinierend.
00:33:06
Daniel Langemann
Ja, ist auch so.
00:33:08
Daniel Langemann
Du stehst auf und deine Arbeit ist fertig.
00:33:09
Daniel Langemann
Kannst dich wieder hinlegen.
00:33:11
Kai Ole Hartwig
Ja, nicht, dann schreibst du die nächsten Speziele, dann testest du ja...
00:33:16
Kai Ole Hartwig
den Teil, der nicht automatisch getestet ist und reviewst und schaust, ist das denn jetzt auch alles entsprechend oder sagst nochmal, ah, okay, hier muss noch nachgearbeitet werden und bereitest ja quasi die nächste Nacht vor, wo dann die KI wieder losrennt selbstständig und macht.
00:33:35
Daniel Langemann
Ich muss sagen, ich bin da definitiv anders unterwegs, weil bei mir war es, also auch mit dem Test-Driven-Development, wo ich nicht warm geworden bin, ich habe, während ich die Bauklötzchen verteilt habe, immer schon Tests dann passend dazu geschrieben, aber eher aus der Not heraus, weil ich zu faul war, eine Klasse immer wieder neu zu testen und Tests einfach viel schneller ausführbar sind, als irgendwie F5 im Browser zu drücken und dann alle Testfälle durchzulaufen.
00:33:57
Kai Ole Hartwig
Ja, siehst du, ja.
00:33:59
Daniel Langemann
Also das war so die Faulheit, die mich da definitiv getrieben hat.
00:34:02
Kai Ole Hartwig
Ja, und ich war immer derjenige, der die Testfälle dann danach geschrieben hat und dann nochmal die Architektur angepasst hat, wenn ich nicht testen konnte.
00:34:11
Daniel Langemann
Ja, oder so.
00:34:12
Daniel Langemann
Also das war Ping-Pong.
00:34:14
Daniel Langemann
Also ich glaube, ich habe einen Schritt früher angefangen, wenn so das Wireframe oder so die Blaupause entstanden ist, wo ich gesagt habe, jetzt weiß ich, wie ich die Sachen verknüpfe.
00:34:24
Daniel Langemann
Ich hatte schon Dateien irgendwo liegen, die vielleicht noch eine Klasse enthalten haben, aber ein paar Methoden und die leer waren oder so.
00:34:29
Daniel Langemann
Da konnte ich Tests dafür schreiben.
00:34:31
Daniel Langemann
Das hat funktioniert.
00:34:33
Daniel Langemann
Ich merke jetzt auch für mich, also ich versuche auch mit Spec-Driven Development zu arbeiten,
00:34:39
Daniel Langemann
Es hilft mir, was ich früher oft gemacht habe oder in Teams war das so, einen anderen Entwickler angerufen, gesagt, guck mal, ich bin an dem Feature dran, ich brauche mal entweder Rubber Ducking oder so Ping-Pong-Spielen, habe ich es genannt.
00:34:50
Daniel Langemann
Man hat sich zusammengesetzt und so gegenseitig hochgeschaukelt.
00:34:54
Daniel Langemann
Der andere hat dann immer gesagt, hast du an die Stelle schon gedacht?
00:34:56
Daniel Langemann
Nein, habe ich natürlich vergessen.
00:34:57
Daniel Langemann
Bedenk das, das ist schon dreimal schiefgegangen.
00:35:00
Daniel Langemann
Dann hat man so eine halbe Stunde, Stunde Ping-Pong gespielt, hat Gewissen gehabt und hat das dann abgearbeitet.
00:35:05
Daniel Langemann
Das ist jetzt so für mich Speck-Driven-Development in die Richtung, dass ich sage, ich fange an, das Feature zu spezifizieren und hoffe auf dieses gleiche Ping-Pong von der KI, dass sie sagt, aber da gibt es noch Rückfragen, das ist zum Beispiel noch unklar, was für mich natürlich offensichtlich ist, aber für die KI nicht, weil sie es nicht weiß.
00:35:24
Daniel Langemann
Also das ist so ähnlich für mich, dass ich jetzt halt nur KI gegen Mensch getauscht, äh, Mensch gegen KI getauscht habe.
00:35:32
Daniel Langemann
Auf der anderen Seite, gerade wenn ich so fix, also im Quellcode unterwegs bin oder irgendwie Bugs fixen muss oder kleinere Sachen anfassen muss, nutze ich das eigentlich eher so als bessere Refactoring-
00:35:44
Daniel Langemann
Also das, was mit der IDE aktuell nicht geht, so eine Massenumbenennung, alle Stellen finden.
00:35:53
Daniel Langemann
Wenn du zum Beispiel, also bestes Beispiel hatte ich gestern, hat sich der Typ geändert.
00:35:57
Daniel Langemann
Also war eine Verwechslung im Quellcode.
00:35:59
Daniel Langemann
Ich hatte vorher was gebaut, die Klassenname war gleich, aber das eine war ein Model aus einem Bundle und ich sollte das Model, also die Entity aus einem anderen Bundle benutzen.
00:36:10
Daniel Langemann
keine Ahnung, 40 Verwendungen oder so, der KI gesagt, guck mal, da möchte ich das ändern, pass mal alle Stellen an.
00:36:18
Daniel Langemann
So diese Fleißarbeit.
00:36:19
Daniel Langemann
Super, das war keine drei Minuten, blub, blub, blub, lief das Ding durch, fertig.
00:36:23
Daniel Langemann
Dann Testfälle dafür geschrieben, für sowas nutze ich KI gerne, weil die natürlich dann schneller ist als ich.
00:36:30
Daniel Langemann
Oder wenn ich dann sage, guck mal, ich würde das jetzt gerne umbauen, wie oft wird das verwendet, was muss da noch passieren?
00:36:37
Daniel Langemann
mir diese Recherche im Quelltext einfach zu ersparen, aber... Hm.
00:36:39
Kai Ole Hartwig
Ja, das ist nämlich auch das, was ich dann vorher gemacht habe.
00:36:42
Kai Ole Hartwig
Das habe ich aber gemacht, als ich quasi schon als Co-Pilot rausgekommen bin.
00:36:48
Kai Ole Hartwig
Und ich glaube, das ist, also bei mir war es zumindest so eine Entwicklung, dass ich auch entdecken musste, erforschen musste, wie
00:37:02
Kai Ole Hartwig
wie kann ich das sinnvoll für mich einsetzen, dass ich mich halt nicht ärgere über das, was da rauskommt
Verwaltung mehrerer KI-Agenten
00:37:12
Kai Ole Hartwig
und das dann halt machen und dadurch ist halt diese, für mich auch vorher komplett andere Arbeitsweise entstanden.
00:37:18
Kai Ole Hartwig
Also das ist halt, keine Ahnung, also ich hoffe, dass das jetzt wirklich so ein Ding ist, dass das produktiv ist, dass es gut funktioniert, dass es auch weiter funktionieren wird.
00:37:31
Kai Ole Hartwig
Und vielleicht kommt nachher auch noch mehr Autonomie dabei raus.
00:37:35
Kai Ole Hartwig
Aber so schaffe ich es halt auch einfach, dass ich sechs, acht Agenten dann quasi zum Primären da laufen haben lassen kann, weil ich mich natürlich dann immer nur mit Spezifikation und Testen beschäftige und halt Feedback geben an der Stelle auch.
00:38:01
Kai Ole Hartwig
Und halt sehr autonom die Systeme laufen lassen kann bei einer für mich akzeptablen Qualität.
00:38:09
Kai Ole Hartwig
Wenn die Qualität natürlich nicht passt, deswegen sage ich ja, Review ist so unglaublich wichtig.
00:38:15
Kai Ole Hartwig
dann muss man da halt anders ran.
00:38:17
Kai Ole Hartwig
Manchmal habe ich auch Tage, wo das halt nicht gut funktioniert.
00:38:22
Kai Ole Hartwig
Nur weil, also der Großteil der Zeit funktioniert es, es gibt aber auch genauso Sachen, wo es dann nicht funktioniert, wenn eine neue Model-Version da ist, dann muss man immer, also finde ich, muss man experimentieren, was klappt dann jetzt wie wieder richtig.
00:38:39
Kai Ole Hartwig
Beim letzten Update von Cloud Code von 4.6 auf 4.7,
00:38:45
Kai Ole Hartwig
musste die Sprache auf einmal viel spezifischer sein.
00:38:49
Kai Ole Hartwig
So, dann musst du natürlich Dinge anpassen.
00:38:51
Kai Ole Hartwig
Dann musste ich Sachen anpassen.
00:38:53
Kai Ole Hartwig
Ich glaube, das hast du dann nicht so sehr, weil du es halt einfach anders einsetzt.
00:38:57
Kai Ole Hartwig
Du nutzt halt quasi die KI als Ad-Hoc-Assistent und ich nutze die KI als Junior-Dev.
00:39:06
Daniel Langemann
Ja, also der nachts nicht schlafen darf.
00:39:17
Kai Ole Hartwig
Ja, oder Outsourcing nach Indien.
00:39:21
Daniel Langemann
interessant.
00:39:21
Kai Ole Hartwig
Es ist reißig gut.
00:39:27
Daniel Langemann
Also ich habe halt mein Problem, mich noch komplett abhängig zu machen.
00:39:32
Daniel Langemann
Also die ganzen Sachen, die ich aktuell noch mit KI mache, könnte ich selber, aber nicht so schnell.
00:39:38
Daniel Langemann
Also weil Fakt ist, die kann schneller tippen als ich oder schneller Code produzieren als ich.
00:39:45
Daniel Langemann
Mir fehlt aber die Tiefe.
00:39:48
Daniel Langemann
Also bei deinem Ansatz würde mir zum Beispiel die Tiefe von dem Quelltext verstehen, dass wenn ich morgens aufstehe oder übermorgen mich jemand fragt, etwas dazu, dass ich sagen könnte,
00:39:59
Daniel Langemann
Also zum Beispiel würde dann kommen und sagen, ach mein Gott, wir haben noch etwas vergessen, kannst du noch was hinzubauen oder ist das noch einfach möglich, ist die Änderung noch einfach möglich, wir haben das falsch spezifiziert.
00:40:11
Daniel Langemann
Das wäre immer so im Projektkontext, das heißt so, ah, guck mal, da muss ein neues Payment hinzugefügen, ein neuer Step dazwischen oder so.
00:40:18
Daniel Langemann
Und wenn ich da nicht tief genug drin bin, also ich muss nicht jede Zahl selber oder Buchstaben selber getippt haben, aber Quelltext-technisch muss ich tief genug oder möchte ich tief genug drin sein, dass ich sagen kann, klar, kein Problem.
00:40:32
Daniel Langemann
Das ist die und die Abstraktion, da gibt es irgendwo einen Event-Listener oder Event-Subscriber oder das ist ein anderes Pattern, da kann ich noch eine Klasse ganz einfach reinmachen, fertig.
00:40:42
Kai Ole Hartwig
Ja, bei so Sachen wiederum spezifiziere ich halt.
00:40:46
Kai Ole Hartwig
Das meine ich mit Architektur.
00:40:49
Kai Ole Hartwig
Ja, das so wichtige Dinge gebe ich ihm quasi mit.
00:40:53
Kai Ole Hartwig
Also ich mache mir Gedanken dazu, wie soll es denn aussehen?
00:41:00
Kai Ole Hartwig
Nicht im Detail, aber im Großen und Ganzen.
00:41:03
Daniel Langemann
Das kann ich nicht.
00:41:06
Daniel Langemann
Deswegen mein Test-Driven-Development-Beispiel.
00:41:09
Daniel Langemann
Ich kann das nicht.
00:41:11
Daniel Langemann
Mir fehlt das so vom Inneren.
00:41:12
Daniel Langemann
Ich kann das nur, wenn ich einen Quelltext vor mir habe oder so, mich durchgearbeitet habe, dann kann ich so vom Inneren Auge den Bauplan aufklappen und sagen, guck mal, so sieht die Welt aus.
00:41:24
Daniel Langemann
Je mehr ich dann rumgucke, umso größer wird die Map.
00:41:26
Daniel Langemann
Plus jede Unterbrechung zerstört sie natürlich wieder.
00:41:29
Daniel Langemann
Das schöne Bild dazu, aber
00:41:31
Daniel Langemann
Und dann kann ich vom inneren Auge sagen, okay, guck mal, so funktioniert das.
00:41:35
Daniel Langemann
Oder beziehungsweise, wenn ich lang genug drauf geguckt habe, auch zwei, drei Tage später wieder abrufen.
00:41:39
Daniel Langemann
Da bin ich tief genug im Quelltext drin.
00:41:40
Daniel Langemann
Und das fehlt mir jetzt zum Beispiel an vielen Ansätzen, die ich hatte.
00:41:44
Daniel Langemann
Also von Vibe-Coding bis anderen, wo ich nicht tief genug drin bin, wo du nachher sagst so, keine Ahnung, hat sich was geändert?
00:41:51
Daniel Langemann
Kann ich das umbauen?
00:41:52
Daniel Langemann
Weiß ich nicht.
00:41:53
Daniel Langemann
Und dann guckst du in den Quelltext rein, erarbeitest du das und sagst,
00:41:57
Daniel Langemann
Alter Schwede, so hätte ich das nie gebaut.
00:41:58
Daniel Langemann
Oder ich hätte das aufgeräumt.
00:42:01
Kai Ole Hartwig
Ja, verstehe ich total.
00:42:04
Daniel Langemann
Wenn ich reingeguckt hätte, hätte ich zum Beispiel eine andere Stelle gesehen, wo ich gesagt hätte, das beeinflusst das, das wird problematisch.
00:42:13
Kai Ole Hartwig
Ich habe das auch erst gelernt, als ich mich mehr mit Clean Code, Clean Architecture und so beschäftigte.
00:42:24
Kai Ole Hartwig
beschäftigt habe, ja, so lange nachdem ich studiert habe, den ganzen Spaß, sich mal so mit diesen Qualitätssachen zu beschäftigen.
00:42:35
Kai Ole Hartwig
Und das hat erst dazu geführt, dass ich überhaupt mir neben Patterns, dass ich die mal in so einem Gesamtkontext Architektur wahrgenommen habe und gesehen habe.
00:43:03
Kai Ole Hartwig
Aber vielleicht auch, also so das Wissen dazu zu haben, es gibt das und das wäre jetzt eine gute Idee.
00:43:03
Daniel Langemann
Vor und nach alle zu kennen, ja, ja.
00:43:12
Kai Ole Hartwig
Und zwar rein aus, ich sag jetzt mal, aus der akademischen Richtung, ja, nicht aus dem, ich hab das programmiert und ich hab das da gesehen und jetzt verwende ich das mal, sondern rein auf diesem akademischen Level.
00:43:24
Kai Ole Hartwig
Das hat mir das alles eröffnet und ermöglicht.
00:43:26
Kai Ole Hartwig
Ich muss ja auch, dazu gehört einfach auch sagen, ich hab halt mir selber Programmieren beigebracht mit 16, ne?
00:43:26
Daniel Langemann
Ja, also.
00:43:34
Kai Ole Hartwig
So, mit 16 war damals verdammt früh, weil da hat man den ersten, also da hatten wir überhaupt gar keinen Computer.
00:43:42
Kai Ole Hartwig
Dafür jetzt den Kontext für die ganzen jüngeren Menschen unter uns.
00:43:45
Kai Ole Hartwig
Das Internet war damals auch nicht so schnell.
00:43:48
Kai Ole Hartwig
Das war auch zeitlich befristet.
00:43:51
Kai Ole Hartwig
Da konnte dann auch keiner telefonieren, wenn man im Internet war.
00:43:54
Kai Ole Hartwig
Über diese grauen Uhrzeiten reden wir, bevor es Google gab.
00:43:58
Daniel Langemann
Also nochmal zu dem Design-Pattern-Thema zurück und dem ganzen Clean-Code.
00:44:01
Daniel Langemann
Also das hat ja auch einen Sinn und Zweck, das Ganze.
00:44:04
Daniel Langemann
Das ist ja nicht nur mit, sagen wir mal, wer hat den Größten und wer kann da mehr Abstraktion irgendwo unterbringen, sondern, sagen wir mal, das konkrete Beispiel wäre jetzt, habe ich letztens wieder ein Projekt gehabt,
00:44:15
Daniel Langemann
muss ein Update gemacht werden und da ist halt zum Beispiel von Doctrine im kompletten Projekt Abhängigkeiten drin.
00:44:22
Daniel Langemann
Doctrine muss aber aktualisiert werden, heißt, du hast da mehrere tausend Dateien, wo du dann irgendwie gucken musst, dass Parameter passen.
00:44:30
Daniel Langemann
Hätte man jetzt ein Pattern benutzt und diese Abhängigkeit auf eine Klasse reduziert und zwar diese Klasse dann aber überall verwendet,
00:44:38
Daniel Langemann
müsste ich nur die eine Stelle mit Doctrine anpassen und da die Parameter ändern und der Rest müsste ich nicht anfassen, weil das eigener Code ist.
00:44:46
Daniel Langemann
Dadurch, dass sich Doctrine ändert, muss ich alle Methoden anfassen und auch jede Stelle angucken, beurteilen, verändert sich was und daher kommt unser Entwicklerbedürfnis zu sagen, wir benutzen einen Pattern, um solche Fehler einfach in Zukunft nicht zu machen oder haben sie schon so oft gemacht und wollen es nicht nochmal machen.
00:45:01
Kai Ole Hartwig
Ja, absolut.
00:45:03
Kai Ole Hartwig
Definitiv.
00:45:03
Daniel Langemann
Das ist mir ganz wichtig, weil viele tun ja so Entwickler und Pattern und die über sowas reden, hört sich immer esoterisch an, aber das hat ja Hand und Fuß.
00:45:11
Kai Ole Hartwig
Ja, auch saubere Architektur und diese ganzen Sachen sind ja entstanden, um bessere Software zu schreiben.
00:45:22
Kai Ole Hartwig
Und gute Software bedeutet ja auch, sie ist wartbar, updatebar und so weiter und
Zentrale Dienste und einheitliche Berechnungen
00:45:27
Daniel Langemann
Es geht um Kohle.
00:45:27
Daniel Langemann
Es geht immer um Kohle.
00:45:29
Daniel Langemann
Je schneller ich Features rausbringen kann, umso günstiger bin ich ja als Entwickler, weil ich nicht drei Wochen oder eine Woche brauche.
00:45:32
Kai Ole Hartwig
Ja, und jetzt hat halt, und das merke ich auch sehr stark, also viele schreiben ja irgendwie, ich habe meine Token schon wieder verballert und ich sehe das, ich verballere unfassbar viele Token in, wenn ich in Projekte reinkomme oder übernehme oder Review oder was auch immer, die
00:45:59
Kai Ole Hartwig
eben diesen Prinzipien nicht folgen, die Clean Code, Clean Architecture und so aufgestellt haben.
00:46:06
Kai Ole Hartwig
Also das, weil, und jetzt kommt es ja, der Witz darin, die haben nämlich immer viel, viel mehr Code produziert, als die, die mit sauberen Patterns gearbeitet haben.
00:46:16
Kai Ole Hartwig
Ja, wenn man mit sauberen Patterns und sauberer Architektur durch die Gegend rennt,
00:46:21
Kai Ole Hartwig
ähm, hat man nämlich auch viel weniger Zeugs rumfliegen, was man sich anschauen muss, was man programmieren muss, was dann wieder weniger Token verbraucht.
00:46:32
Kai Ole Hartwig
Also bedeutet, ähm,
00:46:36
Kai Ole Hartwig
In dem Gesamtding, erstmal brauchst du für schlechte Software ein größeres Kontext, das verbraucht mehr Token.
00:46:42
Kai Ole Hartwig
Dann brauchst du zum Warten und Erweitern und Aufräumen mehr Token, als wenn du die sauber erstellen lässt oder ein sauberes Projekt hast und weiterentwickelst.
00:46:51
Kai Ole Hartwig
Und ja, also ich sag mal, es spricht alles dafür, weiterhin sauber zu arbeiten und der KI mitzugeben, wie, wo, an welcher Stelle das sauber funktioniert.
00:47:04
Kai Ole Hartwig
dann kommt nämlich auch bessere Qualität raus.
00:47:06
Kai Ole Hartwig
Das ist wie beim Menschen.
00:47:08
Kai Ole Hartwig
Wir haben ja auch nicht aus Spaß irgendwie Junior-Entwicklern gesagt, nee, mach das lieber anders und so und so.
00:47:09
Daniel Langemann
Das ist geil.
00:47:16
Kai Ole Hartwig
sondern halt vor dem Hintergrund, dass wir aus Erfahrung wissen, was kann denn alles noch passieren und warum ist es jetzt sinnvoll, hier auch ein Pattern zu verwenden oder Dinge wieder zu verwenden.
00:47:29
Kai Ole Hartwig
Einfach auch zu sagen, wir haben hier das Ding, also ich habe mal im Projekt gearbeitet, da hatten wir einen Microservice, der nur Produktpreise gerendert hat.
00:47:42
Kai Ole Hartwig
klingt total banal an der stelle und irgendwie sinnfrei wenn man aber weiß dass ein content commerce projekt war mit typo 3 und und ich bin mir nicht mehr sicher mit einem shop system system hat anderes anderes team gemacht und wir an allen stellen
00:48:01
Kai Ole Hartwig
unter sehr komplexen Bedingungen.
00:48:05
Kai Ole Hartwig
Zehn Varianten vom Preis gab es unter je nach Mondphase, Sonnenstand,
00:48:13
Kai Ole Hartwig
Keine Ahnung, 1000 Kriterien geführt.
00:48:16
Kai Ole Hartwig
Also gab es einen zentralen Service, den jeder angesprochen hat, um den richtigen Produktpreis für das Ding zu bekommen.
00:48:23
Kai Ole Hartwig
Da hast du eine SKU reingeschmissen, den Preis zurückbekommen.
00:48:26
Kai Ole Hartwig
Konntest dann anzeigen, hast auch den Streichpreis gehabt und konntest halt einfach dieses Snippet, was zurückgekommen ist, einbauen.
00:48:32
Kai Ole Hartwig
Super Ding, weil du wusstest, wenn das Ding richtig funktioniert, dann ist mein Ding auch richtig.
00:48:38
Kai Ole Hartwig
Ich muss mich damit nicht mehr beschäftigen.
00:48:41
Kai Ole Hartwig
Das musst du natürlich wissen, wenn du in so einem Kontext unterwegs bist, dass du jetzt halt nicht selber VK0 und so weiter abrufst und selber anzeigst, sondern dass du den Service ansprichst, ja.
00:48:53
Kai Ole Hartwig
Und genauso wie das halt ein neuer Entwickler lernen muss, musst du das der KI auch mitgeben.
00:48:53
Daniel Langemann
Das ist ein gutes Beispiel, dass einfach nicht fünf Projekte die gleiche Logik.
00:48:59
Daniel Langemann
Es müssten nicht fünf Projekte oder fünf Stellen die gleiche Logik einbauen, sondern die wird zentral an einer Stelle eingebaut und wenn eine Änderung kommt, müssen auch nicht fünf Teams das gleich ziehen oder nicht jeder kommt auf einen anderen Wert, weil er anders rundet oder so.
00:49:12
Kai Ole Hartwig
Ja, so und nachher geht es ja auch dazu, dann in die Bezahlprozesse rein und wenn du dann, da kommt ja noch mehr, wenn dann die Validierung fehlschlägt, weil der eine Preis kam aus dem System, der andere Preis von dem, dann ist das in den Bahnkorb gelandet und nachher kommt was komplett anderes raus.
00:49:24
Daniel Langemann
Ja, sehr lustig.
00:49:30
Kai Ole Hartwig
Da können wir eine neue Folge zu machen, aber vielleicht nicht nächste Woche.
00:49:36
Daniel Langemann
Ja, aber das zeigt dieses Grundbedürfnis, was Entwickler ja haben von Abstraktion und Kapselung von Logik und so diesen ganzen Themen, von denen wir immer reden, dass sie halt nicht einfach daraus entstehen, dass wir gerne einen Schleif hinunter bauen wollen.
00:49:55
Daniel Langemann
Und das ist halt das, was im Kontext von Vibe-Coding ja immer hört.
Vibe Coding vs. traditionelle Programmierung
00:49:58
Daniel Langemann
mit, ja man muss ja kein Schleifchen drumherum bauen, das ist doch schnell genug und reicht doch aus.
00:50:04
Daniel Langemann
Also für deine fünf Seiten Landingpage, natürlich werde ich da nicht overengineeren und solche Sachen machen.
00:50:10
Daniel Langemann
Also wir reden gerade über Sachen, die eher so mit Preisen zu tun haben, Online-Shops, Sachen, die einfach die nächsten fünf Jahre noch laufen sollen, weil dein Geschäfts- oder dein Business-Case darauf beruht und du damit Geld verdienst.
00:50:22
Daniel Langemann
Oder ein ERP-System, was dann einfach nicht mehr läuft und keine Rechnung gestellt werden können.
00:50:26
Daniel Langemann
Das sind so Sachen, die tun ein bisschen mehr weh.
00:50:29
Daniel Langemann
Und natürlich, also eine Landingpage oder auch dein Blog ist ärgerlich, SEO-technisch auch wichtig, tut aber anders weh, als wenn einfach ein Online-Shop offline ist oder andere Sachen.
00:50:40
Daniel Langemann
Und da ist ein ganz...
00:50:41
Kai Ole Hartwig
Fun fact, es reicht, um eine Website zu coden.
00:50:46
Kai Ole Hartwig
Ja, stimmt.
00:50:50
Kai Ole Hartwig
Aber du erkennst heute sehr, sehr gut Vibe-Coding-Websites daran, dass das Impressum
00:50:57
Kai Ole Hartwig
die falschen rechtlichen Bedingungen nennt und die Streitschlichtungsstelle drin hat.
00:51:03
Kai Ole Hartwig
Oder dass du einfach deine Webseite nicht aktualisierst.
00:51:06
Daniel Langemann
Ich wollte es gerade sagen.
00:51:07
Kai Ole Hartwig
Die beiden Möglichkeiten gibt es.
00:51:07
Daniel Langemann
Erwischt.
00:51:07
Daniel Langemann
Hat es auch noch bis letztes Jahr drin.
00:51:08
Kai Ole Hartwig
Entweder Vibe-Coding oder das System ist veraltet.
00:51:15
Kai Ole Hartwig
Und was natürlich beim Vibe-Coding total häufig vorkommt bei Websites, ist, dass die ganzen Sachen aus externen Quellen geladen werden.
00:51:26
Kai Ole Hartwig
Na, dann hast du nämlich schön direkt Datenschutzthema, weil deine Website einfach so Google Maps lädt ohne Einwilligung, die Fonts von Google Fonts weiterbezieht direkt ohne Einwilligung und den ganzen anderen Kladdergalat, den man da so netterweise hat.
00:51:46
Kai Ole Hartwig
Ja, ach, so.
00:51:48
Kai Ole Hartwig
Also das heißt auch da, man muss halt darauf achten,
00:51:53
Kai Ole Hartwig
dass das Ganze auch nachher rechtlich sauber ist, was man da rausschmeißt.
00:51:58
Kai Ole Hartwig
Also ja, man kann ein total nettes Design, ähm, Vibekon, mache ich auch, ja, gar kein Ding.
00:52:05
Kai Ole Hartwig
Ähm, aber du musst es halt nachher reviewen.
00:52:11
Daniel Langemann
Ja, definitiv.
00:52:12
Daniel Langemann
Und es gibt je nach Projekt unterschiedliche Qualitätslevel einfach, die man umsetzt.
00:52:17
Daniel Langemann
Also für meine Seite zum Beispiel bin ich ja auch nicht so, dass ich da alles komplett reduziert habe und da irgendwie so viel Mühe mir gebe, sage so mit Einrückungen und solche Sachen, das habe ich früher alles mal gemacht, das ist vorbei.
00:52:32
Daniel Langemann
Also, wenn du aber andere Projekte hast, da gibt man sich ein bisschen mehr Mühe, weil man genau gesehen hat, was passiert, wenn man in den Shop einen Tag lang offline ist.
00:52:41
Daniel Langemann
Da geht es nicht um 5 Euro.
00:52:43
Daniel Langemann
Also, für mich als Externen wird es teuer, für den Kunden wird es teuer.
00:52:43
Kai Ole Hartwig
Ja, definitiv.
00:52:47
Daniel Langemann
Das sind halt ganz andere Anforderungen.
00:52:52
Kai Ole Hartwig
Ich glaube, das ist auch ein gutes Schlusswort für diese hervorragende Folge Secrets Not Included zu Agentik Engineering und anderen Themen.
00:52:55
Daniel Langemann
Oh ja, ich sehe gerade, wir haben es geschafft.
00:52:56
Daniel Langemann
53 Minuten.
00:53:10
Kai Ole Hartwig
So, jetzt kein Teaser für nächste Woche.
00:53:12
Kai Ole Hartwig
Da müssen wir dann nochmal in die Büt steigen, glaube ich.
00:53:16
Kai Ole Hartwig
Und dann sehen wir uns trotzdem nächste Woche mit einer neuen Folge.
00:53:20
Kai Ole Hartwig
Macht's gut.
00:53:21
Kai Ole Hartwig
Ciao, ciao.