Webcafé — Folge 55
Code Reviews in Zeiten von KI
KI verändert die Softwareentwicklung – und stellt auch Code Reviews vor neue Herausforderungen. Wie lassen sich Codequalität und Verantwortung sicherstellen, wenn KI zunehmend beim Entwickeln unterstützt?
Worum geht es?
KI verändert die Softwareentwicklung – und stellt auch Code Reviews vor neue Herausforderungen. Wie lassen sich Codequalität und Verantwortung sicherstellen, wenn KI zunehmend beim Entwickeln unterstützt?
Felix und Kay sprechen darüber, wie sich der Review-Prozess anpassen lässt und welche Ansätze dabei helfen können: von klarer formulierten Aufgaben über die Prüfung des eigenen Codes vor dem Review bis hin zur aktiven Begleitung der KI während der Entwicklung. Dabei geht es auch um die Frage, welche Verantwortung Entwickler für den Code tragen, den sie einreichen.
Außerdem erklärt Gabriel, der einen KI-Review-Bot entwickelt hat, im Interview die technischen Hintergründe und gibt Einblicke in dessen Funktionsweise.
Eine Folge über praktische Lösungsansätze und neue Arbeitsweisen für Code Reviews im KI-Zeitalter.
🎙️ Hosts: Felix Dransfeld & Kay Domrose
📸 Instagram: @webcafepodcast
💻 Geenen IT-Systeme GmbH, Dortmund
🌐 Website: geenen-it-systeme.de
🎥 YouTube: @Webcafe.Podcast
▶️ Video-Folge #54: youtu.be/xutMbVxPXXk
Das Gespräch, Wort für Wort
Kapitel
14.191 Wörter in 12 Abschnitten. Jede Zeitmarke springt an die passende Stelle im Audio. Automatisch transkribiert und maschinell nachkorrigiert — im Zweifel gilt das Gesprochene.
Intro
0:00–4:11
-
0:04
Kay Einen wunderschönen guten Morgen, Mittag, Nachmittag, Abend oder wann auch immer ihr diese Folge hört aus unserem schönen Webcafé. Heute sind wir mal wieder hier in vertrauter Umgebung in unserem schönen Eigenheim, nachdem die letzten beiden Folgen ja ein bisschen was Besonderes waren, aber auch sehr Spaß gemacht haben. Heute sprechen wir über das Thema KI-Reviews.
-
0:27
Ja, ich weiß, es ist schon wieder das KI-Thema. Das ist, glaube ich, das vierte insgesamt, aber da passiert einfach so viel, dass wir da am Ball bleiben müssen. Und über dieses Thema spreche ich natürlich wie immer mit meinem großartigen Mit-Podcaster Felix. Hallo Felix. Genau.
-
0:43
Felix Hallo Kay, freut mich, dass wir wieder hier in gewohnter Atmosphäre unterwegs sind und freue mich auf die Folge heute.
-
0:49
Kay Heute möchten wir insbesondere über das Thema Reviews sprechen, was es da für Probleme gibt, was es da für Möglichkeiten gibt, was wir da schon rausgenommen haben aus unserem Alltag. Aber natürlich, bevor wir darüber sprechen, habe ich noch zwei andere Themen, die auch mit KI zu tun haben, aber nicht direkt so mit unserem Hauptthema. Aber bevor wir darüber sprechen, sprechen wir natürlich über das, was wir hier vor uns stehen haben. Felix, was hast du denn zu trinken mitgebracht?
-
1:14
Felix Ja Kay, heute ist es spektakulär, aber kurz. Ich habe einen Mandeltee dabei und viel mehr kann ich auch gar nicht dazu sagen. Den hat nämlich meine Frau in Dänemark gekauft, in so einem kleinen pittoresken Örtchen. Und das ist ein loser Tee und sie hat aber die Verpackung weggeschmissen. Und jetzt habe ich nur noch so eine Dose mit losem Tee da drin, der toll aussieht und super riecht. und es steht Mandeltee drauf.
-
1:37
Und ja, ich werde nie wieder nachkaufen können und nie wissen, was es eigentlich für einer ist. Aber hier habe ich mir das erste Mal aufgebrüht und werde ihn nun probieren.
-
1:45
Kay Ich sehe da so ein milchiges Gebräu bei dir in der Tasse. Hast du da Milch reingetan oder so? Oder ist der so?
-
1:50
Felix Ja, klar, Kay. Ich trinke doch diese aromatisierten Schwarztees immer mit Milch.
-
1:55
Kay Ein Schwarztee ist es.
-
1:56
Felix Ja, ja, genau. Das gibt immer so einen runderen Geschmack. Genau. Und ja, also trifft hundertprozentig meinen Geschmack. Also geht so sehr in die Richtung von dem Baileys-Tee, den ich jetzt kürzlich dabei hatte. Ich hatte ja schon mal so einen Amaretto-Tee dabei, Gina Amaretta, den ich ja sehr mag. Das ist alles so ein bisschen die gleiche Richtung und schmeckt mir sehr gut und ganz hervorragend.
-
2:17
Kay Großartig.
-
2:18
Felix Kay, was hast du uns mitgebracht?
-
2:19
Kay Ich war im Frühjahr irgendwann schon in Lübeck und habe da natürlich einen Tee gekauft und aber seitdem nicht geschafft, ihn hier im Podcast vorzustellen. Und jetzt habe ich ihn hier. Das ist ein Tee aus dem Lübecker Teekontor. Und er verspricht Sanddorn und Küstenkräuter. Was auch immer diese Küstenkräuter sein mögen. Jetzt habe ich ihn leider erst vor zwei Minuten aufgesetzt, weil ich ihn zum Beginn dieser Podcast-Folge vergessen habe.
-
2:35
Felix Schön.
-
2:43
Kay Deswegen ist er, glaube ich, noch nicht ganz durchgereift. Aber ich trinke ihn dann nachher einfach zwischendurch und mache dann so ein Mhh oder Oh. Oh. Hm.
-
2:50
Felix Sanddorn finde ich ja im Allgemeinen sehr lecker, auch als Schnaps. Bin mal gespannt, was du beim Tee dazu sagst.
-
2:56
Kay Und dazu habe ich auch in Lübeck so eine ganz kleine Duftkerze gekauft. Und die verspricht Meeresbrise. Und die zündet jetzt hier so neben mir her. Und so richtig was rieche ich noch nicht, aber ich bin sicher, es bringt mich noch mal. Ja.
-
3:09
Felix Du hast eine Kerze an.
-
3:11
Kay Duftkerze. Jetzt hier für die Leute, die uns möglicherweise auf YouTube sehen. Hier ist die kleine Duftkerze. Oh. Hm.
-
3:23
Keine Kosten und Mühen gescheut.
-
3:24
Felix Jetzt hast du YouTube schon angerissen. Die letzte Folge, die wir gemacht haben, die sogenannte Live-Folge aus dem Coding-Camp, die ist ja wahrhaftig in voller Länge bei YouTube online. Und dafür haben wir auch nochmal einen neuen YouTube-Kanal gemacht. So einige Leute haben uns ja auf unserer alten eigentlich Unternehmens-YouTube-Page schon abonniert.
-
3:44
YouTube-Seite nochmal abonnieren. Da ist dann eben die letzte Folge drauf. Bin mir sicher, dass wir es auch in den Shownotes verlinken. Von der Produktionsqualität und so entspricht die nicht hundertprozentig meinen Standards. Das liegt einfach daran, dass wir da natürlich kein Studio haben oder so, sondern einfach mal so ein Setup hingezimmert haben. Aber wer uns mal sehen will, dann lohnt sich das Reinkommen.
-
4:03
Kay Das war auf jeden Fall eine ganz lustige Experience.
-
4:05
Felix Auf jeden Fall. Und ich fand den Podcast tatsächlich auch ganz gut. Und die Soundqualität zum Beispiel auch erstaunlich gut.
3D-Druck mit Claude
4:11–8:24
-
4:11
Kay So, Felix, ich habe zwei interessante, auch KI-relevante Themen, die jetzt gar nicht so Teil unserer Diskussion heute sind, weil sie eher privater Natur sind, aber ich wollte trotzdem gerne berichten.
-
4:22
Also ich habe mir letztes Jahr irgendwann einen 3D-Drucker gekauft und die ganze Zeit schon im Plan, für mein kleines Badezimmerschränkchen einen Ständer für meinen elektrischen Rasierapparat zu bauen. Der liegt da nämlich einfach mal so lose drin und nimmt total viel Platz weg. und dann dachte ich, der muss da irgendwie rein. Er passt aber nicht einfach hochkant hingestellt da rein, dafür ist das Fach zu niedrig, wo der rein muss.
-
4:43
Und deswegen hatte ich schon die ganze Zeit die Idee, da müsste ich doch eigentlich mal so eine Konstruktion bauen. Und jetzt habe ich ja einen etwas technischen Hintergrund. Ich kenne mich also mit technischen Zeichnungen aus und könnte da theoretisch was machen, aber hatte bis jetzt nicht die Muße, mich in so 3D-Programme einzuarbeiten. FreeCAD gibt es ja zum Beispiel als kostenlose Alternative.
-
5:02
Aber da hat mir bisher die Muße gefehlt. Und dann hatte ich am Dienstag auf dem Weg mit dem Fahrrad zurück vom Büro so einen Geistesblitz, nachdem Gabriel mir im Büro wieder vorgeschwärmt hat, wie toll KI inzwischen ist. Dachte ich, ja, gebe ich das einfach mal Claude. Und dann habe ich mich am Abend hingesetzt, Claude angeworfen und gesagt, hier, das ist das Szenario, was ich gerne hätte.
-
5:20
Ich habe die Abmaße genannt von dem Platz im Regal, wo das Ding hin soll und habe ihm dann auf so einem Karopapier von oben ein Foto gemacht. Es gibt ja bei der iPhone Kamera App zumindest und bei den anderen wahrscheinlich auch so eine Wasserwaagenfunktion, dass man das Gerät gerade halten kann. Dann mit dem Karopapier und so einem Zollstock daneben, so einem Zentimeter-Klappmaß, zwei Fotos gemacht von der Seite und von oben.
-
5:45
Hab ihm das gegeben und gesagt, Claude, mach. Soll da reinpassen oder es soll halbwegs vernünftig aussehen. Und dann hat er tatsächlich angefangen, so Dinge gemacht wie erstmal ein 3D-Modell von dem Rasierer zu schaffen, basierend auf den Fotos, die er anhand des Karopapiers getraced hat. und dann auch so Dinge gemacht wie anhand der Exif-Information, also so Metadaten aus den Bildern ausgelesen, welcher Zoom-Level da benutzt wurde und daraus erraten, wie weit wohl die Kamera weg war, um so optische Distortions rauszurechnen und solche Späße.
-
6:17
Hat mir dann am Ende so eine technische Zeichnung dahin geklöppelt und so ein 3D-Modell gebaut und nach, weiß ich nicht, einer Stunde habe ich das in meinen 3D-Drucker reingeworfen und siehe da, es ist ein Ergebnis bei rausgekommen und zwar so wie ich es wollte.
-
6:32
Felix Das funktioniert, das Ding.
-
6:33
Kay das funktioniert. Vielleicht machen wir ein Foto für die Shownotes. Der hat mit den Toleranzen ein bisschen übertrieben. Ich wollte eigentlich so eine Aufnahme haben, wo der so passgenau reinpasst mit so einem satisfying Formschluss. Da hat der glaube ich ein bisschen mit den Toleranzen übertrieben, weil er unbedingt wollte, dass das passt und er natürlich auch nur anhand von einem Karopapier das nicht auf den Millimeter tracen konnte, aber es hat fantastisch funktioniert. Das muss ich einfach mal hier mit großer Begeisterung sagen.
-
6:57
Felix Ich dachte, jetzt kommt das Plot. Ja, und dann kam gar nichts bei raus.
-
7:02
Kay Ne, es war wirklich, wirklich gut. Also der hat dann auch tatsächlich mit, ich weiß gar nicht genau wie er das gemacht hat, aber mit so FreeCAD, wenn man das installiert hat, gibt es auch so CLI-Tools dabei. Das heißt, er hat nicht einfach irgendwas sich ausgedacht, sondern er hat wirklich externe Tools benutzt, die für so 3D-Modellierungen angedacht waren. Und da ist wirklich was Vernünftiges bei rumgekommen. Das hat mich total überrascht.
-
7:25
Felix Ja, anfangs sagte ich ja, das sind immer First-World-Problems, wenn der Rasierer nicht gerade im Regal steht. Aber ich lasse das mal so stehen. Also Kay, ich freue mich wahnsinnig, dass du jetzt einen Ständer für deinen Rasierer hast und dein Bad endlich ordentlich ist. Aber das Spannende und das ist ja, glaube ich, die Message dahinter ist ja, dass KI schon so weit ist, dass eben nicht nur Code funktioniert, sondern eben auch so Sachen, wo früher ziemlich am Murks bei rauskamen.
-
7:47
Also 3D-Modelle ist ja nicht das Einfachste, weil ja, gehört ja viel dazu, so ein Ding zu bauen. Und dass da was Vernünftiges rauskommt, hätte ich tatsächlich jetzt auch nicht gedacht, weil du hast mir ja noch nicht verraten, was das Ergebnis ist, obwohl du mir dein Problem schon mal geschildert hast. Und ich hätte jetzt eher gedacht, da kommt was raus, aber irgendwie, das kommt so nach einer Woche, wenn der Hype vorbei ist, wieder aus dem Regal raus, weil es dann doch irgendwie nicht so praktisch ist.
-
8:09
Bin mal gespannt. Stimmt.
-
8:10
Kay Also der Rasierer ist mir schon zweimal entgegengefallen, als ich die die Tür aufgemacht habe. Und es ist ja nicht nur ein 3D-Modell, sondern auch ein druckbares 3D-Modell. Das hat ja nochmal besondere Voraussetzungen darin, dass die Dicke von den Wänden stimmt und alles Mögliche. Also das hat mich wirklich begeistert.
KI-Hype und Projektalltag
8:24–13:50
-
8:24
Kay Und was du gerade gesagt hast, schließt so ein bisschen ans zweite Thema an, was ich mitbringen wollte, nämlich, wenn ich so die Nachrichten verfolge, besonders die KI-relevanten Nachrichten, dann klingt das ja immer unfassbar krass, was da inzwischen geht. Also wahrscheinlich auch sehr viel Marketing dabei mit KIs, die automatisch irgendwelche Webseiten hacken, um ihre Testanforderungen zu erfüllen oder weiß ich nicht was.
-
8:46
Oder auch, wenn man dann neue Projekte raus und sich YouTube-Videos anschaut, dann sind das immer so Beispiele von, mach mir bitte Facebook mit so einem Zweizeiler als Prompt und dann rennt der los und nach 30 Jahren und 5000 Euro verbrannt, wenn das mal reicht, steht da irgendwas. irgendwas. Aber das ist ja ehrlicherweise nicht so, wie wir im Alltag damit interagieren.
-
8:53
Felix Mhm. Und dann klappt's.
-
9:08
Kay Da sprechen wir heute sicherlich auch nochmal, wie wir mit der KI interagieren und welche Anforderungen auch wir daran haben. Und das macht bei mir so eine komische Diskrepanz auf zwischen einerseits in der Theorie muss das ja das Beste auf der Welt sein, wenn man so Nachrichten und Hypes und auch Produktversprechungen hört. Und andererseits so aus dem Alltag merke ich immer wieder, da stolpert die KI mal hier oder macht da da mal einen schlechten Call. Und da frage ich mich, benutzen wir die einfach nur falsch oder ist das alles Marketing-Hype da draußen?
-
9:40
Felix Das ist jetzt eine ganze Podcast-Folge, die du aufmachst, mal eben so in der Einleitung.
-
9:42
Kay Ja.
-
9:44
Felix Aber ich stelle das natürlich auch fest. Ich gucke dann da rein und dann ist Claude Opus 5.5 irgendwie rausgekommen oder Fable 5.1. Und da braucht man nicht lange warten. Dann kommt das YouTube-Video raus, wo dann steht, das ist der absolute Game-Changer und Breaking und alles. Wenn dann der erste Hype so ein bisschen verflogen ist, merkt man, eigentlich ist es nuancenbesser als das letzte.
-
10:04
Und gleichzeitig kommen dann natürlich diese Videos, wo dann jemand eine ganze Website erstellt und die dann natürlich mega gut geschliffen und super cool aussieht. Ja, und davon darf man sich einfach nicht blenden lassen, weil entweder steckt da doch wahnsinnig viel Arbeit drin oder es ist halt genau der eine Anwendungsfall, der funktioniert. Aber wenn ich für meine Kunden hingehe und selbst was vibecoden würde, und da sagst du ja, das ist gar nicht unsere Methode, wie wir da dran gehen, sondern wir gehen ja eher iterativ dann an die Sachen und wollen gar nicht so diesen Riesenwurf direkt im ersten Prompt machen, sondern wir wollen uns der ganzen Sache nähern, wollen vielleicht ein Datenbankmodell machen und so weiter.
-
10:35
Und jedenfalls, selbst wenn man das in einem Prompt machen würde, kommt nie das raus, was der Kunde erwartet, was ich erwarte. Und jetzt werden die Leute da draußen natürlich sagen, ja, dann habe ich falsch gepromptet. Vielleicht auch das. Aber dann stelle ich die Gegenfrage, kann man überhaupt richtig prompten, wenn es um so komplexe Sachen geht?
-
10:51
Oder muss man dann eben auch Stück für Stück vorgehen? Also da stimme ich dir schon zu in der Theorie, dass ich sage, ich würde mal schätzen, wir prompten nicht falsch, sondern ganz umgedreht würde ich sogar sagen, wir prompten noch richtiger als andere, weil wir mit technischem Verständnis drangehen und vielleicht sogar einen richtigen Tech-Stack oder sowas mitgeben. eben. Ja, und es dauert eben auch seine Zeit, mit KI Sachen zu erstellen.
-
11:10
Kay Ich glaube, was da deutlich wird, ist, dass KI ein unglaublich mächtiges Werkzeug ist. Aber so wie jedes mächtige Werkzeug, muss man auch wissen, wie man damit umgeht. Und da hast du gerade schon gesagt, das Thema Prompt Engineering, aber auch, welche Sachen ich überhaupt als Prompt reinfütter. und ich glaube, das zeigt so ein bisschen, dass es nicht darum geht, mit der KI uns als Entwickler und Mittelsmänner zu ersetzen, sodass sich unsere Kunden künftig denken, ja, warum brauche ich noch den in IT, wenn ich doch alles einfach in die KI rein prompten kann, sondern dass man eben schon sehr genau mit diesem Tool wissen muss, umzugehen und wir als Experten geübt darin sind, diese Tools zu verwenden, die Prompts richtig zu schreiben, die richtig einzufangen.
-
11:52
Also ich sehe das so ein bisschen als Lichtstreifen am Horizont, dass wir nicht obsolet werden durch KI, sondern eher KI uns als starkes Tool helfen kann.
-
12:02
Felix Habe ich sogar ein Beispiel aus der Praxis jetzt ganz aktuell. Da hat ein Kunde auf einer WordPress-Seite, wo ich inzwischen auch viel AI einsetze, hat einen Blogbeitrag geschrieben und hat den mit AI letztlich dann in Format bringen lassen und auf die Website bringen lassen. Und das ist so eine Elementor V4-Seite, also mit diesem Atomic Editor. Das weiß der Kunde natürlich so direkt nicht, also er könnte das sicherlich wissen.
-
12:22
Aber er ist natürlich hingegangen und hat hat nur Claude gesagt, hier, mach mal einen schönen Blogbeitrag und ist dann ein bisschen umständlich hingegangen, hat sich das JSON rausgeholt, das Elementor ja schreibt, hat das dann manipuliert und das manipulierte JSON von Claude dann letztlich wieder hochgeladen. Und ich bin hingegangen und habe zwar eine andere Seite, aber letztlich gleiches Prinzip gemacht.
-
12:42
Bin auch mit Claude ein bisschen anders rangegangen. Ich habe direkt SSH-Zugang auf den Server gegeben. Da müssen jetzt alle sich die Ohren zuhalten. Aber das war für so ein kleines und gekapseltes Projekt, glaube ich, gerade das Richtige und es war so eine Work-in-Progress-Seite. Also da konnte jetzt auch nicht viel passieren.
-
12:54
Und es ist ein Unterschied wie Tag und Nacht, das, was der Kunde da rausbekommen hat und das, was ich da rausbekommen habe. Und das liegt einfach daran, dass ich Claude so Sachen mitgebe hier, das ist Elementor V4, versuche die Atomic-Elemente zu benutzen. Immer wenn du ein V3-Element benutzen solltest, frag nach, mach keinen Custom-CSS-Code rein, weil das natürlich die ganze Seite vermüllt und Inkonsistenzen erzeugt. Wenn du Custom-CSS-Code machen würdest, frag nach.
-
13:17
Und insgesamt kam da einfach eine Seite raus, die besser aussah, die vernünftiger funktioniert hat, die die Komponenten wiederverwendet hat, die wir auf der Seite sowieso schon haben. Und da sieht man schon dran, also nur das reine Prompten ist nicht unbedingt immer alles, sondern man muss auch so ein bisschen Know-how mitbringen und kann dann einfach ein bisschen besser engineeren.
-
13:36
Und das fand ich ganz spannend, wie unterschiedlich die Ergebnisse dann sind, weil ich gedacht hätte, Claude ist Claude. Und du hast das eben so im Nebensatz gesagt, KI kann alles, nur man muss sie auch dahin bringen, dann alles auszuspucken und in der richtigen Art und Weise.
-
13:41
Kay Genau.
Wenn Code Reviews zum Flaschenhals werden
13:50–21:09
-
13:50
Kay Es bringt uns organisch zu dem eigentlichen Thema, über das wir heute sprechen wollen nach einer Viertelstunde. Und zwar Code Reviews im Zeitalter von KI. KI. Die Genese für diese Folge kommt daher, dass ich insbesondere die letzten Wochen immer ein bisschen steigende Bauchschmerzen hatte, könnte man schon sagen, durch den Fall, dass wir in den vorherigen Folgen ja schon aufbereitet haben, wie großartig unsere Mitarbeitenden mithilfe von KI Code generieren können und das einfach dazu geführt hat, dass bei mir die Liste der Merge Requests, die ich Code reviewen sollte und bei denen ich Qualitätssicherung machen sollte, immer länger wurde und gleichzeitig jeder einzelne Merge Request ja wie so eine Abschlussprüfung ist.
-
13:58
Felix Ganz
-
14:32
Kay Man muss direkt, wenn man es vernünftig machen will, mit klarem Kopf dabei sein, sich in Sekundenschnelle in das Projekt mal eindenken, wenn man sogar unterschiedliche Projekte hat, überlegen, was sind da jetzt die Anforderungen, was will der Kunde eigentlich, was gibt es für Abhängigkeiten zu anderen Projekten, zu externen Diensten und so weiter.
-
14:50
Das ist also wirklich super anstrengend, sodass ich also nach zwei, drei Stunden Merge Requests am Tag einfach mental durch war und gar nicht dann in der Geschwindigkeit den Code-Reviews hinterherkommen könnte, wie sie an mich gestellt wurden, mit der Hilfe von KI vielleicht sogar. Da kam es noch dazu, dass ich auch Urlaub hatte und so, also ein bisschen externe Faktoren.
-
15:13
Aber das Grundproblem bleibt ja bestehen und ich predige auch die ganze Zeit, dass ja irgendjemand Verantwortung für das haben muss, was unsere KI erzeugt, weil wenn wir kaputten Code an den Kunden shippen, dann ist dem ja egal, dass das KI erzeugt hat. dann ruft der im Zweifel mich an als Projektleiter und ich muss die Scheiße dann ausbaden, wenn die Live-Seite gecrashed ist.
-
15:33
Deswegen sehe ich mich da schon auch in der Verantwortung als letzte Instanz, mit der Verantwortung, die dahinter steckt, auch eben die Sauberkeit und mentale Präsenz zu zeigen, die da meiner Meinung nach notwendig ist. Und über diese Diskrepanz, die dabei entstanden ist und wie wir damit umgehen, wollen wir jetzt heute eigentlich sprechen. Hast du dazu vorab Gedanken, Felix? Felix.
-
15:54
Felix viele. Also ganz oben steht ja mal, und das wissen alle Hörenden des Podcasts hier, dass wir uns auf die Fahne geschrieben haben, schon seit jeher, dass wir Software in höchster Qualität machen wollen. Weil das einfach das ist, wie wir unseren USP definieren. Früher ist man dann vielleicht irgendwie nach Asien gegangen und hat da seine Software entwickeln lassen.
-
15:56
Kay Genau.
-
16:12
Felix Heute macht AI auch viel. und für uns war damals wie heute immer das Credo, wir wollen höchste Qualität machen und zwar in so einer Qualität, die jemand anderes nicht ohne weiteres machen kann. Also sage ich jetzt nicht, dass es da draußen nicht Leute gibt, die eine ähnliche Qualität machen, aber da muss man schon eine gewisse Expertise mitbringen. Und das ist jetzt in Zeiten von KI genauso wichtig wie früher.
-
16:32
Und wie wir diese Reviews machen und wie akribisch wir die angehen, das haben wir in einer separaten Folge schon mal gemacht und das klingt, glaube ich, hier auch in den Folgen immer mal wieder durch. und einen großen Teil von diesen Reviews machst du ja tatsächlich bei uns, weil du einfach die beste technische Expertise auch hast und in vielen Projekten fachlich auch drin steckst.
-
16:51
Und ja, genau, ich habe ja in letzter Zeit dann auch festgestellt, auch auf deine Hinweise natürlich, dass du eigentlich einen Riesenhaufen an Reviews vor dir hast und gar nicht mehr so richtig weißt, wie du hinterherkommen sollst. Und auf diese Reviews zu verzichten, ist aber letztlich für uns eigentlich auch keine Option. Und dann haben wir uns ganz oft gedreht, wie wir da irgendwie drangehen können.
-
17:09
Und das Grundproblem ist, glaube ich, dass mit AI einfach diese Code-Generierung so automatisiert ist, dass ganz, ganz viel Code in relativ kurzer Zeit inzwischen geschrieben werden kann, der aber irgendwie auch kontrolliert werden muss. Natürlich einerseits durch die Leute, die den schreiben selbst, aber dann eben auch durch einen Reviewer. Und ich glaube, wir haben so ein paar Ansätze entwickelt, wie man damit umgehen kann. Und das ist sicherlich dann auch Thema heute hier.
-
17:32
Kay Bevor wir über die konkreten Sachen beim Code-Review sprechen, möchte ich ein anderes Gedankenexperiment anstoßen, nämlich mal rein hypothetisch, die KI würde uns helfen, 50% oder noch schneller den Code zu erzeugen und würde uns auf magische Art und Weise auch helfen, den Code in der gleichen Geschwindigkeit zu reviewen und die Sachen zu shippen.
-
17:51
Dann stoßen wir ja ganz automatisch an das Problem, dass wir jetzt auf einmal viel effizienter sind und viel schneller Aber der Kunde, der uns ja die Aufgaben stellt, im Zweifel dann das Bottleneck wird und sagt, ja, so schnell wie ihr Features shippt und Sachen macht, komme ich gar nicht hinterher, neue Anforderungen zu stellen. Man hat ja selten nur das Szenario oder zumindest in unserem Fall, dass wirklich so ein riesen Themenblock Arbeit vor einem liegt.
-
18:16
Zum Beispiel, wenn jetzt ein neues Projekt gestartet wird und man sagt hier, das und das sind die Anforderungen, neuen Shop aufsetzen, dann hat man so einen riesen Block an Aufgaben, die erstmal für lange Zeit vorhalten. Aber wenn das erstmal abgeschlossen ist, dann ist es ja mehr so ein iterativer Prozess und der Kunde sagt, ey, jetzt hier den Button hätte ich noch gerne noch pink und dieses kleine Feature wäre auch noch schön.
-
18:36
Aber der kann das natürlich nicht wie so ein Maschinengewehr rausfeuern, wie wir es dann vielleicht im Zweifel abarbeiten. Das heißt, selbst wenn wir die Geschwindigkeit erhöhen, stoßen wir trotzdem irgendwann an das zugrunde liegende Problem, nämlich dass wir dann als ganze Firma und nicht nur die Mitarbeitenden als Code-Erzeuger da sitzen und sagen, ja, jetzt haben wir alles erledigt, der Kunde kommt nicht hinterher, was machen wir jetzt?
-
18:57
Felix Das heißt, deine Theorie ist, wir müssen langsam arbeiten zum Selbsterhaltungszweck.
-
19:01
Kay Da zumindest nicht diesem Problem gewahr werden. Oder eben, das würde ich eher daraus mitnehmen, sagen, dass Geschwindigkeit nicht alles ist, sondern dann die Zeit, die man gewinnt, habe ich auch schon öfter gesagt, überlegen, wie man die besser einbinden kann.
-
19:14
Felix Ja, ich sehe das tatsächlich auch noch aus einer bisschen anderen Perspektive, habe ich hier glaube ich auch schon mal gesagt. Wir haben die Möglichkeit inzwischen ganz andere Sachen zu machen, die wir vorher mit KI so hätten nicht machen können. Zum Beispiel bauen wir jetzt gerade für den Kunden einen Custom Laravel Shop. Im Prinzip ist es eigentlich nur ein Warenkorb und ein Checkout, aber das wäre ein Umfang so mit Steuerberechnung und allem, was da so zugehört.
-
19:35
Das hätten wir vor KI wahrscheinlich so nicht gestemmt. Nicht zuletzt deshalb, weil der Kunde dafür das Budget auch nicht frei gemacht hat. hätte. Und inzwischen können wir sowas in einer relativ passenden Zeit mit einem halbwegs überschaubaren Budget können wir sowas umsetzen. Und das ist vielleicht so ein bisschen das andere, dass du ja sagst, der Kunde kann vielleicht gar nicht so schnell Aufgaben liefern, aber die Aufgaben, die kommen, sind schon ein Tick umfangreicher auch als früher und wir können Sachen komplexer anbieten, als es früher war.
-
20:00
Das heißt, so ein bisschen mehr Aufgaben kommen schon und ich weiß noch nicht ganz genau, wo sich das jetzt mittelfristig einpendelt, aber die Aufgaben, die wir machen, die sind schon, also kann ich schon mehr anbieten als früher. Ich habe noch ein anderes Beispiel, so einen Umzug von einer Website. Das ist eine WordPress-Website, die aber ein ziemlich elaboriertes Setup hat mit Docker und Cloudflare dazwischen und Anmeldungen über Entra ID von Microsoft und so.
-
20:24
Und das sind Sachen, womit wir uns prinzipiell auskennen. Aber das wäre wahnsinnig teuer, so was umzuziehen, wenn man das nicht KI-assisted, also AI-assisted macht. Und das sind Sachen, die wir heute anbieten können, die wir machen können und wo auch tatsächlich mehr Arbeit entsteht, weil wir mit mit KI auch einfach mehr Arbeit in kürzerer Zeit abarbeiten können und einen guten Preis dafür machen können.
-
20:43
Aber das Thema ist spannend, Kay, das können wir vielleicht nochmal mitnehmen, weil sich der Markt tatsächlich verändert. Während ich früher ja kleine Änderungen versucht habe, wirtschaftlich zu argumentieren, kann ich heute hingehen und sagen, hier, guck mal, ihr habt seit Ewigkeiten das Problem mit dem Online-Shop, wenn ein Update reinkommt, dann fliegt euch was auseinander und so weiter und so fort und jetzt können wir euch den ganzen Shop ersetzen und das noch zu einem geilen Preis und ihr kriegt alles, was ihr euch jemals gewünscht habt. und das hätte ich vorher so nie anbieten können.
-
21:06
Das heißt, der Markt verändert sich und das Arbeiten verändert sich auch. Und um auf die heutige Folge zurückzukommen, dadurch, dass wir dann größere Pakete anbieten, die wir noch schneller shippen können und die wir auch schneller shippen müssen, weil der Kunde eben irgendwie in einem gewissen Budget bleiben will, dann ist ja noch mehr Code da, der letztlich gereviewt werden muss. Und wie gehen wir daran? Das ist unsere Frage heute.
Kann KI Code Reviews ersetzen?
21:09–28:28
-
21:27
Kay Genau. Was ich direkt schon mal vorneweg ausschließen möchte, ist, dass manche Zuhörenden vielleicht sagen, ja, aber dann macht doch halt auch automatische KI-Reviews und dann shippt man das gleich. Und das ist, glaube ich, eine Sackgasse, die nur zum Teilen... Ja, genau.
-
21:39
Felix Aber lass uns da mal reingehen, Kay. Lass uns da mal reingehen in die KI-Reviews.
-
21:43
Kay Meine Grundprämisse ist ja, dass irgendein Mensch Verantwortung für den Code haben muss. Und genauso wie eine Maschine kein Urheberrecht erzeugen kann, weil es keine Maschine ist, kann eine Maschine keine Verantwortung für irgendwas haben, sondern es muss immer ein Mensch da sein. Und das heißt, wenn jetzt ich als Kay verantwortlich in einem Projekt bin, dann kann ich entweder sagen, okay, ich werfe mal Claude 5.irgendwas drauf und sage, mach mal ein Code-Review und der sagt, okay, alles okay und dann shippe ich es ohne zu sehen, dann ist das total schnell, aber dann nehme ich Verantwortung für etwas in Kauf, wofür ich gar keine Verantwortung nehmen kann, weil ich es nicht gesehen habe.
-
22:21
Das bedeutet, an dieser Stelle muss es eigentlich so bleiben, da führt meiner Meinung nach kein Weg herum, dass diejenige Person, die verantwortlich für den Code ist bei uns in der Firma, auch jede einzelne Zeile fast mal gesehen haben muss. Und die Frage ist deswegen nicht, wie kann KI den Review-Prozess ersetzen, sondern eher, wie können wir KI einsetzen, den Review-Prozess möglichst so zu gestalten, dass der Mensch, der da final drauf sitzt, um das abzunehmen, damit möglichst wenig Arbeit noch hat.
-
22:53
Felix Genau, du hast es richtig gesagt, KI ergänzt ja unseren Review-Prozess tatsächlich auch heute schon. Das ist vielleicht auch eine der Infos, die wir heute rausgeben wollen. Wir haben ja gewisse Mechaniken, zum Beispiel so einen Bot, da kommst du ja später nochmal zu, der auch so ein Pre-Review macht. Und natürlich sind die Entwickler auch in der Entwicklung schon angehalten, nochmal einen Loop zu drehen und zu sagen, KI, guck nochmal objektiv über meinen Code drüber.
-
23:14
Und das Coole ist, dass sich diese Code-Reviews ja total verändert haben.
-
23:22
Früher haben wir auch viel darauf geguckt, gerade bei Junior-Kollegen, Programmierern, wie ist die Syntax, wie ist der Stil, sind da vielleicht mögliche Bugs drin, also ich sag mal so einfache Sachen wie eine Division durch Null oder so, das sind Sachen, die wir früher rausfinden wollten und vielleicht aber auch sowas wie Framework-Konventionen, da habe ich mich jetzt viel mit rumgeplagt, wie Laravel zum Beispiel seinen Tabellennamen haben will und dass man da die richtige Reihenfolge von den Tabellennamen hat, dass man das Framework halt easy verwendet und andere Entwickler es leichter haben, da reinzukommen und vielleicht auch andere KIs es leichter haben, da reinzukommen.
-
23:50
und inzwischen ist es ja so, dass wir so ein kleines KI, ich nenne es mal Pre-Review eigentlich hier machen und dann haben wir mit diesen ganzen Themen schon mal nichts mehr zu tun und das ist ja schon ein Riesengewinn, würde ich sagen. Also das musst du vielleicht aus der Praxis auch sagen. Guckst du noch viel so auf Syntax und ich sage jetzt mal stumpfe Einrückung, gut, die hat uns jetzt früher der Linter auch schon abgenommen. Hat sich das bei dir tatsächlich verändert oder ist das nur meine Wahrnehmung?
-
24:16
Kay Ich glaube, es ist nur deine Wahrnehmung.
-
24:19
Felix Oha.
-
24:20
Kay Also, du hast schon recht im Sinne von, dass sich die Qualität der Reviews geändert hat, weil wir früher noch sehr mehr da reingegangen sind und gesagt haben, hier hast du irgendwelche Coding-Prinzipien nicht berücksichtigt oder warum ist dieser Stil besser als dieser Stil. Das hat sich aber meiner Meinung nach nicht dadurch gelöst, dass wir jetzt mehr KI einsetzen, sondern dass einfach die Mitarbeitenden durch die Zeit, die sie bei uns im Unternehmen sind, einfach schon unseren Stil verinnerlicht haben, wissen, worauf wir so Wert legen und das auch mitgestaltet haben und deswegen selber proaktiv da mehr darauf achten.
-
24:21
Felix Genau.
-
24:51
Kay Wobei da natürlich dann auch die Gefahr ist, und das gehört auch so weit dazu, dass die Mitarbeitenden dann selber mit KI irgendwelche Features machen und das dann nur so überfliegen, was das Ergebnis ist und dabei aber übersehen, dass sich die KI vielleicht nicht an die Guidelines hält, die wir so machen mit Early Escape statt so If-Verschachtelung. Genau.
-
25:10
Felix Aber was die KI schon richtig gut rausfinden kann, sind auch so Security-Probleme, so offensichtliche oder so einfach Bugs, wo dann die KI schon noch Wege findet, wie ein Code vielleicht nicht funktionieren kann. Das sind ja eigentlich Sachen, die zieht dir die KI heute richtig geil schon raus.
-
25:27
Kay Und das ist das, was ich gemerkt habe, was die große Stärke sein kann, ist, wenn du die KI gezielt auf ein Code-Review drauflässt oder gezielt ein Review machen lässt. Und zwar nicht in der Form von, hey, review mal bitte diesen kompletten Plan, der hier ist, der irgendein Feature macht, sondern gezielt sagen, hey, achte mal bitte auf Breaking Changes nach außen hin, weil unsere API von Drittnutzern genutzt wird.
-
25:51
Und dann ist die wirklich unglaublich gut darin, alles zu scannen, alles zu gucken, alle Eventualitäten zu checken, jede Bedingung einmal durchzuspielen, weil sie eben genau ein gezieltes Ding hat, worauf sie sich konzentrieren kann. Wenn man der einfach nur sagt, mach mal ein Review, dann galoppiert die in alle möglichen Himmelsrichtungen los und findet eine Million Sachen und eine Million Sachen nicht. Und dann habe ich mit dem Review von dem KI-Review wieder mehr Arbeit als mit dem Review des Branches selber. Das ist wirklich schwierig, da den Überblick zu behalten dann.
-
26:24
Felix Da machst du so einen Punkt auf, der mir am meisten auffällt, wenn ich KI-Code reviewe. Die ist ja oft zu komplex unterwegs. Also die Kunden von uns, die haben eine bestimmte Anforderung und die KI baut aber oft Sachen, die für alle Eventualitäten funktionieren. Also wieder so ein Beispiel jetzt aus dem Shop. Wir haben nur mit europäischen, eigentlich nur mit deutschen Kunden zu tun in dem Fall. Und da haben wir eigentlich nur eine Mehrwertsteuer als Steuerberechnung.
-
26:47
Und die KI nimmt das dann natürlich Tax und macht dann Tax-Berechnungen ohne Ende auf. Und was wir aber eigentlich wollen, ist die VAT, also letztlich dann die Umsatzsteuerberechnung. Und das sind Sachen, wo KI ja völlig mit Kanonen auf Spatzen schießt, wenn man sie ja nicht irgendwie im Zaum halten würde. Und das sind Sachen, die mir schon auffallen, dass ich ganz oft KI sage, boah, aber das kannst du eigentlich wieder ausbauen und das kannst du wieder ausbauen.
-
27:32
Kay Du hast ein bisschen schon angedeutet, was wir jetzt als Konsequenz aus diesem ganzen Dilemma mitgenommen haben. Nämlich, es kann nicht die Lösung sein, dass die Mitarbeitenden weiter wie bisher ihren Code erzeugen und dann mir zum First Review geben, sondern dass dieser ganze Qualitätssicherungsprozess quasi einen Schritt weiter nach vorne gehen muss, damit bei mir als finaler Reviewer und derjenige, der die Verantwortung damit hat, möglichst entlastet wird.
-
27:48
Felix der baut ja Laravel Packages noch und nöcher ein, also ich hatte jetzt zum Beispiel bei den Produkten, da hätte er dann von Spatie so ein Media Package eingebaut, was super geil ist und Medien versionieren kann und verschiedene Größen anlegen kann und allen Zipp und Zapp, völliger Overkill für das Projekt und ihn da einzubremsen das ist sicherlich eine Aufgabe dann auch des Entwicklenden Mhm Mhm
-
28:01
Kay Weil ich könnte natürlich auch hingehen, wenn ich einen Branch bekomme und dann in die KI jagen und sagen, hier, mach mal ein Code-Review. Aber dann muss ich mich ja wieder damit beschäftigen, das Ergebnis des KI-Reviews zu beurteilen und in den Merge Request zu übertragen. Und das ist natürlich auch alles zeitintensiv. Deswegen kann der Schritt nur sein, das quasi auszulagern, bevor er überhaupt an mich herankommt und die Menschen, die den Code erzeugt haben mithilfe von KI, da mehr in die Verantwortung nehmen.
Unser KI-Review-Bot für GitLab
28:28–30:31
-
28:28
Kay Und wir haben da so kleine Tools, die du vorhin auch schon angedeutet hast, die dabei ein bisschen unterstützen, nämlich unseren KI-Bot. Der kann nämlich zum Beispiel schon in GitLab, wenn man ihn als Nutzer anspricht und sagt, hey, GITSBot, mach mal bitte ein Review mit diesen und jenem Themen. Dann kann der das schon ganz okay machen. Dann geht er auch den Code durch und schreibt direkt Vorschläge an den entsprechenden Stellen, so wie es ein menschlicher Reviewer auch machen würde.
-
28:55
Oder der kann zum Beispiel auch Merge-Konflikte lösen. Das ist insbesondere dann spannend, wenn man nur so kleine Sachen hat, die nicht die gleichen Dateien betreffen, aber vielleicht unterschiedliche. Also ein übliches Beispiel ist, dass Renovate irgendwie einen Merge-Konflikt hat, weil Packages, die nebeneinander liegen, geupdatet wurden und dann ist das kein sauberer Merge.
-
29:12
Und bei sowas kann der GITSBot fantastisch hingehen und so Kleinigkeiten lösen. Und das ist mir schon immer eine große Hilfe, wenn ich sehe, oh, hier sind irgendwelche kleinen Sachen, gib das mal dem, dann kann er das schon meistens ganz gut lösen. Und eine letzte Sache, die der auch macht, die ich auch nicht gedacht habe, dass ich sie brauche, ist so eine Art Wiedervorlage für Merge Requests zu machen.
-
29:32
Weil wir haben es ja so, dass ein Merge Request immer einem Nutzer zugewiesen ist und die es dann auch in ihrer To-Do-Liste sehen als offener Punkt. Aber manchmal gibt es auch Merge Requests, wo noch externe Abhängigkeiten sind, wo noch irgendwas geklärt werden muss, wo noch Daten erforderlich sind oder solche Sachen. Und dann zu sagen, hey, at GITSBot, mach mir mal eine Wiedervorlage auf in einer Woche, dann liegt das bei dem und in einer Woche schiebt er mir das wieder zurück und das räumt einfach meinen Tagesablauf unglaublich auf. Das hätte ich nicht gedacht.
-
30:01
Felix Ja genau, GITSBot übrigens, das hier nochmal vorweg steht für Geenen-IT-Systeme-Bot. Das hat mit Git, also der Versionierung jetzt, nicht so wahnsinnig viel zu tun, außer dass es bei uns dann im Wesentlichen über GitLab gesteuert wird. Genau, von daher passt es eigentlich ganz gut in eine Doppeldeutigkeit. Und Kay, ich habe mir vor dem Podcast sagen lassen, du machst zu diesem GITSBot tatsächlich noch ein kleines Interview, auch mit dem Gabriel.
-
30:12
Kay Genau. Ja, genau.
-
30:23
Felix Und da bin ich ganz gespannt drauf. Da gehst du ein bisschen auf die technischen Aspekte mit Gabriel ein, wie der gebaut wurde und was die Gedanken dahinter sind.
Interview: Wie funktioniert der GITSBot?
30:31–42:18
-
30:31
Kay Genau, der hat das nämlich alles aufgesetzt und nachdem ich jetzt gesagt habe, was der tut, klären wir jetzt in dem Interview, wie der das tut. Und das kommt genau jetzt. So, da haben wir es geschafft. Hier sitzt mir der Gabriel gegenüber. Hallo Gabriel, schön, dass du es einrichten konntest und schön, dass du dir die Zeit nimmst, darüber zu sprechen, was du da Feines gebaut hast.
-
30:52
Gabriel Ja, gar kein Problem. Ich bin mal gespannt, ob ich alle Fragen beantworten kann.
-
30:57
Kay Ich hoffe doch, du hast es ja schließlich gebaut. Also wir haben gerade eben darüber gesprochen, was der GITSBot alles Tolles kann und weil du es gebaut hast, frage ich jetzt dich, wie das Ganze so funktioniert und vielleicht kannst du uns da ja so einen kleinen Einblick geben, so einen kleinen Abriss, wie das Ganze überhaupt funktioniert, dass wir in GitLab den GITSBot ansprechen können und der dann Dinge tut.
-
31:17
Gabriel Yes, kann ich machen. Die Frage ist, wollen wir vorher einmal kurz klären, wie es dazu gekommen ist? Ich weiß schon gar nicht mehr, wer die Idee überhaupt hatte oder willst du direkt in das Technische rein?
-
31:28
Kay Ach, wenn du da was beitragen kannst, ich kann mich ehrlich gesagt auch nicht mehr erinnern. Schon so lange her.
-
31:32
Gabriel Ich glaube, das fällt ein bisschen unter das Technische, deswegen erwähne ich das. Und zwar hat das, glaube ich, damit angefangen, weil ich angefangen habe, mit Claude diese Skills zu entwickeln und dann immer irgendwie Merge Requests reviewen lassen habe von Claude selber und da quasi ein Skill entwickelt habe, also quasi einfach ein Workflow, den ich abgelegt habe für Claude, dass bestimmte Sachen passieren sollen, wenn er ein Merge Request reviewt. Und ich glaube, das war der Aufhänger, dass ich mir dachte, okay, das kann man auch irgendwie automatisieren.
-
32:08
Kay Und wie hast du es dann geschafft, dass das bei GitLab so eingebunden ist? Also erstmal, da ist ein Claude dahinter, ne? Ganz klassisch, wie wir es ja auch benutzen mit unserem normalen Firmenaccount, also keine API oder solche Späße.
-
32:20
Gabriel Genau, also zu den Grundlagen. Also es läuft halt im Docker-Container. Da wird einfach GitLab gepollt, jede Minute. Und wird einfach geschaut. Wir haben extra Account angelegt, der halt Berechtigung für die Repos hat. Und der schaut einfach, existiert ein neues Kommentar. und im Hintergrund läuft dann einfach Regex, der auf ein paar spezifische Wörter quasi prüft. Sowas wie Review, Wiedervorlage und ich glaube Fix.
-
32:49
Kay Ja, und Merge-Konflikt, ne?
-
32:51
Gabriel Ja genau, Merge-Konflikt. Guck mal, ich benutze den aktuell gar nicht so viel, deswegen weiß ich das schon gar nicht mehr. Genau, aber das ist im Prinzip, was da passiert. Und wenn Regex anschlägt, hier, ich habe da was, dann passiert das, was du schon gesagt hast. Das Ganze geht an Claude und wir benutzen da keine API, sondern damals, wo ich das eingerichtet habe, hatte ich halt nur eine Subscription und dachte, okay, warum benutzen wir die nicht einfach, statt für eine extra API zu zahlen, wir haben die ja eh, genau, und dann wird da einfach Claude CLI aufgerufen im Docker mit dem Prompt, den du halt in GitLab gepromptet hast, oder der Frage, genau, und das Ganze geht dann an einen Workflow, also an so einen Skill, der dann entscheidet, was passieren soll.
-
33:34
Also dann gibt es quasi diese drei Abstufen. Also einmal soll eine Wiedervorlage passieren, ein Review oder ist es ein Chore irgendwie, kann da Merge-Konflikte so kleine gelöst werden.
-
33:45
Kay Das ist aber alles bei dir lokal auf dem Rechner im Docker-Umgebung, hast du gesagt.
-
33:51
Gabriel Genau, das ist alles bei mir lokal. Das läuft im Docker. Da habe ich ein Image für, um das zu starten. und genau, dann gibt es dann natürlich ganz viele Feinheiten noch, die man einstellen muss, das Ganze drumherum, wie viele Dateien darf der überhaupt lesen, weil wir wollen ja nicht alle Tokens verballern und dann muss man natürlich diesen Workflow, diesen Review feintunen, was soll der überhaupt alles reviewen nach Projekt, dann checkt Claude quasi, in welcher Domäne befinden wir uns überhaupt, hat der PR irgendwie nur Frontend-Änderungen oder nur Backend-Änderungen, Also wenn ich im Backend bin, brauche ich keinen Frontend-Review und dann gibt es halt ein paar Checks, was sinnvoll ist zu reviewen und der passiert dann im Hintergrund.
-
34:33
Kay Wie meinst du das denn mit diesen spezifischen Themenfeldern? Das ist doch im Prinzip dieselbe Claude-Instanz, die dahinter läuft. Oder hast du da spezifische Feintuning-Einstellungen, je nachdem, ob es eine Backend-Änderung ist oder so? Mhm.
-
34:47
Gabriel Genau, also ich habe quasi so, ich nenne es mal Style Guides, ich weiß nicht, ob es der passende Begriff ist, aber so Regeln festgelegt, was der alles prüfen soll, wenn es jetzt, sage ich mal, ein Backend gibt. Und da haben wir als Firma einfach so ein paar Standards festgelegt, die geprüft werden. Das gleiche im Frontend irgendwie auf SEO achten oder sonstige Sachen.
-
35:09
Und die willst du ja nicht alles direkt reinwerfen. Also damit Claude gut funktioniert, gibst du dem ja nur optimalerweise die Informationen, die er gerade braucht. Und deswegen dieser Schritt davor, wenn ich ein Backend-Review habe, dann will ich nicht, dass dieser ganze PR-Ablauf läuft und da drin steht, ja, mach auch für Frontend X und Y.
-
35:21
Kay Okay.
-
35:32
Okay. Du hast vorhin gesagt, es gibt da noch so eine Weiche davor, die im Prinzip anhand von so einfachem Regex schon so grobe Schienen einschlägt. Wieso hast du das denn so gelöst? Könnte man nicht einfach sagen, immer wenn der GITSBot erwähnt wird, haust du das direkt in die KI rein? Hm.
-
35:48
Gabriel Ja, das geht wahrscheinlich auch. Ich hatte ganz selten im Hinterkopf, dass das möglichst Token-effizient sein muss. Deswegen ist so ein Regex natürlich super easy, dass der schon nach bestimmten Wörtern checkt und dann weiß ich schon, das und das muss passieren. Wenn vorher noch Claude läuft und der für mich entscheiden muss, dann verbrauche ich ja im Prinzip Geld und das auch noch viel langsamer als ein Regex-Check.
-
35:55
Kay Mhm.
-
36:11
Woher weiß der denn, da gibt er ja dieses Feature mit der Wiedervorlage, da muss ja irgendeine Art Timer im Hintergrund mitlaufen oder zumindest so eine Art Intervall, wo er regelmäßig checkt, welche Wiedervorlagen jetzt abgelaufen sind. Mhm.
-
36:23
Gabriel Ja genau, das ist auch einfach nur ein, ich glaube Daemon ist der Fachbegriff, also einfach ein Programm, was im Hintergrund läuft. Dieser 60-Sekunden-Takt, der prüft dann gleichzeitig auch mit der Wiedervorlage. Das ist auch rein programmatisch, das ist Claude erstmal gar nicht involviert. der checkt einfach, wann dieses Kommentar passiert ist oder der lest sich die Sachen im JSON-File ab und prüft dann halt das Datum. Und wenn das Datum halt überschritten wird, dann macht er da Sachen.
-
36:52
Kay Und dabei alles nur während dein Laptop aufgeklappt ist. Also das heißt, wenn du mal Urlaub hast oder krank bist oder dein Laptop aus anderen Gründen nicht läuft, dann lebt das ganze Ding auch nicht.
-
37:03
Gabriel Genau, das ist ja die große Diskussion, was heißt große Diskussion, aber die Diskussion, die wir schon mal hatten, eigentlich müssten wir das mal auf dem Server deployen, aber optimal, also das ist schon ein fertiges Image, das könnte man easy deployen, wenn man einen Server hätte, wo es drauf laufen kann. Genau.
-
37:18
Kay Hast du das Image gebaut oder gibt es da schon so vorgefertigte Teile?
-
37:21
Gabriel Ne, das habe ich gebaut und wenn ich sage, ich habe das gebaut, hat Claude das natürlich geschrieben. Genau, also das ist kein vorgefertigtes Image. Also man kann eigentlich sagen, 100% hat Claude geschrieben und ich habe die ganzen Specs überlegt, was darf nicht passieren und so weiter. Wo sind Gefahren? Also das Ganze drumherum, was ja bei uns im Alltag aktuell.
-
37:29
Kay Mhm.
-
37:45
Aber so viel Rechenleistung selber ist da ja gar nicht in dem Image, weil die eigentliche Denkaufgabe übernimmt ja dann wieder Claude irgendwo remote. Das heißt, der Container an sich ist von den Anforderungsressourcen eigentlich nicht so umfangreich. Also man braucht da nicht noch ein eigenes LLM irgendwo im Hintergrund, was da lokal irgendwelche Magie ausführt.
-
38:07
Gabriel Nö, im Prinzip ist das ziemlich effizient. Das Einzige, was halt passiert im Hintergrund, ist, dass das Projekt ausgecheckt wird. Also es wird halt ausgecheckt, auch die Dependencies und so installiert. Und das braucht natürlich ein bisschen Ressourcen, je nach Projekt. Und ich bin mir gar nicht sicher, ob die Tests sogar durchlaufen. Ich glaube sogar nicht, weil das wird nochmal einiges an Ressourcen schlucken. Nö, aber ansonsten geht es halt, wie gesagt, alles an Claude. und bei uns selber passiert da gar nicht so viel.
-
38:36
Kay Okay, cool. Und über GitLab kommuniziert er dann, indem du da einfach über GitLab die CLI von GitLab und dann mit dem entsprechenden Token für den Nutzer, den wir dafür angelegt haben? Oder wie funktioniert das?
-
38:49
Gabriel Genau, also da sind ein paar Sachen, die da passieren. Zum einen einfach beim Klonen vom Projekt per Curl mit dem Token und wenn so Kommentare geschrieben werden sollen oder sowas, also der Bot macht ja auch Inline-Kommentare oder so, da haben wir auch so eigene Skills für die Firma mittlerweile. Der benutzt dann glab im Hintergrund, also das von GitLab, so ein, ich weiß nicht, ob ein CLI-Tool, ich meine nicht schon, ist. Und genau, da ist er halt auch autorisiert einmal und darüber läuft das dann.
-
39:22
Kay Wichtig war mir ja vor allem, das visuell zu machen, dass man wirklich direkt sieht, dass das von dem Bot ist. Weil ansonsten, wenn man es von sich lokal macht, dann benutzt der Claude, wenn man da irgendwelche Merge Requests kommentiert, eben den Nutzer, mit dem man gerade angemeldet ist. Und das ist ja üblicherweise gerade der persönliche. Und was mir zumindest wichtig, direkt anzuzeigen, guck mal hier, das ist von der KI gemacht.
-
39:44
Willst du vielleicht in einem Satz oder auch zwei, drei jetzt nochmal kurz auf diese Skills zu sprechen kommen? Das hat ja nur am Rande jetzt was damit zu tun. Aber das ist ja auch eine spannende Sache, wo du letztens sogar einen Workshop zu gehalten hast, als wir im Coding-Camp waren.
-
39:57
Gabriel Ja, im Prinzip sind die Skills, die jetzt hier im Bot benutzt wurden, eigentlich auch die Skills, die ich im Alltag benutze. Und Skill nochmal ist quasi einfach nur ein Workflow, der einem abgelegt wird. Claude genau sagt, was er zu tun hat, wenn bestimmte Sachen passieren. Und das kann man sich halt, Du kannst Claude einfach sagen, erstell mir ein Skill für XY.
-
40:19
Immer wenn du das Wort ComfyUI, das ist so ein Tool, um Bilder zu erstellen, erwähnst, dann soll irgendwas passieren, soll das automatisch starten oder so. Das kannst du einfach ablegen. Und da hatte ich halt schon für mich ein Workflow entwickelt, dass ich zum Beispiel Inline-Kommentare mache oder Claude für mich Inline-Kommentare im PR macht. Und das braucht halt eine bestimmte Syntax und so.
-
40:42
Das will ich ja nicht immer wieder neu prompten. oder mit dem Review, worauf der achten soll und so weiter. Und diese Sachen habe ich dann quasi wiederverwendet und hinterlegt und die benutzt der Bot quasi.
-
40:53
Kay Genau, es gibt im Prinzip Textdateien, die sagen, wenn Trigger, ist einfach ein Texttrigger, also letzten Endes auch ein Regex, oder? Oder ist es ein inhaltlicher Trigger?
-
41:01
Gabriel Nee, also ich bin mir fast 100% sicher, aber gerne nochmal nachprüfen. Aber so ein Skill ist immer in zwei Teile aufgebaut. Einmal eine Kurzbeschreibung, das wird quasi direkt in den Kontext geladen und immer, wenn diese Kurzbeschreibung zutrifft, keine Ahnung, bei Erwähnung von ComfyUI, mach was, dann schaut er sich den Skill spezifisch an, also dann liest er die Datei erst komplett ein, weil dieser Skill kann theoretisch beliebig lang sein und sehr komplex sein und wenn du jetzt, sagen wir mal, 10 oder 100 Skills hast und der die alle in Kontext direkt von Anfang an laden würde, also dann hast du direkt ein großes Problem, weil der Kontext von Claude selber voll wird und das willst du halt verhindern, deswegen hat jeder Skill wirklich nur eine super kurze Kurzbeschreibung oben, wenn man sich so eine Skill-Datei anguckt und weiter drunter ist dann die ausführliche Version.
-
41:54
Kay Okay, ja, ich kann auf jeden Fall nochmal sagen, cool, dass du dich damit beschäftigt hast. Und der hat mir schon sehr gute Dienste erwiesen in so kleinen niggeligen Nervigkeiten, wie mal eben so ein Merge-Konflikt lösen oder sowas. Also schon ein großartiges Tool. Danke, dass du dir die Zeit genommen hast, das kurz mit mir aufzubereiten. Und ja, jetzt gehen wir rüber wieder ins Hauptgespräch, würde ich sagen. Tschüss, Gabriel. Ja,
-
42:16
Gabriel Tschö, tschö.
Typische Fehler in KI-generiertem Code
42:18–49:56
-
42:18
Felix Und nachdem wir wieder da sind, möchte ich jetzt nochmal einen an zwei, drei anderen Sachen anknüpfen, die du jetzt vor dem Interview gesagt hast. Und vielleicht mal ganz zunächst das Problem an KI-Code, warum wir das überhaupt reviewen müssen. Weil man könnte jetzt darauf kommen, wir müssen ja KI-Code gar nicht unbedingt reviewen, weil wir gehen mit einem richtigen technischen Verständnis ran.
-
42:36
Wir prompten das sauber, wir geben vielleicht schon Architektur vor, dann kommt KI-Code raus und dann müssen wir eigentlich davon ausgehen, man probiert das jetzt gerade mal aus und dann funktioniert das, dass da eigentlich auch sauberer Code dahinter steht, der sinnvoll ist.
-
42:47
Und für mich ist so das Gefährliche an KI-Code eigentlich, dass der immer plausibel und cool aussieht, aber nicht unbedingt immer wahnsinnig sinnvoll ist. Also der hat immer super Variablen-Namen, der benutzt Architekturmuster, der schreibt schon selbst Tests. Und am Ende kann das fachlich trotzdem falsch sein. Gerade bei diesen Tests, wenn der erstmal eine falsche Annahme hat, um einen Code zu schreiben, dann macht er vielleicht auch einen Test mit der falschen Annahme und dann sieht das alles super aus und passt genial zusammen.
-
43:13
Aber am Ende ist es nicht das, was wir eigentlich wollten. Dann kommt so ein bisschen Murks bei raus. und das ist für mich eigentlich so ein bisschen das Hauptproblem. Ich habe tatsächlich auch zwei Beispiele mitgebracht, aber ich lasse dir mal den Vortritt mit einem Kommentar erstmal.
-
43:25
Kay genau. In der Hinsicht sehe ich den Code von KI gar nicht anders als der Code von jedem anderen Mitarbeitenden. Nämlich ist es grundsätzlich immer gut, wenn noch eine zweite Person drüber schaut. Und das Ding von gerade, vor allem die Person, die die Verantwortung dafür hat, muss auch nochmal drüber schauen. Genauso wie ich nicht sage, der Code von dieser Mitarbeitenden Person, den winke ich einfach blind durch, kann ich das auch von der KI nicht sagen.
-
43:48
Plus dazu kommt ja, das ist so ein bisschen ein Henne-Ei-Problem, es fällt manchmal im Code Review erst auf, dass grundlegende Architekturentscheidungen nicht ganz sauber sind oder dass es damit Probleme gibt. Und die kann der KI genauso passieren wie den Mitarbeitenden oder dass sie irgendwelche Aspekte der Anwendung nicht richtig berücksichtigt hat.
-
44:09
Das kann auch so passieren. Insbesondere je größer die Anwendung wird und je komplizierter die Zusammenhänge sind, kommt es ja bei der KI und bei Menschen vor, dass sie vielleicht etwas neuer im Projekt sind oder nicht alles auf dem Schirm haben. Und so wie eine KI ein Kontextfenster hat und nicht die ganze Anwendung in einem Schlag sich in die Memory ziehen und darüber urteilen kann, kann das ein Mensch häufig auch nicht.
-
44:33
Und dann noch eine zweite Instanz zu haben, die sagt, ja, das passt hier für diese Seite gut, aber guck mal da, Korridor 13 ganz im Westflügel an der Stelle in der Anwendung geht es kaputt. Kann einem Menschen genauso passieren wie der KI.
-
44:46
Felix Da kommst du so ein bisschen auf das Thema, was eigentlich meine These für das Ganze hier ist, dass sich vielleicht die Reviews ein bisschen verschieben, einerseits ein bisschen weiter nach vorne Richtung, dass man früher noch über Architektur und Entscheidungen und auch fachliche Entscheidungen spricht und nach ganz hinten, wenn der Code dann geschrieben ist und so Und man dann aber nochmal anders testen muss, als das vielleicht bei einem menschlichen Entwickler der Fall wäre.
-
45:09
Ich will noch ganz schnell die zwei Beispiele teilen, die ich hier so mit KI einfach hatte. Habe ich mir zufällig hier mit rausgeschrieben, waren ganz viele, aber vielleicht sind die so ein bisschen sinnbildlich. Einfach damit die Leute, die hier zuhören, vielleicht auch nicht so viel mit KI zu tun haben oder die, die mit KI zu tun haben, sich wiederfinden, dass man mal so eine Idee hat, was da schief gehen kann bei KI.
-
45:28
Und das erste Beispiel ist, dass wir in dem Shop, den ich jetzt schon mehrfach genannt habe, einfach weil ich da in letzter Zeit viel dran war. Da haben wir so eine Funktion, dass man den Versand erst startet, wenn die Ferien zu Ende sind. Also da wird viel so an Schulen und öffentliche Einrichtungen verschickt. Da ist in den Ferien keiner da und deswegen gibt es im Shop eine Option, dass ich sagen kann, hier verschickt das Zeug erst, wenn die Ferien vorbei sind.
-
45:50
Und dann haben wir im Shop einen Button, der heißt halt Ferienversand, den kannst du markieren. Und meine Idee war jetzt, dass man nicht sagt, Ferienversand ja, nein, Nein, weil ich dann ja im Code später noch gucken müsste, welches Bundesland hat der Kunde in der Versandadresse und wann sind die Ferien und wann könnte ich es dann verschicken und das wäre relativ aufwendig.
-
46:10
Deswegen habe ich der KI vorgeschlagen, lass uns doch so ein Ship-After-Datum machen. Und dann kommt da wirklich ein Datum rein und nach diesem Datum darf versendet werden. Und die KI, was sie jetzt daraus gemacht hat, ist, die hat einerseits einen booleschen Wert in das Datenbankmodell geschrieben, nämlich Holiday Shipping, Bool, ja oder nein, und einen Ship-After, was heute Ship-Not-Before heißt, aber das ist ein Detail.
-
46:32
Und wir als Entwickler sehen natürlich jetzt sofort, ah, das ist natürlich völlig redundant. Also in dem Moment, wo ich bei ShipAfter ein Datum drin habe, heißt das ja, alles klar, der hat ja offensichtlich einen Ferienversand. Oder man könnte sogar anders designen, dass man sagt, ich habe immer ein ShipAfter-Datum und wenn ich keinen Ferienversand habe, mache ich das aktuelle Datum drauf.
-
46:48
Wie auch immer, das reicht mir als Information, wann ich das Ganze verschicken kann. Ob das jetzt ein Ferienversand ist oder nicht, ist völlig irrelevant für mich. Sieht aber genial aus, sieht auch so aus, als hätte er genau meine Anforderungen umgesetzt, ist aber nicht sinnvoll und erzeugt am Ende mehr Code und führt vielleicht sogar auch zu viel an. Und das ist für mich so ein klassisches KI-Ding, wo ich den dann wieder zurückhole und sage, jo, das müssen wir nochmal anders machen. Genau.
-
47:11
Kay Das passiert, glaube ich, häufig auch, wenn es ein iterativer Prozess ist. Dann erzeugt die KI erst den Checkpunkt und dann sagst du, ey, jetzt im nächsten Schritt hätte ich gerne so ein Ding. Dann geht die aber nicht hin und revidiert das, was sie vorher gemacht hat, sondern setzt das iterativ oben drauf.
-
47:16
Felix Genau. Und das ist hier mit Fable 5.1 und X-High Effort. Also ist jetzt auch nicht, dass es irgendwie an den Tokens gescheitert wäre oder so. Genau. Und vielleicht dann noch als kleiner Einschub. Ich habe dieses Datenbankmodell für gemacht. Also ich habe mir am Anfang einen Prompt gegeben, habe gesagt, ich will ein Datenbankmodell und das ist eben kein ganzer Shop, sondern im Wesentlichen dieser Checkout und dann hat er mir schon was hingepackt und natürlich habe ich Sachen nicht im ersten Prompt mit drin gehabt und musste nacharbeiten und so, aber am Ende habe ich 105 Versionen von diesem Datenbankmodell gemacht, bis ich bei einem Datenbankmodell war, wo ich gesagt habe, jo, das passt jetzt.
-
47:59
Also das nur mal so als Einordnung, wie lange man mit KI schon auch an einem vernünftigen Produkt arbeiten kann. Genau und eine andere Sache war, dass wir so ULIDs verwenden wollen. Das haben wir im Podcast ja auch schon mal gesagt.
-
48:14
Das sind diese, ja, ich werde mich jetzt wieder fassbillen, aber Unique Lexicographically IDs. Vielleicht schneiden wir das besser raus.
-
48:19
Kay Ordered UUIDs, sagt man auch.
-
48:19
Felix Ja, genau. Wir wollen diese Ordered UUIDs verwenden. Und dann hat die KI das erstmal auf alles gemacht. Und dann habe ich gesagt, ja, auf alles macht vielleicht keinen Sinn, weil es so Sachen gibt wie, ich sage mal, das Land oder ein State oder so, die brauchen jetzt keine ULIDs. Da können wir den Ländercode eigentlich sogar als ID verwenden, aber im Zweifel dann ganz normal, wie Laravel das vorgibt, ein BigInt und das funktioniert eben für viele Sachen.
-
48:42
Oder für Produkte, eine Produkt-ID als ULID zu machen, finde ich eher umständlich, weil es vielleicht cool ist, auch einfach nach Produkt 3506 zu suchen. Ja, und dann hat er es umgestellt und hat gesagt, jo, jetzt habe ich ULIDs nur noch da verwendet, was alles nach außen über die URL exposed wird und das hört sich ja sinnvoll an. Das war dann sowas wie vielleicht eine Adresse oder oder einen User.
-
49:04
Und mir ist dann aber ganz schnell aufgefallen, dass da eben viele Sachen drin waren, die zwar nicht über eine URL exposed wurden, die aber zum Beispiel über eine API angefragt werden. Und das sind dann zum Beispiel sowas wie Order-Items, die ich dann im Kundenkonto mir anzeigen kann und so weiter. Die werden dann über eine API angefragt und die hatten dann wieder IDs und keine ULIDs, weil Claude gedacht hat, da gibt es keine öffentliche URL zu, die dann jemand manipulieren kann und das dann erraten kann.
-
49:29
Dass aber jemand mit technischem Verständnis auch so ein API-Call faken kann, das weiß Claude natürlich, aber irgendwie ist er in dem Moment nicht drauf gekommen. Das sind so Sachen, wo wir da mit unserem technischen Auge schon drauf gucken und den nochmal einfangen. Und das ist für mich so, ja, sind so klassische KI-Probleme. So irgendwie gut begründet, will alles richtig machen, sieht irgendwie auch richtig aus. Man könnte einfach sagen, jo, hört sich plausibel an, machen wir so. Aber technisch so ein bisschen daneben.
KI begleiten und Aufgaben klarer formulieren
49:56–57:00
-
49:56
Kay Was sich daran anschließt, ist eigentlich schon die eine von zwei Lösungsstrategien, die wir uns jetzt in der Firma vorgenommen haben, um diesem ganzen Review-Thema Herr zu werden. Zwei Stück, wie gesagt. Die eine davon ist, dass die Mitarbeitenden schon mehr Aufgaben der Qualitätssicherung und des Reviews übernehmen. Und das bedeutet meiner Meinung nach, und so bekomme ich auch die besten Ergebnisse, dass ich nicht als normale entwickelnde Person oder als normaler Entwickler eine Aufgabe bekomme, die quasi ungesehen in die KI reinprompte und dann das Ergebnis als Merge Request direkt weiterleite.
-
50:32
Dann, dass ich mir wirklich selber vorher Gedanken mache, was ist da wohl sinnvoll? Und dann die KI Schritt für Schritt an die Hand nehme und dann auch tatsächlich, das geht bei Claude ja ganz gut im Terminal, den Gedankenprozess nachverfolge, auch wenn der so durchrauscht. Weil dann kann ich nämlich schon genau, wie du sagst, frühzeitig erkennen, wenn sie an irgendeiner Stelle auf eine falsche Fährte läuft.
-
50:53
Und Claude ist da ja zum Glück recht gesprächig und teilt so zwischendurch seine Gedanken und Prozesse mit. Und dann kann ich schon frühzeitig eingreifen, eingreifen, während der Code entsteht und sagen, nee, das passt nicht so gut, mach das nochmal anders oder mach mir doch hierfür erstmal ein Konzept, bevor du es implementierst. Also wirklich diese Aufgabe in ganz kleine Blöcke unterteilen, die ich als entwickelnde Person live mitverfolgen kann.
-
51:17
Und das bedingt natürlich wieder, dass ich dann auch wirklich am Ball bleibe und nicht der KI was prompte und dann, weiß ich nicht, was essen gehe, sondern ich muss dabei sein und mir das live anschauen, so wie es ja auch der Fall wäre, wenn ich ohne KI das das selbst programmieren würde. Weil das bedeutet schon mal, dass ich als entwickelnde Person nachher, wenn der Code fertig ist, ihn schon gereviewt habe einmal, weil ich ihn ja während des Prozesses schon beurteilt habe und korrigierend eingeschritten bin. Genau,
-
51:44
Felix Genau, das Allerwichtigste, und das habe ich eben schon mal angedeutet, und das hast du jetzt so auch gesagt, ist eigentlich, dass wir uns vor den Aufgaben nochmal Gedanken machen, was ist eigentlich die Aufgabe. Wir hatten jetzt letztens so einen Fall, da kam ein Mitarbeiter auf dich zu, und ihr hattet das Thema, dass die Reviews so lang sind und dass es von der Fachlichkeit nicht ganz hundertprozentig so umgesetzt war, wie du dir das vorgestellt hast.
-
52:06
Und dann sagte der Mitarbeiter, jo, aber der Task war auch super kurz, da stand gar nicht viel drin, das konnte ich gar nicht wissen. Und das ist ja genau ein Kernproblem, was wir heute angehen wollen, dass wir sagen, wir müssen eigentlich in diesem Task, in dieser Anforderung, die wir formulieren, müssen wir eigentlich fast alles schon drinstehen haben, weil das ist letztlich das, was hinter KI auch in Code übersetzt und was der Entwickler oder die Entwicklerin in Code übersetzt. und wenn das nicht ausgearbeitet ist, wenn da nicht alle Rückfragen geklärt sind und so, dann kriegen wir ein Riesenproblem, dass der Code nicht zu dem passt, was wir haben wollen.
-
52:35
Das war früher natürlich theoretisch das gleiche Problem. Heute ist es aber noch viel mehr ein Problem, weil diese Code-Block einfach größer werden. Wir versuchen zwar kleine Reviews zu machen, aber ich habe so das Gefühl, mit AI wird das Ganze schon nochmal so ein bisschen katalysiert, wenn vorher die Anforderungen nicht ganz klar sind, weil man einfach nicht mehr so viele Kontaktpunkte hat, an denen man Rücksprache halten kann und so, weil einfach KI viel umsetzt und vielleicht auch einfach viel schon annimmt, während man früher, wenn man dann Code geschrieben hätte und dann hätte man gesagt, ich habe jetzt hier eine bestimmte Stelle, komisch, ist mir ja gar nicht klar, wie ich das umsetzen soll, dann fragt man KI, dann fragt man den Kunden.
-
53:07
Und heute ist es so, ich habe der KI dann die Info gegeben, habe vielleicht gar nicht gemerkt, dass da ein Buchstück fehlt, dann macht die KI was und das ist aber vielleicht genau das Falsche und da kriegt man eben ein ganz anderes Problem. Und deswegen ist eine Herangehensweise von mir, wie wir diesen Bottleneck Review eigentlich so ein bisschen auflösen wollen, dass wir vorher viel genauer, viel detaillierter drüber sprechen, was für eine Architektur haben wir, was ist die Fachlichkeit von der ganzen Sache und viel mehr Fragen schon vorher klären.
-
53:31
Weil der reine Code, der dann rauskommt, wenn die Anforderungen klar sind, der ist meistens sogar ganz gut.
-
53:36
Kay und das ist nämlich der zweite große Punkt, wie wir das entlasten wollen. Vorab schon besser abklären. Das ist natürlich so ein Henne-Ei-Problem wieder mit der Zeit, weil wenn ich einerseits überlastet bin, die Code-Reviews zu machen, habe ich andererseits natürlich auch nicht so viel Zeit im Vorfeld, die ganzen Tasks perfekt auszuarbeiten und mir schon vorab diese Gedanken zu machen. Das müssen wir jetzt einfach, glaube ich, sehen, wie sich das in der Realität auszahlt.
-
54:00
Aber das ist jetzt zumindest die Maßgabe, dass die Leute dann am Anfang, bevor sie überhaupt nur eine Zeile Code ändern, sich selber Gedanken machen und das dann auch absprechen. Witzigerweise, das haben wir vor über einer Woche bestimmt und seitdem hat mich noch keiner darauf angesprochen. Also ich weiß nicht, ob das schon so in Fleisch und Blut eingegangen ist. Aber das zeigt eben, dass auf allen Ebenen der Entwicklung durch den Einfluss von KI Paradigmenwechsel stattfindet und wir auf einmal neue Prozesse mehr denken.
-
54:26
Felix Kay, ich habe eine Theorie im Vorfeld des Podcasts, als ich mich damit beschäftigt habe, entwickelt. Und wir haben ja früher immer schon mal über Test-Driven-Design gesprochen. Und dass man erst Tests schreibt und dann den Code schreibt. Und das war jetzt für uns früher nie so das hundertprozentige Modell. Haben wir, glaube ich, im Podcast auch schon mal drüber gesprochen, weil das auch seine Downsides hat.
-
54:46
Jetzt frage ich mich, ist das in Zeiten von KI vielleicht sogar ein cooles Modell, dass man sagt, hier KI, ich habe eine bestimmte Anforderung, schreib mir nochmal einen Haufen Tests. Ich kann die Tests reviewen, die ja meistens sehr gut verständlich sind, verstehe, was die KI vorhat und dann soll die KI dagegen einen Code schreiben.
-
55:01
Kay Also zunächst einmal muss ich dich korrigieren, dass es Test-Driven Development heißt und nicht Test-Driven Design, bevor uns die Leute alle aufs Dach steigen. Und zum Zweiten ist das natürlich ehrlicherweise so, wie man eigentlich gute Aufgaben überhaupt erst reinschreibt. Wir haben da bei der ClickUp-Folge drüber gesprochen, wie das eigentlich von Anfang an aufbereitet sein sollte.
-
55:07
Felix Oha, ja, sorry. Sorry.
-
55:33
So Akzeptanzkriterien.
-
55:34
Kay Und da zählt eben nicht nur zu, warum irgendetwas gefordert ist und wie man es macht, sondern auch so eine Definition of Done Liste, wo man sagt, das sind hier die Kriterien, die ich durchgehen kann, um zu entscheiden, ob das funktioniert oder nicht. Und das macht man in großen Projekten und für große Aufgaben natürlich wahrscheinlich eher mehr, als wir so im Alltagsbusiness das vielleicht beherzigen. Aber das geht ja so ein bisschen in die Richtung und da ist ja eigentlich auch wieder der Mensch nichts anderes als die KI, nämlich wenn ich eine Aufgabe weitergebe, egal ob jetzt an die KI oder an einen Menschen, muss ich im Vorfeld im Prinzip schon möglichst viele Informationen bereitstellen, damit die Person oder die KI, die das ausführt, überhaupt weiß, was sie zu tun hat und wie sie beurteilen kann. ob das, was sie macht, sinnvoll ist.
-
56:09
Und das gilt natürlich für mich als Projektleiter, wenn ich es einem Mitarbeitenden gebe, genauso wie wenn ich das als Mitarbeitenden der KI gebe, die es dann letzten Endes für mich umsetzt.
-
56:18
Felix Ich habe das Gefühl, die ganzen Themen, die da aufkommen, sind eigentlich die, die wir früher schon hatten. Nur früher hatten wir halt mit mitdenkenden Entwicklern und Entwicklerinnen weniger ein Problem, während heute eine KI natürlich so sehr nach Schema F und sehr stumpf losmarschiert. Und wenn man da was nicht definiert, dann kriegt man das auch direkt aufs Brot gestrichen, was früher nicht unbedingt so der Fall war. Und deswegen ist es vielleicht heute noch wichtiger, hier dann so Prozesse einzuhalten, so nervig Prozesse manchmal auch sind.
-
56:40
Kay Ja. Genau, das Problem ist, das Neueste ist einfach nur jetzt unglaublich verstärkt durch die Geschwindigkeit, die dahinter steckt. Also da kann die KI in einer halben Stunde das schaffen, was ein Mensch in einem Monat geschafft hat vielleicht. Und das verstärkt natürlich diese ganzen Probleme, die da vielleicht mitkommen, wo man früher mehr Zeit hatte, einzugreifen.
-
56:47
Felix Genau so, ja.
Die neue Rolle der Entwickelnden
57:00–1:01:04
-
57:00
Kay Und ein letzter Punkt, den wir auch schon öfter gesagt haben, aber den ich mir natürlich trotzdem weiter hoffe, ist, dass die Leute bei uns in der Firma, aber vielleicht auch in anderen Positionen, die sich bis jetzt mehr so als Entwickler gesehen haben und stumpf eine Aufgabe bekommen haben, sie abarbeiten und sie abgeben zum Review, sich mehr selbst befördern und sich mehr als kleiner Projektleiter in sich betrachten, die dann wieder mit der KI untergeben unter sich haben und eben dann mehr Zeit jetzt vielleicht gewinnen, dadurch, dass sie nicht mehr selber die Tasten drücken müssen für die Zeichen, die die KI einfach auskotzt und dadurch mehr Zeit haben für Kommunikation, für Code Review selber schon, für Nachdenken über Coding-Prinzipien und Software-Architektur, vielleicht auch Kommunikation mit dem Projektleiter oder mit dem Kunden.
-
57:50
Also die Zeit nicht einfach nur als reinen Nettogewinn sehen, sondern anders einsetzen. Ich glaube, das ist im Moment noch nicht ganz angekommen.
-
58:00
Felix Genau, und das ist für viele Entwickler und Entwicklerinnen natürlich schwierig, weil das schon, ja, eine Änderung im Aufgabenbereich und im Arbeiten ist. Und wir haben schon einige Leute, und da gehöre ich sicherlich auch selbst zu, also ich habe mich immer gefreut, wenn ich Code schreiben konnte und wenn ich da in meinem Kämmerchen sitze und dann einfach ein bisschen Zeit für mich habe und das machen kann und vielleicht auch nicht so viel mit dem Kunden quatschen muss und nicht so viel Projektleitung nur mal rummache, sondern dass mir vielleicht jemand anders abnimmt.
-
58:23
Und die Rolle ändert sich heute schon sehr. Du hast das eigentlich gerade gut beschrieben und da müssen wir die Leute irgendwie auch hinkriegen. Und wir können auch nicht hingehen und sagen, ich nehme jetzt einfach einen Berater rein oder jemand, der eine gute Idee von der Fachlichkeit von der Anwendung hat, der das Ganze dann vibecoden kann. Auf die Probleme sind wir ja schon eingegangen.
-
58:39
Meiner Meinung nach ist es heute so, ohne ein sehr gutes technisches Verständnis bekommt man auch keine sehr guten Anwendungen raus. Und von daher brauchen wir diese Entwicklenden, die wir aber in ihrer Rolle eben ein bisschen verändern, indem sie mehr Verantwortung übernehmen, indem sie vielleicht eine Ebene höher auch gehen, die Anwendung nochmal auschecken und wirklich nochmal ausprobieren und gucken, macht das logisch Sinn, was ich da, oder was KI da produziert hat. Und das ist so diese veränderte Rolle, die eigentlich ein Entwickler, eine Entwicklerin dann heute auch hat.
-
59:06
Kay Was da noch ein Thema ist, was mir etwas Bauchschmerzen bereitet, ist, dass ja dann trotzdem die Person, die den Code im Kleinen gemanagt hat und dann trotzdem aber zum Code Review weitergibt an diejenige Person, die Verantwortung für das ganze Projekt hat gegenüber dem Kunden, dass da vielleicht schon sehr viel Mühe investiert ist, die der Projektleiter oder der Code Reviewer dann vielleicht nicht sieht.
-
59:30
Also um wieder zurückzukommen an das Beispiel über die Breaking Changes von der API, da bringt es mir als Reviewer ja nichts, wenn der Mitarbeitende das genau schon so auch mit seiner KI verabstückt hat und gesagt hat, hey, schauen wir nach Breaking Changes nach außen und ich sehe davon aber im Code-Review nichts, weil dann muss ich ja erstmal davon ausgehen, ja, wurde das denn gemacht oder nicht und dann muss ich da selber nochmal Reviews für machen oder vielleicht die Tests durchlesen, die dazu geschrieben wurden, also wieder die Mühe investieren. die eigentlich an anderer Stelle schon gemacht wurde.
-
1:00:02
Das bedeutet, so wie es zum Beispiel der Review-Bot macht, den wir in GitLab eingebunden haben, schreibt halt direkt Kommentare und Anmerkungen in den Merge Request rein, sodass ich als endgültige Qualitätssicherung das auch mitziehen kann. Und ich glaube, das ist auch ein wichtiger Punkt, zu sagen, nicht nur man muss diese Schritte alle machen bei der Entwicklung, sondern man muss sie auch irgendwie in der Form sichtbar gestalten, dass sie die Produktionskette weiter auch sichtbar sind und nicht doppelte Arbeit gemacht wird.
-
1:00:31
Felix Total. Übrigens zu diesem GITSBot auch noch ein ganz kleiner Einschub. Wenn den jemand so oder in ähnlicher Form auch für sich im Unternehmen verwenden wollte, dann kommt gerne auf uns zu. Also wir richten sowas gerne ein, wir besprechen das gerne mit euch, wir jagen gerne Gabriel bei euch mal über den Hof, dass der euch sowas baut. Also das funktioniert schon richtig gut, nimmt uns richtig viel ab und ihr habt es ja sicherlich im Interview, habt ihr das sicherlich auch gehört. Genau.
-
1:00:59
Kay Oh nein, jetzt geht's schon los. Exposed, es gibt mich gar nicht wirklich.
Muss man jede Zeile KI-Code verstehen?
1:01:04–1:10:14
-
1:01:04
Felix Kay, ich hatte noch zwei kontroverse Fragen, die wir hier noch reinschieben können. Mit Blick auf die Uhr haben wir nicht mehr so wahnsinnig viel Zeit, aber vielleicht schmeiße ich dir noch mal eine hin. und da würde ich noch einmal wrap-uppen, was wir machen, damit die Reviews bei uns nicht so ein hartes Bottleneck werden. Ich glaube, ganz raus kriegt man es nicht. Aber dass wir nochmal alles zusammenfassen, was wir gesagt haben.
-
1:01:23
Und genau, dann kommen wir hier zum Schluss.
-
1:01:27
Kay Ich bin gespannt. Ich kann jetzt übrigens einwerfen, dass der Tee ganz lecker war. Ich habe ihn jetzt so parallel getrunken und er ist mir sehr im Gaumen zergangen.
-
1:01:34
Felix Ah, herrlich. Ja, mein Tee ist schon fast leer hier.
-
1:01:36
Kay Auf dem Gaumen, ne?
-
1:01:38
Felix Eine These, die du immer mitbringst, ist ja in den Reviews, dass diejenigen, die den Code erzeugt haben, also die Entwickler und Entwicklerinnen, dass die jede Zeile ihres Codes dir eigentlich erklären können müssen. Und das würde ich hier gerne nochmal so als These mit aufnehmen, weil das, glaube ich, sehr kontrovers ist. In meinem Kopf genauso wie wahrscheinlich da draußen.
-
1:01:50
Kay Oh ja.
-
1:01:59
Felix Ich bin mir gar nicht sicher, was ich für eine Meinung dazu habe. Aber da würde ich dir mal den Vortritt lassen, dass du das mal kommentierst. Also sollte jeder Entwickler jede Zeile seines Codes, also jede Zeile seines PRs auch kennen und dir auf Anhieb erklären können? Mhm.
-
1:02:13
Kay Ja, also ja, mit Einschränkungen. Also Also jetzt im Zeitalter von KI ist das so ein kleines Spiel, was ich mit mir selber gerne spiele, dass ich, wenn ich weiß, und manchmal sieht es ja auch, dass Sachen mit KI gemacht wurden, dass ich mir die Leute in den Merge Requests dabei nehme und denen Stellen zeige und sage, was passiert hier und warum ist das Quatsch?
-
1:02:32
Und oft genug kommt es dann vor, dass die Leute reagieren und sagen, oh, die Zeile habe ich nie gesehen, die hat KI generiert, die habe ich einfach hingenommen. Oder, ja, ich weiß nicht, was die macht, das sah aber irgendwie plausibel aus. Da habe ich es mal stehen lassen, ohne zu wissen, was da eigentlich passiert. Ich spiele so ein bisschen rein in das, was du gerade gesagt hast.
-
1:02:51
Und das ist natürlich dann eine Gefahr, wenn die Zeile Dinge macht, die die Leute nicht erwarten, die sie tut. Also ich hatte mal ein Beispiel davon, dass ich ein Code-Review gesehen habe, wo für eine komplizierte Abfrage im Backend ein Cache verwendet wurde, um das Ergebnis zwischenzuspeichern. Also eine externe API und damit das nicht jedes Mal gemacht werden muss, gab es einen Cache für eine Stunde oder so.
-
1:03:16
Und das ist ja an sich eine clevere Idee. Und so wie das implementiert war, wusste ich aber, dass bei Laravel und dem Cache nicht einfach nur dazu gehört, die Funktion aufzurufen, sondern dass man sich auch Gedanken über den Cache-Driver machen muss. Also wo wird das gespeichert? Wird das in der Datei gespeichert, in der Datenbank? Da gibt es verschiedene Optionen, die man einstellen muss.
-
1:03:35
Die waren aber nicht gesetzt. Und dann konnte ich sehr gut auf eine Stelle zeigen und sagen, hey, guck mal, was hast du hier gemacht? Und die Person hat gesagt, ja, weiß ich nicht, wenn ich es jetzt so lese, würde ich sagen, da wird ein Cache gemacht und hat aber gar nicht an die Implikationen gedacht, die dahinter stecken. Wenn man sich in der Laravel-Dokumentation Cache zum Thema anschaut, dann steht ganz oben als erstes, was ist nötig, was sind die Vorbereitungen, wie kann man das konfigurieren?
-
1:03:56
Und dieser Schritt wurde übersprungen. Und das ist natürlich die Gefahr, die entsteht, wenn ich als Entwicklender vielleicht jede Zeile gelesen habe, aber nicht verstanden habe, was da passiert. Und so gibt es manche Stellen im Code, die durchaus relevant sind, zu wissen, was da passiert. Und es gibt aber auch viele, da stimme ich dir schon zu, wo man sich ein bisschen daraus ableiten kann, was da passiert.
-
1:04:19
Aber es geht ja letzten Endes immer darum, dass irgendjemand verantwortlich dafür ist. und das heißt, so wie der Kunde theoretisch auf mich zugehen kann, auf eine Stelle zeigen und sagen, warum passiert das da und warum ist es ein Bug, erwarte ich das auch von den Mitarbeitern, wenn sie irgendwelchen Code an mich abliefern. Und ich finde es auch ehrlich gesagt ein bisschen frech, wenn da irgendwas erzeugt wird und an mich dann herangetragen wird zum Reviewen, weil dann haben die sich ja die Mühe gespart, sich mit dem Code zu beschäftigen und das aber proaktiv auf mich aufgeladen.
-
1:04:36
Felix Mhm.
-
1:04:49
Kay Und das funktioniert, wenn eine Person das macht, aber Aber wenn ich in zehn Projekten drin stecke und jeder sich die Mühe selber sparen möchte, habe ich halt die zehnfache Mühe im zentralen Review. Genau
-
1:04:59
Felix sehe ich genauso, du hast es ein bisschen anders genannt, aber ich würde das auch mal dieses Keyword Code Ownership darüber schreiben und das ist ja genau das, was wir haben wollen und was auch so eine Säule unserer Qualität ist, dass derjenige, der ein Produkt bei uns entwickelt, dass der eben diese Code Ownership hat und tatsächlich bis auf Code-Ebene runter auch Fragen beantworten kann.
-
1:05:19
Das heißt, wenn ein Kunde ankommt und sagt, wenn ich jetzt hier einen Kunden-Account auf inactive stelle, was passiert dann? Geht da eine E-Mail raus und so? Und ich finde, das muss derjenige, der das Projekt betreut auf Entwicklungsebene, der muss das eigentlich knackig beantworten können, weil das eben auch zu unserem USP gehört, dass wir sagen können, jo, kannst du umstellen, vielleicht läuft da eine Queue, das heißt, die E-Mail geht dann erst drei Stunden später raus, die kann ich vorher vielleicht noch abfangen oder so.
-
1:05:46
Und ich finde, das muss schon der Entwickler, die Entwicklerin muss das schon können, das irgendwie auf Code-Ebene zu bewerten. Und das heißt natürlich jetzt nicht, dass ich mich unbedingt an jede Zeile von vor drei Jahren erinnern muss, Aber so dieses grundsätzliche Verständnis für so eine Anwendung, die kriege ich eben eigentlich nur, wenn ich auch das Allermeiste von meinem Code vor meinem Auge so präsent habe. Und von daher finde ich schon wichtig.
-
1:06:08
Kay diese Qualität, die wir uns vorschreiben, ist ja das, was wir dem Kunden verkaufen. Und das passiert so oft, dass der Kunde mich anruft und sagt, hey, wie ist denn das und das oder ich habe diese und jene Idee. Und dann weiß ich halt meine Projekte und kann aus dem Stand am Telefon mit ihm drüber reden und ihm sagen, hey, die Idee, die du da hast, die funktioniert nicht, weil da machen wir ja das.
-
1:06:28
Und dann sagt der, oh stimmt, das habe ich schon wieder total vergessen. Und das erzeugt natürlich so einen Eindruck von eben dieser Qualität, die wir ehrlicherweise auch teuer verkaufen, die beim Kunden dann hoffentlich den Eindruck hinterlässt von, ja, die kosten zwar Geld, aber ich kann die jederzeit anrufen und die können mir kompetent beantworten, was ein Projekt angeht und jederzeit zu Frage und Antwort stehen.
-
1:06:49
Oder auch häufig, dann ist man im Gespräch mit der dritten Partei, die irgendwie Sachen zuarbeitet und sieht dann bei denen mal Code und wenn man so ein grundsätzliches technisches Verständnis hat, kann man da auf einem ganz anderen Level mitreden, was glaube ich einen sehr guten Eindruck von mir persönlich hinterlässt und aber auch von der Firma.
-
1:07:08
Felix Richtig.
-
1:07:08
Kay Und so ist es eben auch eine Etage tiefer, wenn ich mit den Mitarbeitenden interagiere, wenn ich da oft eine Stelle zeigen kann und die Person kann mir erklären, was da abgeht und sagen, wie die Relationen sind und was das für Implikationen hat. dann hinterlässt das für mich natürlich auch einen anderen Eindruck und ich traue den Menschen vielleicht auch mehr zu, dann beim nächsten Mal Projektmanagement zu machen, statt nicht nur Entwicklung.
-
1:07:29
Statt wenn ich auf irgendwas zeige und die sagen, oh, weiß ich nicht, habe ich mir nicht angeschaut. Das hinterlässt so einen Beigeschmack von Schlampigkeit, nicht so richtig aufmerksam sein, nur mit halbem Herzen bei der Sache. Das ist so ein Gesamteindruck. Und weil wir ja Menschen sind, die mit Menschen interagieren, ist das, glaube ich, umso wichtiger im Zeitalter von KI. Ich
-
1:07:49
Felix Und für mich ist aus wirtschaftlicher Perspektive noch ganz wichtig, dass ihr am Telefon ja sogar auch Schätzungen rausgeben sollt. Also wenn euch ein Kunde anruft und fragt, hier will ich noch den Button erweitert haben, dann sollt ihr bestenfalls schon sagen, jo, das kriegen wir easy in einem halben Tag hin, da brauche ich zehn Minuten für, da brauche ich eine Woche für. und ich glaube, so eine Aussage präzise formulieren kann man nur dann, wenn man wirklich auch weiß, was unter der Haube abgeht und wir schreiben das sogar inzwischen auf unserer Website drauf, dass wenn uns jemand anfragt, dass er im ersten Gespräch im Prinzip auch schon eine Marschrichtung kriegt und dann merke ich, dass andere da natürlich ganz vorsichtig sind, also wenn ich angefragt werde und dann sagt mir jemand, ich brauche hier ein kleines Tool für dies und das, dann versuche ich dem schon zu sagen, jo, das könnte 25.000 Euro kosten, plus minus, nagel mich nicht drauf fest, ich gucke es mir nochmal an so, ne, aber Aber so eine Aussage, die kann man nur dann machen, wenn man wirklich weiß, was da technisch dahinter steht, was schon da ist, was man wiederverwenden kann, was für Implikationen das hat.
-
1:08:43
Und ich finde, das zahlt alles so ein bisschen darauf ein, dass wir unseren Code kennen, wissen, was da passiert und nicht darauf angewiesen sind, dass wir das prompten. Und dann kann das 10.000 Tokens oder 3 Millionen Tokens brauchen. Aber wo das hingeht und was wir vielleicht für eine Infrastruktur brauchen, was die Infrastruktur kostet, das wissen viele ja gar nicht.
-
1:09:01
Und wir behaupten von uns, und ich glaube, wir können es auch in vielen Fällen einhalten, dass wir eine gute Vorstellung vorher davon haben, worauf es hinausläuft. Und das ist dann vielleicht auch nochmal so ein Punkt, wo wir uns noch von anderen absetzen können, einfach weil wir technisch da drauf gucken. Also von daher, die Einstiegsfrage war ja, muss man jede Zeile kennen?
-
1:09:15
Kay hoffe.
-
1:09:19
Felix Ich würde jetzt noch eine ganz kleine Einschränkung machen. Wir machen ja jetzt auch wieder vielere, so kleinere Webseiten, einfach weil das mit KI cool funktioniert und gut geht. Und wenn man da noch mit einem gewissen technischen Verständnis drauf guckt, dann kann man wirklich gute Ergebnisse erzielen. Und bei so Projekten, wo ich sage, das ist eine statische HTML-Seite, die dabei rauskommt, oder es ist vielleicht ein Projekt, was jetzt nicht so den wahnsinnigen Umfang hat, da ist vielleicht auch der Fokus auf Design, dass das Budget nicht so hoch.
-
1:09:43
Da würde ich es jemandem auch durchgehen lassen, wenn er nicht jede Zeile kennt und wenn er KI auch mal ein Element hat einfach machen lassen. das sieht vernünftig aus, ich gucke mit einem Blick in den Quelltext rein, sehe, jo, das kann schon in die richtige Richtung gehen, das passt schon, da stehen vielleicht keine Kommentare drin, die überflüssig sind und dann soll das auch so sein, also es kommt auch immer ein bisschen aufs Projekt an, wie genau man dann da vorgeht.
-
1:09:58
Kay Genau. Man muss vielleicht nicht jede Zeile kennen, sondern nur jede Zeile, die wichtig ist. Aber um zu wissen, welche Zeilen wichtig ist, muss ich ja alle Zeilen kennen.
-
1:10:10
Felix Geil, das lasse ich als letzten Satz so stehen.
-
1:10:13
Kay Sehr schön.
Fazit & Outro
1:10:14–1:13:10
-
1:10:14
Felix Ich würde das gerne noch einmal wrap-upen, was wir machen, damit dieses Bottleneck Review nicht so groß wird, wie es eigentlich im Moment werden könnte und aus meiner Perspektive, und du kannst es gerne ergänzen, haben wir als allererstes mal, dass wir uns viel mehr darauf fokussieren, die Architektur vielleicht die Akzeptanzkriterien die Tests vorher schon festzulegen das heißt, wir wollen eigentlich den Task noch genauer schreiben, als das früher ohne KI der Fall war.
-
1:10:15
Kay Das
-
1:10:39
Felix Wir wollen vorher die Fachlichkeit noch viel genauer klar haben, was will ich eigentlich umsetzen? Und das bestenfalls noch in kleinere Blöcke dann irgendwie unterteilen, dass man nicht so Riesenpunkte hat. Dann machen wir einen KI, ich nenne es mal Pre-Review. Das heißt, wir wollen, dass KI uns eigentlich alle Sachen rauszieht, die uns früher Zeit gekostet haben in einem Review.
-
1:10:59
Von Syntax bis vielleicht Security-Geschichten und so diesen Kleinigkeiten, die man früher in so einem PR sich angeguckt hat. Das wollen wir mit dem KI-Pre-Review eigentlich dann erledigen. Und hinten raus ist dann eigentlich wichtig, dass wir das Ganze auch wirklich auschecken, ausprobieren, die Fachlichkeit prüfen, weil das so Sachen sind, das habe ich festgestellt, wenn KI Code schreibt, das wirklich einmal auszuprobieren und wirklich mal Hand anzulegen und nicht nur den Code sich anzugucken, da zieht man schon ganz viele Probleme raus, weil viele Probleme eben weniger im Code sind als in der Logik der Umsetzung, in der Fachlichkeit. und dann das Ding wirklich intensiv anzufassen und auszuprobieren und auch als Entwickler selbst auf einer Testdomain zu deployen, das finde ich ist schon ein Riesenpunkt, den man vor dem Review machen sollte.
-
1:11:47
Und wenn das alles durch ist, dann kann man das Kay geben und dann hat Kay noch zwei, drei Anmerkungen und kommt schnell durch mit seinem Review.
-
1:11:52
Kay wäre der Traum. Und vielleicht machen wir ein Follow-up in einem halben Jahr, wo wir darüber sprechen, ob das geklappt hat oder wir nochmal nachjustieren.
-
1:11:59
Felix Dem wird es hundertprozentig geben, weil das ja wirklich so ein sehr dynamischer Prozess ist im Moment, wie wir merken und wir immer versuchen, da an der einen oder anderen Schraube zu drehen und das irgendwie noch besser zu machen. Und da wird sicherlich noch was kommen. Aber vielleicht war schon das eine oder andere dabei, was jemand hier auch mit rausnehmen kann.
-
1:12:13
Kay Genau. Ich nehme an, es wird unumgänglich KI Folge 5 kommen, einfach weil das so ein prägnantes Thema ist. Aber wir müssen dann auch mal jetzt in nächster Zeit wieder gucken, dass wir mal ein bisschen andere Themen reinbekommen, damit wir ein bisschen diverser aufgestellt sind und nicht alle Leute glauben, bei uns dreht sich alles nur um KI.
-
1:12:29
Felix Das stimmt, aber ist natürlich ein großer Teil unserer Arbeit geworden. Aber wie auch jede Folge ermuntern wir die Leute natürlich, uns hier auch Themenvorschläge reinzubringen. Feedback immer gerne. podcast@geenen-it-systeme.de Müsste auch in den Shownotes stehen. Also gebt uns gerne Feedback, gebt uns gerne Themen rein. Sei das Unternehmenskultur, sei das technischer Natur. Und wenn ihr Kay glücklich machen wollt, wirklich Hardcore-Technik-Themen nehmen wir gerne mit auf.
-
1:12:56
Kay Wunderbar, hat mich gefreut, Felix.
-
1:12:58
Felix Kay, hat mir ganz viel Spaß gemacht und wir hören uns.
Nebenan im Webcafé
Alle zwei Wochen montags eine neue Folge über Webentwicklung, Codequalität und die Art, wie wir zusammenarbeiten.
Alle 55 FolgenFragen an Felix und Kay?
Themenwunsch, Widerspruch oder eine Frage aus Deinem Projektalltag — schreib uns. Was uns erreicht, landet regelmäßig in einer der nächsten Folgen.
podcast [at] geenen-it-systeme.de
