¶ Intro / Opening
Herzlich willkommen zurück. Es wird mal wieder Zeit für eine neue Folge Entwicklerleben.
¶ Willkommen im Entwicklerleben
Und ich weiß nicht, ob ihr so auch so die Vibes in den letzten paar Tagen, Wochen mitbekommen habt. Ich glaube, es gibt gerade ein dringendes Thema, über das wir sprechen müssen und sollten. Mit dabei ist wieder Jan und als Gast ist heute Marcel da.
Hallo.
Hallo.
Magst du dich vielleicht mal ganz kurz vorstellen?
Ja, man kann mich vielleicht von dem ein oder anderen Treffen der Indie-Podcast-Szene kennen. Bin da auf den diversen Subscribes unterwegs, auch auf diversen CCC-Veranstaltungen immer mal wieder anzutreffen. Und im Hauptberuf Softwareentwickler bei dem Vergleichsportal mit der markanten Fernsehwerbung.
Kaum zu verwechseln. Ja.
¶ Vibe Coding und AI
Steigen wir doch mal direkt in das Thema rein. Vibe Coding. Es gibt das eine oder andere Video mittlerweile auf YouTube. Der Anstoß war vom Ex-AI-Guru von OpenAI, dass er gar nicht mal die Tastatur berühren muss und einfach so sprechen kann und die KI macht quasi alles. Das hat für sehr viel Aufsehen gesorgt, sehr viele kritische Stimmen vor allem auch, dass es gar nicht so klappen kann.
Und ja, der aktuelle YC-Batch, also YCombinator, die ganzen Startups, die gerade da drin sind, die werden quasi vielleicht dazu gezwungen, hauptsächlich Vibe zu coden bzw. AI zu nutzen. und eine Aussage ist, dass 95% des Codes derzeit AI-generiert sind. Wie ist da eure Einschätzung zu? Kann das funktionieren?
Das ist ein Fall von kommt drauf an. Also ich meine, wenn du auf der grünen Wiese anfängst und halt wirklich noch bei Null stehst, dann kannst du dir da schon, vorausgesetzt, du kannst deine Prompts schreiben, schon mal einen ganz guten Startpunkt zusammenklicken. Aber wenn du jetzt eine Codebase hast, 15 Jahre gewachsen, drei verschiedene Coding-Styles zwischendrin, weil sich Teams geändert haben, versuch darin mal zu wipe coden. Also wird auf die Fresse fallen.
Ja, wiederum, wenn ich jetzt angenommen in ein Projekt reinkomme und das ist eine Programmiersprache, die ich jetzt nicht unbedingt beherrsche oder man hat irgendwie ein Legacy-Projekt, wo keiner weiß, was irgendwie abgeht, wäre da die KI gerade nicht in der Lage, genau da zu attackieren?
Ja und nein. Also es kommt halt immer darauf an, habe ich grundlegendes Verständnis von Softwareentwicklung? Das ist mal das Erste, weil wenn du jetzt als Nicht-Entwickler da reinkommst, also wirklich so das Extrembeispiel, was ja auch einige versuchen zu wollen, ja, Programmierer braucht es einen nicht mehr, macht alles nur noch die AI, wir brauchen nur noch Produktmanager.
Dann wirst du da auch auf die Fresse fallen, wenn du halt, weiß ich, eine Sprache, die du nicht kannst, aber du weißt, okay, so und so muss ich den Code aufbauen, dass es dir dann quasi inhaltlich runterschreibt, da kannst du, denke ich mal, schon was machen. Oder wie siehst du das, Jan?
Genau, also ich würde das eigentlich auch so sehen wie du. Ich glaube, es gibt beim Vibe-Coding, gibt es unterschiedliche Punkte, die man sich da angucken muss. Also zum einen die ganzen Startups, die jetzt einfach alle gezwungen, wie auch immer, oder vielleicht es sogar einfach machen wollen, weil man damit schnellen Progress machen kann. Denn ich sehe es auch so, wenn du grüne Wiese hast, kannst du ganz gut was erreichen.
Die Frage ist, wie gut ist das dann halt nachher? Aus dem Fireship-Video kennen wir alle das Beispiel mit, da hat einer ein Startup gemacht, hat auch was erreicht, hatte zahlende Kunden und plötzlich fällt der AI-generierte Code halt hin, weil der ist halt nicht sicher.
Das ist halt ein riesiges Problem und wenn du dann halt dein MVP auf die AI hat alles gemacht und jetzt schauen wir doch mal, oh fuck, wir wissen gar nicht, was hier passiert oder wir können vielleicht gar nicht programmieren, dann ist es halt schon problematischer. Also es ist immer die Frage, wer bedient es denn nachher? Weil einer, der Mathe kann, dem hilft ein Taschenrechner enorm, weil er einfach massiv schneller ist.
Wenn du aber kein Mathe kannst, dann hilft dir halt auch der Taschenrechner nicht besonders viel. So, dann hast du da ein Cheat-Sheet, wie du deine Formeln eingibst und dann kommen sie zu einem Ergebnis, aber hast dann nachher vielleicht gar nicht gerafft, was da passiert ist.
Also versuchst das Volumen von einem Würfel zu berechnen und benutzt die Kreisformel.
Ja, genau. Also du musst es schon reviewen können, was du da machst. Ja, ich glaube, das ist zu verlockend für Leute, die halt noch nicht so weit sind, zu sagen, ja, okay, gut, komm, damit kann ich doch einfach was erreichen, weil ja, damit erreichst du ein bisschen was, aber wenn du dann irgendwann an dem Punkt bist, wo du alles refactoren musst, das wissen wir alle, macht es das nicht unbedingt besser, weil dann wird es eventuell nur noch schwieriger, das zu tun.
Und zu dem Punkt mit, du kommst in ein bestehendes Projekt rein mit Weiß ich nicht, altem Legacy-Code. Der erste Gedanke, den ich dazu habe, ist, wenn ich dann der AI überlasse und mit der entwickle, lerne ich nicht, wie das Projekt funktioniert. Das wäre mein erstes Bauchgefühl.
Ja, da hast du vollkommen recht. Es kommt natürlich immer darauf an, inwieweit, wenn du jetzt irgendwie in dieses Bestandsprojekt reinkommst oder historisch gewachsene Projekt, was da deine konkreten Aufgaben sind.
Sollst du jetzt erstmal refactoren oder warum ist überhaupt dieser Zustand, dieser Zustand, sei es irgendwie durch wenig Budget und so weiter, das kann natürlich auch ein Grund sein, warum man dann auf einmal anfängt mit KI, weil es ja viel, viel günstiger, dass man irgendwie das komplette Entwicklerteam irgendwie einsparen kann. Dass du dann nur noch irgendwie einen Button ändern musst oder so. Aber Grundfunktionalität ist jetzt da.
Es muss jetzt nichts großartig mehr da reingebracht werden. Dann brauchst du ja theoretisch ja auch gar nicht den gesamten Code verstehen.
Ja, das stimmt schon. Da kommt es vielleicht auch stark darauf an, wie gut das Model ist. Nehmen wir mal ein Beispiel aus der Praxis. Angenommen, du baust an dem Frontend-Projekt, über das wir zuletzt gesprochen haben und verstehst gar nicht so genau, worum es da geht, weil das ist ja quasi die Perspektive. Wie du bist an einem Projekt, wo du gar nicht mehr so richtig tief drin bist und Frontend ist jetzt vielleicht gerade eh nicht so deins. Und dann stellt dir das Model irgendwas vor.
Ja, vielleicht meinst du das ja. Und dann denkst du dir, ja, das sieht ja eigentlich ganz gut aus. Nehme ich halt mal. Aber du weißt nicht, ob das stimmt. Und ja, je besser das Model ist, desto höher die Wahrscheinlichkeit, dass das, was es da gemacht hat, möglicherweise richtig ist. Aber möglicherweise ist es halt auch einfach falsch oder passt halt nicht.
Da kommen wir schon zum nächsten Problem, wenn du Fullstack machst und du hast deine Projekte getrennt voneinander und das Model, was vielleicht aus deinem Code so ein bisschen lernt, in Anführungsstrichen beziehungsweise das berücksichtigt, weiß nichts davon, wie das Backend aussieht dann programmierst du in beiden und dann kriegst du unterschiedliche Wege, die es dir baut und dann passt nachher die API nicht, das heißt dafür brauchst du dann auch wieder ein Auge,
um zu sehen warte, das passt halt nicht, das muss ich jetzt anpassen und nicht so, oh ja, schön der heilige Gral hat gesprochen.
Ja, wäre ich fast bei dir. Aber auf der anderen Seite, warum hat man jetzt auf einmal so die Trennung zwischen Frontend und Backend, das ist halt ein bisschen logischer aufgebaut, also halt für den Menschen verständlicher. Warum machst du nicht einfach ein Monorepo? Weil es ist ja letztlich ja egal, wie der Code nachher strukturiert ist.
Das kann ich in unserem Fall sagen, warum wir keine Monorepos haben. Das könnte daran liegen, dass Frontend und Backend in völlig unterschiedlichen Sprachen sind und da ein Monorepo einfach nur dazu führt, dass du dich regelmäßig erhängen möchtest.
Ja, oder auch allein, je nachdem, wie du es halt releasen willst.
Also wenn ich daran denke, bei uns in der Firma, Backend, Frontend, komplett unterschiedliche Geschwindigkeit, Geschwindigkeit, was Releases angewinnt hat, das alles in der Monorepo pflegst, klar, kannst du alles machen, aber ich sehe ja schon bei unseren, wenn wir alle da sind, zwölf Backend-Entwicklern, Werkständen mit eingerechnet, bei uns im Team, wenn wir alle am Projekt entwickeln, ist das so schon die absolute Merch-Hölle, wenn du da einen Release machen willst, egal, ob du jetzt.
CI, CD machst und halt ständig releast oder halt Du bist ja ständig nur am, okay, Merch-Konflikte lösen, wenn du Pech hast. Also je größer das Repo, umso schlimmer wird das. Und beim Refactoring ist ja auch die Frage, weswegen muss ich irgendwas refactoren? Ist der Code scheiße oder funktioniert die Datenbank hinten dran nicht oder gibt es irgendein Infrastruktur-Thema?
Wenn du das halt nicht verstehst und einfach sagst, hier AI, mach mal, ich habe ein Problem, ist halt die Frage so, was ist überhaupt das Ding? Weil ich meine, du kannst einfach ineffizient einen Code schreiben, der halt einfach lahmarschig ist. Den kannst du vielleicht optimieren lassen, aber du kannst ja auch das Problem haben, auf der Datenbank fehlt ein Index und deswegen wird meine Datenbank-Query langsam, wenn ich mehr als x Millionen Rows in der Datenbank habe.
Oder die Datenbank überlegt sich, ach, du willst zwar von Tabelle A auf Tabelle B joinen, ich finde die andere Richtung aber sinnvoller, auch wenn sie nicht sinnvoller ist. Also das ist ein Problem, was der Query-Optimizer-Milescale zum Beispiel unheimlich oft hat. Dass der meint, schlauer zu sein als der Entwickler.
Was in manchen Fällen absolut nicht der Fall ist, wenn du beispielsweise zwei Tabellen hast, eine sehr klein, eine sehr groß, und willst von der kleinen auf die große joinen, um halt irgendwie... Drei Felder heranzupacken und der halt aber anfängt, von der großen Tabelle auf die kleine zu joinen. Und dann Millionen von Rows erstmal aufbaut, die er nicht braucht. Da möchte ich die AI sehen, die das hinkriegt.
Das ist halt ganz klar eine Frage auch von Komplexität. Wie gesagt, du kannst hingehen und einfache Sachen, ganz viele machen das ja mit irgendwelchen JavaScript, 3D-Frameworks, um irgendwie Minigames zu bauen oder sowas. Aber je komplexer es wird, desto uniker sind ja deine Probleme eigentlich. Und die AI macht nichts anderes, als dir Lösungen vorzuschlagen, die sie schon mal irgendwo gesehen hat.
Und wenn ich mir komplexe Themen vorstelle, da gibt es nicht unbedingt was, wo die schon mal was gesehen hat.
Dann dazu halt auch natürlich, was für eine Sprache verwendest du? Verwendest du halt irgendwie Java, Python, PHP zu größten Teilen wahrscheinlich auch, dann wirst du oder in Golang wirst du nicht in Probleme laufen, wenn dir jetzt dann irgendwie ein was auch immer man auf Mainframes geschrieben hat vorbeikommt, dann dürfte es schon wieder schwierig werden, wahrscheinlich.
Ja, auf jeden Fall, weil sonst würden wir alle zu Assembler-Entwicklern werden. Oh, das wird viel Geld geben.
Endlich performanter Code. Ja, also nochmal ganz kurz zurück zum eigentlichen Thema AI-Generator-Code.
¶ Erfahrungen mit AI-Generator-Code
Also ich habe jetzt schon ein bisschen auch mit Cursor gearbeitet in einem Projekt oder halt schon seit gefühlt drei Jahren oder so, als die erste Beta vom GitHub-Copilot rauskam. Die Ergebnisse grundsätzlich sind schon mal ganz gut, was die Code-Completion anbelangt. Also ich will eigentlich gar nicht mehr ohne arbeiten. Und die Ergebnisse sind, ich würde sagen, zu 90 Prozent akkurat, zumindest für die ersten ein, zwei, drei Zeilen.
Das funktioniert, aber wenn ich jetzt sage, bauen wir mal was Größeres, da kommt tatsächlich eher so Bullshit raus. Also ich habe jetzt mal am Wochenende versucht, in Cursor einfach mal zu sagen, hey, ich hätte gerne so ein Connector für Google Drive, API. OneDrive und so weiter und bauen wir mal was, dass mir halt Daten hinpumpt, quasi so ganz abstrakt.
Und da kam ja schon looks good to me, sage ich einfach mal nach einem großen Pull-Request, sah es ganz gut aus, aber hat überhaupt gar nicht funktioniert und das ist einfach die ganz große Gefahr, finde ich. Man sieht es ja auch als Laie eigentlich, wenn ich jetzt im Chat-GPT mir einen Text generieren lasse, dass es im ersten Moment halt ganz gut aussieht, eine Summary und so weiter, aber eigentlich da doch sehr viel dazu gedichtet wird, dass es dann unter dem
Strich dann so, ja, unbrauchbar macht eigentlich. Also man muss es schon irgendwie wohldosiert einsetzen. Und wenn man das, glaube ich, irgendwie macht, dann kommt man bestimmt irgendwie auf so eine Zahl von 95 Prozent hin oder so, wenn man es irgendwie in die richtige Bahn lenkt. Aber man muss eigentlich die Experience haben.
¶ Der Trend und seine Auswirkungen
Und warum jetzt dieser Trend eigentlich gerade aufkommt, ist, dass man möglichst schnell mit möglichst wenig Ressourcen, also wir sprechen hier von YC, Accelerator, dass du in möglichst kurzer Zeit irgendwie so einen Product-Market-Fit irgendwie hinkriegst, sodass du das halt weißt, okay, dieses Modell, dass das lohnt und man könnte theoretisch auch das Ganze irgendwie, auslagern an günstigere Entwicklungsländer als Deutschland oder USA,
aber naja, jetzt biege ich gerade wieder ein bisschen falsch ab.
Aber wir können gerne in die politisch-philosophische Diskussion einsteigen, aber das ist glaube ich eher was für ein andermal.
Ja, also es geht so ein bisschen so in die Richtung, aber versuchst du irgendwie mit möglichst wenig Personalaufwand eigentlich viel zu erreichen und aber da musst du aber trotzdem die Experience eigentlich haben, um nachher die AI richtig lenken zu können. Das ist, Ein bisschen so wie, wenn du jetzt irgendwie Offshoring betreibst. Du musst ja irgendwie eher so in Richtung Product Manager eigentlich gehen.
Du bist eigentlich kein Entwickler, sondern du bist Product Manager und du musst sagen, okay, du hättest gerne das, das, so und so und so und nicht irgendwie, ich hacke jetzt ein bisschen Code. Da gibt es ja auch die Aussage, Code Writing ist cheap, Reading ist king oder irgendwie so, dass du halt eigentlich verstehen musst, was da passiert.
Ja, deswegen, ich weiß nicht so genau, ich finde diese 95 Prozent trotzdem irgendwie weit hergeholt, weil um 95 Prozent zu erreichen, das funktioniert dann auch, hast du so häufig neu generiert, dass ich mir schon wieder die Frage stelle, ob man es dann nicht einfach auch hätte selbst machen können, weil, weiß ich nicht, also bei 95 Prozent kannst du eigentlich die ganze Zeit nur durchtappen.
Und dann, also das, was ich in den letzten Jahren gesehen habe, war halt immer ganz nice und hat mir manchmal auch geholfen. Aber ich bin mittlerweile so weit, dass ich halt immer nur noch Einzelteile übernehme. Also ich mache nur noch mit Command und File-Taste, nehme ich mal so ein paar Wörter mit und dann passe ich das schon wieder an und gucke, was als nächstes Mal kommt.
95% des Codes komplett generiert, das, klingt mir nicht danach, als ob das einer geprüft hätte, weil wenn ich das alles geprüft hätte, dann klingt mir das nach sehr viel investierter Zeit, um halt auch den Schrott zu finden, denn wir wissen alle drei, da kommt halt Schrott bei raus zwischendurch und wenn du zu viel freie Hand gibst, dann musst du halt ganz viel nachher wieder anpassen oder fixen oder sonst irgendwas und wenn ich es gefixt habe,
ist das dann noch AI-Code oder ist das dann modifizierter AI-Code? Ich weiß nicht, ob diese Zahl nicht so ein bisschen aufgepustet worden ist oder schön gerechnet worden ist? Einfach nur und sagen so, ja, schaut mal her, wie krass ist denn bitte AI? Das gibt hier uns einen richtig krassen Boost.
¶ Hype-Zyklus der AI
Ja, ein Stück weit ist es halt dieser klassische Hype-Zyklus, den wir vor ein paar Jahren mit, also den wir zuletzt mit ChatGPT macht, eigentlich alles, was irgendwie mit Texten angeht, da brauchen wir keine Menschen mehr für. Die schreibt uns jetzt alle unsere Filme, alle unsere Serien, alles, was wir gucken, ist es jetzt halt das. Vorher war es halt, okay, die Blockchain ersetzt alles, was mit Banken zu tun hat. Not going to happen.
Metaverse.
Es ist halt mal wieder eins dieser Hype-Dinge, wo man halt mit sehr provokativen Aussagen natürlich halt sehr viel Coverage bekommt, wahrscheinlich immer noch einen guten Haufen, Geld unterwegs einsammeln kann. Für diverse Projekte, die man vielleicht machen will.
¶ Die Rolle des Junior-Entwicklers
Und letztendlich der Code, der von so einer AI generiert wird, wenn man das wirklich sauber machen möchte, weil Softwareentwicklung ist letztendlich ein Handwerk. Da wird die AI halt ein Tool sein, aber das ist halt mehr so wie, wenn ich im Team einen Junior-Dev habe, der halt, sei es frisch von der Uni kommt oder frisch mit der Ausbildung fertig geworden ist, Den muss man ja auch am Anfang an die Hand nehmen.
Und AI ist genau das Gleiche. Die Frage ist halt nur, kann die AI die Sachen, die man im Junior-Dev beibringt, lernt die das halt auf Dauer, dass ich beispielsweise bei gewissen Sachen auf Performance achten muss? Das, was ich vielleicht im bisherigen Lernkontext hatte, ja hier die Update-Query, die kannst du feuern, auch wenn die ein paar tausend Zeilen updatet, alles kein Problem.
Aber ein paar tausend Zeilen vielleicht nicht, wenn ein paar Millionen Zeilen kommst, dann wird die Datenbank das Kotzen anfangen und dann hast du Table-Logs, wo du an einer Stelle auf die Fresse fällst. Wird man das einer AI jemals, also zumindest jetzt erstmal sinnvoll beibringen können? Glaube ich eher weniger. Also je mehr, je komplexer die Software wird, umso weniger Nutzen letztendlich hat die AI.
Wenn du halt einen ganzen Zoo von Microservices betreibst, wo du halt in deiner Anwendung, was ich. Im schlimmsten Fall ein paar hundert Microservices hast, die alle nur, ich konsumiere irgendwie drei, vier APIs und spucke es auf einer API selber wieder nach draußen. Sowas kannst du wahrscheinlich schon relativ gut generieren, aber kommt da hinten dann was Gutes raus? Ich weiß nicht.
¶ Risiken der AI-Nutzung
Also ich will dir mal gerade den Gedanken aufgreifen bezüglich Juniors und da sehe ich glaube ich jetzt auch eine gewisse Gefahr beziehungsweise ein Gap, dass wenn jetzt neue Leute reinkommen, die gerne programmieren lernen möchten, bis sie halt immer weiter reinwachsen wollen, dass die AI nutzen, aber dann aber auch überhaupt gar kein Grundverständnis mehr haben, weil die können halt dann mit dem Hammer da ein bisschen umgehen,
aber warum man das unten drunter macht, das ist glaube ich ein ganz großes Risiko. Ich meine, unsere Generation hatte dieses Problem, oder Problem jetzt nicht unbedingt in dem Sinne, dass wir wirklich ultra krass tief arbeiten müssen, dass es wirklich highly performant ist, weil wir die Probleme zum Teil mit Hardware erschlagen haben. Also es ist halt günstiger, irgendwie sowas wie Python zu nutzen und so weiter, damit du halt irgendwie schneller zu einem Ergebnis kommst.
Und in Kubernetes und in der Cloud skaliert das schon?
Genau, richtig. Das heißt, wir sind da gar nicht mehr dazu angehalten, wirklich dafür zu sorgen, so läuft unser Skript jetzt irgendwie nur noch mit paar MB statt irgendwie 100, 200 MB Größe gehen raus an Chrome. Das haben wir halt einfach erschlagen mit Hardware. Früher wurdest du dazu gezwungen, dass das irgendwie sehr performant läuft, das Problem jetzt mit Hardware erschlagen und die neue Generation ist letztlich so, ja okay, AI macht das jetzt.
Das heißt, du brauchst dich da jetzt eigentlich auch nicht mehr drum kümmern. Das heißt, es wird alles immer abstrakter eigentlich, so weg von diesem, ich schreibe, Assembly.
Nichtsdestotrotz sehe ich das wie Marcel, das ist ein Hype. Es spricht kaum noch einer von No-Code, Low-Code.
¶ Der Einfluss auf die Softwareentwicklung
Ich meine, ein paar Leute nutzen das für valide Use Cases, aber da hat sich auch gezeigt, das ersetzt unsere Jobs nicht, weil du obviously damit keinen Entwickler ersetzen kannst, denn das kann nicht das, was du gegebenenfalls brauchst. Und die Komplexität und alles drum und dran reicht aus, um auch bei einer AI auf die Grenzen zu stoßen.
Und allerspätestens, wenn du ein Frontend baust, dann kann der dir zwar vorschlagen, den Tailwind-Code, den er in den Docs gesehen hat oder in irgendeinem Open-Source-Repo, aber dadurch kann das Ding weder UI-Design noch UX noch sonst irgendwas, klar, du hast vielleicht jemanden, der dir das vorgibt, aber dazu müsste die ja auch erstmal wissen, was hat der denn da in Figma gebaut, um das nachbauen zu können.
Also es gibt immer noch ausreichend Bereiche, die man so im Allgemeinen gar nicht so präsent vor Augen hat, die einem dann zwischendurch so einfallen. So, ja, da muss ich noch dran denken und hier das. Ah ja, bei der Datenbank, da muss ich ja noch das im Kopf behalten, was gar nicht so an Wissensschatz vorhanden ist.
Und zumindest heute und wahrscheinlich auch in den nächsten paar Wochen wenigstens, werden wir das mit einer AI nicht erschlagen können, Damit kriegst du ein bisschen was an, ich sage immer, das ist eine bessere Code-Completion.
Ja, bessere Code-Completion, komplexeres Skeletten. Weil es gibt ja diverse Frameworks, also ich bin ja viel in der PHP-Welt unterwegs. Man kann sich ja bei Symfony auch schon unheimlich viel mit ihrem Generierungstool zusammen generieren, Wo du dann halt erstmal gefragt hast, gerade wenn du halt Doctrine als ORM benutzt.
Was für Entitäten hast du, kannst du dir einfach in Frage-Antwort-Ding zusammen tackern und dann hast du hinten schon mal ein Basismodell mit, wenn du willst, auch vorne mit Views, dass du dir Zeug aus der Datenbank ziehen kannst. Das kann dir eine AI halt schneller zusammenklöppeln, vielleicht auch noch ein paar extra Sachen.
Also ich habe mal die Probe aufs Exempel mit Cursor gemacht, habe mal gesagt, hier machen wir mal mit Symfony ein Podcast-Management-System und dann hat er da schon eine relativ sinnvolle Grundstruktur zusammengeklöppelt. Ich habe aber noch nicht die hunderte Zeilen Code gereviewt, was er da jetzt zusammengekloppert hat. Das sieht recht sinnig aus, aber ob das alles dann auch so funktioniert, muss man dann halt immer sehen.
Und dieser Wissensaufbau bei Juniors, das ist halt das Riesenproblem, weil wer, was für Aufgaben bekommen Juniors normalerweise? Das sind die, die man jetzt teilweise dann ganz gut mit, zumindest zum Teil mit der AI abfallen, da abfackeln kann. Und da wird halt der Wissensaufbau halt schwierig. Auch die Frage ist dann, wer bedient dann letztendlich diese AIs?
Sind es denn halt Leute, die ja wirklich dann einen Softwareentwicklungshintergrund haben, sei es jetzt auf klassischen Ausbildungs- oder Studienweg oder halt, weil man halt sich dafür interessiert und sich das selber beigebracht hat, also Quereinsteigermäßig?
Oder ist es halt einer, der sonst PowerPoint bedient und jetzt halt auch irgendwie da ein paar Formulare im Frontend zusammenklickert und so lange mit der AI rumspielt, bis er da halt sein Registrierungsformular für irgendeine Veranstaltung fertig hat?
¶ Zukünftige Perspektiven für Entwickler
Also das gerade Nutzen ist, würde ich sagen, alle, insbesondere wahrscheinlich auch Juniors zum Lernen. Seniors reviewen den Code, makeln da natürlich irgendwie viel an. Da kann man wahrscheinlich noch irgendwie viel lernen als Junior.
Aber ich glaube das Problem ist eher von wirtschaftlicher Perspektive jetzt werden wir jetzt gerade eher so in so einem Low was so die Nachfrage eigentlich anbelangt und auch sagen wir einfach mal offen ehrlich die Preise, so kannst halt auch nicht mehr die Mondgehälter verlangen noch wie 2021, 2022, gibt es ja auch ein paar lustige Videos dazu auf YouTube nicht dass nachher komplett Juniors halt irgendwie raus, rausfallen oder dass keine Juniors mehr eigentlich geheirat werden,
weil dann kann ein Senior nachher einfach nur die AI bedienen und ist dadurch halt dreimal so produktiv oder so. Aus Management-Perspektive gerechnet, muss ja auch mal so rechnen oder denken, dass da nachher einfach ein Vakuum entsteht.
Die Firmen, die das machen, werden aber grandios auf die Fresse fliegen.
Gehe ich auch von aus, dass das heißt, wenn die Nachfrage nachher wieder steigt, dass halt insbesondere Seniors nachher gefragt sind, die diese ganze Sorry-Scheiße halt fixen dürfen, weil sie es halt noch können.
Das heißt, jetzt gerade, ah ja, irgendwie billig, billig, irgendwie schön irgendwie aufbauen und wachsen und so weiter, aber nachher kommen wir dann zu Problemen, wie der eine Vibe-Coder nach drei Tagen, muss auf einmal sein Projekt einstellen, weil es halt gehackt wurde und er selber nicht in der Lage ist, das zu fixen oder halt gerade noch kein Modell da ist, der wiederum...
Das vom vorherigen Modell zu fixen, dass du nachher in dieser Spirale bist, dass halt tatsächlich nach wie vor echte Entwickler da eingreifen müssen. Und das wird dann natürlich den Preis in Klammern hoffentlich wieder nach oben treiben, weil es halt einfach anders nicht geht und da wiederum nachher dann auch wirtschaftliche Einbußen nachher stehen.
Ich glaube auch, dass jedes Unternehmen, was da jetzt auf die falschen Pferde setzt, mächtig in Bedrängnis geraten wird. Denn du hast ja, wie du schon gesagt hast, erstmal fehlt nachher das Know-how von Jüngeren, weil Alte auch irgendwann mal weg sind. Es ist zu teuer, wenn die Teuren irgendwas reparieren, weißt du, so handwerkermäßig. Du rufst den Handwerker, nachdem du selber dein Bart gefließt hast.
Der kommt rein, guckt sich das an, legt die Hände über dem Kopf zusammen, holt den Stemmhammer, holt alle Fliesen wieder raus und macht es halt von vorne, weil man das nicht fixen kann, was du da gefließt hast. Das wird da halt auch passieren und ich glaube, wenn junge Leute oder Neueinsteiger, wie auch immer.
Juniors, sich da zu viel auf AI verlassen und ja, der Senior wird das schon reviewen und fixen und wenn er dann was bemängelt, dann verstehe ich das zwar nicht, weil ich ja gar nicht weiß, was da an Code rausgekommen ist, aber das wird die AI schon irgendwie lösen. Das bringt dich halt auch nicht weiter. Also ich hoffe, dass keiner oder nur wenige diese Einstellung haben, weil das hilft ja nachher nichts.
Irgendwann ist der Senior nicht mehr da und die sollen was alleine machen und die kriegen das ja dann nicht hin, wenn sie immer nur sich auf AI und Vibe-Coding ausgeruht haben. Zumal ich glaube, gerade so bei AI hast du häufig das typische Werkstattproblem, statt dass man repariert, wird das halt einfach der Code gelöscht und man macht das mal neu. Weil die Vorschläge zum Fixen von Bugs sind nach meiner Erfahrung immer so relativ mittelmäßig gut.
Also dann kommt da, in letzter Zeit habe ich häufig gehabt, dann kommt so ein dreiseitiges White Paper von ChatGPT zurück, warum denn wohl ein Bug da sein könnte, mit unten so einer Erkenntnis so, ja, vielleicht musst du das mal anders probieren. Krass, super, herzlichen Dank dafür. Und der Code-Vorschlag ist dann halt irgendwie Quatsch und denkst du,
ja, das habe ich halt schon ausprobiert. Ich meine, auch das hängt wieder vom Model ab, ob das jetzt weiß, dass ich das schon mal so ausprobiert hatte. Aber vor einem Monat oder so, da habe ich einen Kreis die ganze Zeit gedreht, weil ich gesagt habe, das funktioniert so nicht. Und so, ja, probier das hier. Dann habe ich das genommen. Und dann, das funktioniert auch nicht. Ja, dann versuch mal das. Und ich denke mir so, das hatten wir doch gerade schon.
Und dann, wenn ich gesagt habe, das hatten wir schon, dann sagt er, ja, dann versuch mal das hier. Und er so, ja, das hatten wir doch davor. Und dann sind er so drei Minuten im Kreis gedreht. Ja gut, also wenn du dann halt nicht irgendwann sagst, okay, es reicht mir, ich bebe das jetzt selber das Problem, weil du das gar nicht kannst, weil du denkst, ich mache mal ein Startup ohne Programmierer, Wipecoding, let's go, Das kann dann ja aufgehen.
¶ Abschließende Gedanken zu AI und Coding
Auf lange Frist nicht. Es wird genügend geben, die das versuchen werden, wie halt, also die ganzen Leute, die uns 2019 und 2020 Blockchains überall reinverkauft haben, die werden jetzt halt mit Vibe-Coding um die Ecke kommen. Und wenn du halt Führungskräfte hast, denen alles mehr oder minder scheißegal ist, weil ihr Arbeitsplatz ist ja sicher, so nach dem Motto.
Und wenn ich dann jetzt irgendwie zehn Prozent meiner Personalkosten reduziere, weil ich halt mir jetzt halt günstige Leute einstellen kann, die halt irgendwelche Prompts in der EIS reinklatschen, wenn du solche Führungskräfte hast, da bist du halt als Entwickler, der das klassische Handwerk noch beherrscht, dann am Arsch.
Aber wenn du halt Führungskräfte hast, die halt auch eine Entwicklung sehen wollen, wenn die halt sehen, hey, der Junior, der ist jetzt seit einem Jahr oder anderthalb Jahren bei mir im Unternehmen und er macht immer noch die gleichen Fehler wie am Anfang, weil er alles nur mit AI macht, wirst du den ewig behalten oder wirst du den dann vielleicht doch irgendwann vor die Tür setzen? Oder sagst du halt, du behältst ihn als Junior, der wird dann halt nie mehr als ein Junior.
Also was da halt wieder gut passt, wer billig kauft, kauft zweimal, wenn es schlecht läuft, weil irgendwann, wie du schon gesagt hast, muss man das dann gleich wieder aufräumen. Wobei wir uns ja auch sicherlich einig sind, wir reden hier von, ich will nicht sagen richtiger Entwicklung, weil das wäre falsch, sondern von komplexeren Systemen, die entwickelt werden wollen, weil auch das ist klar, die Webseite vom Wanderverein, die kann so eine AI ruhig entwickeln.
Das ist jetzt von der Komplexität nicht besonders hoch, aber sobald es halt um eine richtige Business-Logik geht und um APIs und getrennte Systeme.
Dann wird es irgendwann schwierig. Also so Sachen, hier, ich bekomme von Lieferanten A eine Excel-Liste und muss die in System B in einem anderen Format reinbringen. Liebe AI, ich beschreibe dir mal, was du machen musst und du transformierst mir die Daten, da wirst du keinen Entwickler in Zukunft mehr mit behelligen müssen mit sowas.
Ja.
Also diese absoluten Schnarch-Themen, mach aus Liste A, Liste B. Gerade wenn man aus irgendwelchen uralten Legacy-Systemen zusammenhält, also wenn man mit Banken gearbeitet hat, das ist toll, was da so an CSVs rausfällt. Und denkt so, Halleluja, die 80er haben angerufen.
Ja, absolut. Und deswegen AI und von mir aus auch der kleine Teil der AI vom Vibe-Coding, das sind halt Werkzeuge, die man dann richtig einsetzen muss. Und das hilft ja auch nichts, als der erste Akkuschrauber erfunden worden ist, wenn du den dann falsch eingesetzt hast, weil du gedacht hast, damit kannst du ja ein paar Nägel jemanden kloppen. Dann ist das halt falsch. Aber als das müssen wir es betrachten.
Also wenn der Akkuschrauber gut gebaut ist, dann funktioniert der schon. Das ist zwar das komplett falsche Werkzeug, aber funktioniert.
Genau.
Also, habe ich schon gemacht. Der Akkuschrauber lebt noch.
Fällt successfully.
Ja, Genau, aber es ist, dem muss man sich einfach klar sein, es sind halt Werkzeuge und man sollte sie als solche einsetzen und vielleicht ein bisschen weniger Hype drumherum machen, dass nicht immer alle ausrasten, weil natürlich den Einkauf, den kannst du natürlich damit glücklich machen, wenn du dir den erzählst, ja wir machen ihnen die gleiche Software wie Konkurrenzunternehmen B, wir machen das alles viel schneller, weil wir benutzen AI dafür für einen halben
Preis, dann kaufen die das halt erstmal, weil sie sich denken, boah, mein Chef wird mich richtig feiern und die Hälfte von dem, was ich gespart habe, kriege ich bestimmt. Als Bonus und ja.
Ja, aber bei größeren Firmen selbst wenn du nur ein Viertel kriegst, wenn du da halt auf einmal so eine Entwicklungsabteil, wenn du einfach nur zwei, drei Entwickler weniger brauchst, was das an Einsparungen im Jahr ist, selbst wenn es Juniors sind, da hast du locker dein 13.000, 14.000 Monatsgehalt mitbekommen als Bonus.
Ja, das stimmt auf jeden Fall.
Und an wie weit das letztendlich geht, halt letztendlich davon ab, was für große Trends sich halt durchsetzen. Wenn jetzt halt die großen Softwarekonzerne anfangen und meinen, okay, wir setzen das jetzt im großen Stil ein, um damit dann nochmal 20 Prozent unserer Belegschaft einzusparen, dann werden sich halt andere auch genötigt fühlen, entsprechend das zu machen.
Das hat man ja gesehen, als die großen Unternehmen angefangen haben, Leute vor die Tür zu setzen, haben halt alle aneinander danach auch weitergemacht, ohne dass es da eigentlich so wirklich einen Grund gab, außer wir müssen unsere Marge optimieren.
Ja, absolut. Deswegen bleibt es tatsächlich doch sehr spannend, inwieweit das dann Einzug erhält, ob da wirklich viele rausgeschmissen werden. Ich glaube, rausgeschmissen werden vor allem dann die Leute, wenn man merkt, dass man eigentlich viel zu viele hat. Und es ist ein schmaler, oder es ist nicht unbedingt ein schmaler Grad, aber es gibt ja auf jeden Fall eine Grenze zwischen, ich habe zu viele Leute und ich kann die Produktivität erhöhen.
Weil vom Prinzip her, wenn es richtig läuft, dann unterstützt die AI erst mal, um die Produktivität zu steigern. Und der Output wird halt größer, weil die fünf Leute, die ich schon letztes Jahr hatte, plötzlich viel mehr Zeug schaffen.
Also du musst ja erst mal so viele Leute haben, dass du irgendwann merkst, okay, Moment mal, ich habe vielleicht gar keine Arbeit für die oder die arbeiten so schnell, dass ich das nicht brauche und ich lieber weniger Geld ausgebe und die Features nicht so schnell entwickelt werden, weil das gar nicht notwendig ist.
Aber wenn man halt so ein Team hat, wo man sagt so, eigentlich hätte ich noch Arbeit für fünf Entwickler mehr, aber ich habe kein Geld, um fünf Entwickler zu bezahlen oder keinen Platz oder ich kriege sie einfach nicht. Für solche Unternehmen ist es halt natürlich dann gegebenenfalls Gold wert, weil man dann halt die Engpässe durch die Produktivitätssteigerung begleichen kann.
Absolut. Also man sollte es zumindest auf jeden Fall ausprobieren, ob das für den spezifischen Fall funktioniert.
Weil, wie gesagt, ich gehe stark davon aus, dass das je nach Branche, je nach Businesslogik sich mal mehr, mal weniger stark unterscheidet, wie gut da eine AI helfen kann, weil es gibt ja auch genügend Projekte, Banking, Gesundheitswesen, wo du Dinge entwickelst, wo es kein Wissen zu gibt in der AI, denn die hat davon noch nie etwas gesehen und kann dann halt höchstens antizipieren aus gelernten Schemas, wie man bestimmte Sachen umsetzen könnte,
Was dir aber dann halt nur teilweise hilft, weil gut, dann ist halt dein Switch-Case-Block schneller aufgebaut, aber inhaltlich in der Business-Logik kann dir das Ding halt nicht helfen, weil was weiß das schon von, was weiß ich, Krankenabrechnungen?
Naja, wenn man nachher zwei Töpfe eigentlich miteinander verheiraten kann, wenn du auf der einen Seite halt das fachliche Wissen in der VectorDB hast zum Beispiel und dein Code und du das miteinander irgendwie kombinieren kannst, dass du sagen kannst, okay, in dem Code-Bereich ist diese Fachlichkeit und die ist hier dokumentiert oder klassisch Confluence ist ja auch viel spezifiziert oder Jira-Tickets, dass man da vielleicht später mal was mit verheiraten kann.
Weil Stand jetzt ist mir jetzt nicht bekannt, dass es funktioniert, aber es verändert sich ja eigentlich auch nur eine Frage der Zeit, bis wer auf die Idee kommt, das zu machen.
Ja, auf jeden Fall. Aber auch dann wäre es für mich nur ein besserer Code-Completer, weil ich muss für mich sagen, ich hätte keinen Bock, mich da hinzusetzen und eigentlich nur noch Prompts zu schreiben oder zu sprechen, zu gucken, was kommt da raus und dann den nächsten Prompt zu machen. Da würde ich mir aktuell selbst attestieren, dass ich gegebenenfalls fast schneller selber programmiere, als mir zu überlegen, was ich dem Ding jetzt sagen soll, was ich brauche.
Ja, gerade wenn es halt komplexere Sachen sind. Ich sehe ja allein schon, wie lange ich in der Firma teilweise brauche, um ein Ticket durchzuspezifizieren technisch, dass es unseren Juniors mit einem kurzen Hinterhof in die Hand geben kann und sie dann halt daran entwickeln können, dass sie halt A, was dabei lernen und B, dann hinten das rauskommt, wo ich weiß, das kann ich problemlos auf Production deployen, ohne dass mir der Server abfackelt.
Und wenn du die Zeit halt auch in einen Prompt steckst oder noch mehr in einen Prompt stecken musst, weil du dann erst mal wissen musst, okay, gut, wann generiert er mir welchen Mist und das dann alles nochmal genauer reviewen musst, weil er dir jeden möglichen Scheiß hinfantasieren kann im Zweifel. Das ist dann auch wieder die Frage, wie viel ist da dann nachher noch gewonnen?
Absolut. Das glaube ich nämlich auch. Dann hast du die gleiche Zeit investiert und... Am Ende ist es vielleicht schneller gecoded worden, weil die AI dann halt nur zwei Minuten braucht, um den Code rauszugeben und du nicht noch zwei Tage darauf wartest, dass der Junior was macht. Allerdings nutzt du die Zeit ja auch, um ein neues Ticket zu schreiben. Also so ist es ja nicht.
Es ist ja nicht eine Zeit, in der du nichts tust, sondern einfach nur einen Leerlauf hast, sondern da machst du ja schon was anderes. Und wie gesagt, für mich ist es auf jeden Fall ein Helferlein, aber kein Ersatz, egal wie gut oder weit das Wissen vielleicht verfügbar wäre. Dafür habe ich auch ehrlich gesagt zu viel Spaß daran, die Sachen halt mal selber
so zu challengen. Also, weiß ich nicht, so ein bisschen mal rein in den Dreck und mal sich Gedanken dazu machen, anstatt einfach nur so, ja, ich will das, das, das und das und das und das und das muss so funktionieren. Ja, der Code sieht ja ganz in Ordnung aus. Ich lese mal, ja, ich glaube, das passt.
Naja, auf der anderen Seite, mein Urgroßvater hat auch früher gerne Kutschen gebaut, ne? Also, ja.
Und es gibt sicherlich Leute, die sagen, sag mal, warum arbeitet ihr mit Bildschirm? Wir hatten damals Lochkarten zum Programmieren. Aber ich glaube trotzdem, dass es ein Unterschied ist. Also ich glaube, dass der Vergleich insofern hinkt, als dass das eine ein technologischer, also Hardware-technologischer Fortschritt ist und wir jetzt von einem software-technologischen Fortschritt sprechen, der wiederum Software bauen soll.
Und der Wechsel von Kutsche zu Auto hat tendenziell mehr Jobs geschaffen, als der, als AI Jobs schaffen würde. Und wenn nachher keiner mehr, also ganz kurz ein absurder Gedanke, wenn keiner mehr entwickeln müsste, weil wir nur noch einen PO haben, der halt sagt, was er haben möchte, dann kommt das schon. Und es würde keiner mehr programmieren, ist natürlich abwegig, ist klar. Was würden die Leute dann ansonsten machen, wenn die dann alle zu Hause sitzen und arbeitslos sind?
Oder sie machen alle Startups auf AI-Code, das ist klar, aber das geht ja auch, also das macht ja auch irgendwie, weiß ich nicht, halte ich hoffentlich für abwegig.
Das ist aber, glaube ich, was, was wir mal in einer, Folgeaufnahme dann irgendwie da nochmal im Detail, glaube ich, nochmal drauf einsteigen kann, wenn man gesehen hat, wie hat sich jetzt so zum letzten halben Jahr dann entwickelt, weil wenn 2026 schon 95% des Codes generiert sein soll, da sollten wir dann in einem halben Jahr schon deutlich was sehen, wenn das dann wirklich so kommen würde.
Und das hat ja auch noch ganz andere Implikationen, die dann eher so auf der philosophischen Ebene unterwegs sind.
Ja, das finde ich ist ein sehr guter Schluss vielleicht für heute. Dann machen wir das gerne mal beim nächsten Mal ein bisschen ein Deep Talk.
Mal schauen, ob bis dahin Vibe Coding überhaupt noch ein Begriff ist, also in zwei Wochen. Also who knows? Next shit is around the corner.
Wir werden es sehen.
Definitiv, definitiv.
Gut, alles klar. Dann vibe noch bis dahin weiter. Erweitert eure Cursor-Rules und frohes Tappen.
Gott.
Bis dahin. Ciao, ciao.
PR-Decline.
Bis dahin. Ciao, ciao.
