Shownotes & Links
- Entwickeln mit ChatGPT: Wie KI meine Programmierarbeit revolutioniert
- INNOQ Podcast Folge: AI Prompting mit Robert (Head of Data & AI)
Transkript
Anja Kammer: Hallo und herzlich willkommen zum INNOQ Podcast. Mein Name ist Anja Kammer und heute spreche ich mit Isabel König-Wingen zum Thema KI-unterstützte Entwicklung. Hallo Isabel. Isabel, magst du dich einmal vorstellen?
Isabel König-Wingen: Hallo Anja. Ja, gerne. Ich bin Softwareentwicklerin bei INNOQ und ich beschäftige mich hauptsächlich mit der Entwicklung in Java und in Ruby on Rails.
Anja Kammer: Und wir reden ja heute über die KI-unterstützte Entwicklung und du arbeitest tatsächlich während der Entwicklung KI-unterstützt. Benutzt du da so etwas wie den Co-Piloten in deiner IDE oder wie machst du das?
Isabel König-Wingen: Ich benutze hauptsächlich ChatGPT. Das habe ich angefangen, da war das noch relativ neu. Da hatte ich an unserer Website mitentwickelt und habe da mit Robert viel dran gesessen. Und dann haben wir eben immer, wenn wir so kompliziertere Sachen hatten, haben wir das da eingegeben.
Ja, und dann habe ich das immer mehr so in meinen Arbeitsalltag integriert. Und das ist auch noch so das Haupttool, was ich benutze. Da kopiere ich dann Sachen rein, stelle Fragen. Genau, und jetzt vor kurzem habe ich auch das AI-Tool von JetBrains ausprobiert, was man in RubyMine oder in IntelliJ nutzen kann. Aber damit habe ich jetzt noch nicht so viel Erfahrung. Da bin ich noch nicht so warm mit geworden.
Anja Kammer: Aber du hast experimentiert. Was ist denn aus deinen Experimenten geworden?
Isabel König-Wingen: Okay, dann fangen wir jetzt direkt mit dem negativen Teil an. Okay, also ich hatte das jetzt mal ausprobiert, auch bei einer internen Anwendung von uns und da hatte ich Code, der so ein bisschen strubbelig war und wollte gerne aufräumen und habe halt gefragt, okay, wie könnten wir hier refactoren oder welche Verbesserungsvorschläge hast du? Du kannst direkt so aussuchen, glaube ich, “Probleme finden”.
Und dann hat er mir irgendwie vorgeschlagen, ja, da müsste mal refactored werden, das solltest du in eine andere Klasse auslagern und das in eine andere Methode und möchtest du diese Änderung jetzt anwenden. Hab ich “ja” gemacht und dann öffnet sich wie so ein Git-Diff, wo du dann so klicken kannst, okay, die Zeile möchte ich haben und die nicht. Und dann habe ich das gemacht und dann war hinterher eine ganze Methode weg. Also eine, die wirklich von irgendwo außen aufgerufen wird.
Anja Kammer: Obwohl die im Dialog gar nicht so auftauchte, dass sie gelöscht werden würde.
Isabel König-Wingen: Genau, die war auch eine, die irgendwie refactored werden sollte und ich glaube in diesem Diff war dann schon so zu sehen, die ist weg, aber ich dachte, das wird schon irgendwie stimmen und habe das erstmal so genommen und das ist mir dann halt aufgefallen, dass die weg war und die ganzen anderen Änderungen konnte ich überhaupt nicht nachvollziehen. Also das war halt direkt sehr, sehr viel auf einmal, dass ich das über das Git-Diff nicht mehr wirklich nachvollziehen konnte. Und dann habe ich das alles nochmal weggeschmissen. Das geht ja sehr leicht mit Git und habe aber die Inspiration davon genommen, die Vorschläge genommen und habe das Refactoring halt selbst gemacht. Und das war eine gute Idee, aber es war für mich besser, das eben selber zu machen, weil ich es dann nachvollziehen konnte.
Anja Kammer: Wie unterscheidet sich das denn von den Refactoring-Methoden, die ich normalerweise auch in der IDE habe? Da habe ich ja auch meistens so Tooltips, die dann sagen, hey, du könntest das und das refactoren. Wie hat sich so der Unterschied angefühlt?
Isabel König-Wingen: Es war ein viel komplexes Refactoring. Also normalerweise machst du ja irgendwie so extrahier das jetzt eine Methode und dann schreibt der dir diese Methode und du musst noch irgendwie den Function Header irgendwie so ausfüllen und du siehst, wo er es hinmacht. Aber da wurde jetzt direkt eine ganze neue Klasse geschrieben. Dann hat er ganz viele Stellen auf einmal angefasst, mehrere neue Methoden eingeführt, alles irgendwie benannt. Also ich würde sagen, es war halt vom Umfang her einfach viel, viel mehr und viel komplexer.
Anja Kammer: Okay, also diese Co-Piloten, die findest du gerade nicht so gut während der Arbeit.
Isabel König-Wingen: Genau, dazu muss man jetzt aber sagen, wir nehmen den Podcast jetzt Anfang Mai auf und bis die Folge rauskommt, wer weiß, wie der Stand dann ist. Aber Stand jetzt, ja, hat es mich nicht so überzeugt. Und auch, das muss man halt auch wissen, das ist ja generell bei KI so, dass es halt nicht deterministisch ist. Also ich hab dann nochmal Probleme ausführen gemacht, dann hat der mir ganz andere Vorschläge gemacht. Dann hab ich’s nochmal gemacht und dann hat er gesagt, die Klasse ist super, aber sie war eindeutig nicht super.
Anja Kammer: Ja, da verliert man schon das Vertrauen an solch ein Tooling, oder?
Isabel König-Wingen: So ein bisschen, ja. Also was heißt so ein bisschen? Schon sehr. Ich habe dann auch, dann habe ich gedacht, nee, irgendwie ist es das nicht und bin wieder zu ChatGPT zurückgewechselt.
Anja Kammer: Ja, also und wie ist denn jetzt deine Art und Weise zu arbeiten mit ChatGPT in dem Vergleich?
Isabel König-Wingen: Abgesehen von diesen negativen Erfahrungen finde ich ChatGPT super. Ich kann das halt nutzen, um Fragen zu stellen, um Code reinzukopieren, zu sagen, wie kann man den verbessern oder ist das idiomatisch? Ich kann mir Konzepte erklären lassen und ich merke halt, dass ich einfach, wo ich früher vielleicht gegoogelt habe, jetzt zu ChatGPT gehe.
Anja Kammer: Und hast du da aus deinem Projekt einmal ein Beispiel, wie das so lief?
Isabel König-Wingen: Ja, letztes Jahr bin ich in ein neues Projekt gekommen und da sollten wir ein bestehendes Tool weiterentwickeln und das war in Elixir geschrieben. Das ist so eine funktionale Programmiersprache und da gibt es ein Web-Framework Phoenix und zusammen ist das so ähnlich wie Ruby on Rails, wo ich Erfahrung mit habe.
Aber eben nicht mit Elixir. Und dann haben wir auch klar kommuniziert, okay, keiner im Team kann Elixir. Wir haben zwar ein paar Kollegen, auf die wir zurückgreifen könnten und fragen könnten, aber die waren nicht im Team. Da haben wir ganz viel ChatGPT genutzt und haben halt gefragt “Okay, hier ist so ein komisches Symbol. Was tut das? Was bedeutet das?” Oder ich habe so was gefragt wie, ich bin Ruby on Rails Entwicklerin und ich möchte jetzt eine neue Spalte in diesem ActiveRecord einfügen. Wie geht das in Elixir? Und dann hat die KI-Assistenz basierend auf meinem Hintergrundwissen, mir erklärt, wie das geht, hat mir gesagt, so geht das in Ruby on Rails und so geht das in Elixir. Und das war total hilfreich, auch weil ich dasselbe Wording benutzen kann.
In Ruby gibt es ActiveRecords, die gibt es in Elixir natürlich nicht. Ich habe einfach das, wie ich das in Ruby nennen würde, so habe ich es da auch genannt und es hat mich verstanden und wusste, was ich meine und hat mir dann erklärt, wie das geht. Und das war total hilfreich, um eine neue Sprache zu lernen. Und ich glaube nicht, dass ich so schnell eine neue Sprache gelernt hätte, ohne KI.
Anja Kammer: Ist es dir einmal passiert, dass komplett abstruse Dinge dort generiert wurden, dir eine komplett komische Antwort zurückgegeben wurde, mit der du nichts anfangen konntest oder die dich in eine Sackgasse geführt hat?
Isabel König-Wingen: Ja, also erstmal klingt alles eigentlich immer so, als ob man damit was anfangen kann, finde ich, aber ich hatte das durchaus mal, dass ich ein Code Review beim Kollegen gemacht habe und da erschien mir Code jetzt nicht so ideal und dann habe ich den in ChatGPT geschmissen, habe gefragt, kann man das nicht irgendwie noch besser machen und ChatGPT hat mir einen Vorschlag gemacht und ich habe das ungesehen genommen und im Code Review hingeschrieben und geschrieben, so könnte man das besser machen. Das war wirklich das einzige Mal, dass ich das so ungesehen übernommen habe. Und dann schrieb der Kollege, ja, er hätte auch ChatGPT benutzt, aber das funktioniert nicht. Und dann kam ich mir ganz schön blöd vor und hab gedacht, okay, in Zukunft werde ich das dann doch nochmal alles selber testen. Aber es gibt halt auch Momente, wo es perfekt funktioniert, wo du den Code nehmen kannst, reinkopieren kannst und es läuft. Ich hatte das einmal bei der Website, da mussten wir so einen sehr komplizierten Join auf mehreren SQL-Tabellen machen und Robert und ich wussten beide nicht, wie das genau geht und haben halt ChatGPT genau erklärt, okay, wir haben diese verschiedenen Tabellen und wir wollen das und das erreichen. Und er hat uns so ein Wahnsinns-Join-Statement generiert. Wir haben es in den Code kopiert, ausprobiert und es hat funktioniert. Und da war ich so hin und weg. Das ist ja krass. Das ist ja total krass. Und solche Momente gibt es immer wieder, aber es gibt dann eben auch manchmal diese Momente, wo es halt nicht funktioniert.
Anja Kammer: Ja, geht mir genauso. Also, ich habe auch das Gefühl, mit SQL funktioniert das wirklich einwandfrei, weil man eben auch die Datenbankstruktur mitgeben kann. Und das funktioniert einfach. Und genauso, schon vor einem Jahr hat es funktioniert, dass Bugs gefixt werden können durch ChatGPT. Und das waren noch nicht mal die 4er-Version, sondern das waren noch die 3.5er-Version. Und wirklich, ich habe einfach nur Code, der buggy war, ich habe nicht verstanden, was das Problem war, reingepastet und gesagt: “Ich weiß nicht, was das Problem ist. Ich bekomme die und die Fehlermeldung.” Und es hat nach der ersten Ausführung sofort funktioniert. Also schon damals, mit 3.5, hat es funktioniert, ChatGPT für die Entwicklung zu benutzen.
Isabel König-Wingen: Ja, solche Situationen hatte ich auch mal dann sagt man halt, ich komme hier nicht weiter, was ist das Problem? Und dann hilft das manchmal schon, wenn man so eine Schritt für Schritt Anleitung bekommt. Dann sagt es dir, okay, teste das, teste das, ist das so und so. Dann kannst du all diese Schritte machen oder es macht dir irgendwelche Vorschläge. Und manchmal, wenn man dann doch in der Sackgasse landet, kann man auch sagen, okay, ich habe das jetzt so gemacht, wie du gesagt hast, aber es funktioniert nicht. Es kommt folgende Fehlermeldung.
Und dann kriegst du oft noch mal hilfreiche Informationen und ja, dieser Dialog ist irgendwie das, was das so wertvoll macht. Erstmal hast du halt Antworten, die so genau auf deine Situation gemünzt sind und dann kannst du halt auch hingehen und sagen, nee, das funktioniert jetzt aber nicht. Probier nochmal oder liefer mir eine andere Antwort, eine andere Erklärung. Das finde ich cool.
Anja Kammer: Ich hatte auch einmal probiert, damit einen komplett neuen Code zu schreiben. Es war noch nichts da und ich habe beschrieben, was ich gerne hätte. Und es sollte ein Algorithmus rauskommen, um Dinge zu berechnen. Das war eigentlich sehr einfach, hätte ich mir selber Mühe gegeben, da eine Stunde mich hinzusetzen. Aber ich dachte mir, hey, das ist doch eine super Aufgabe, dieses Hobbyprojekt einmal mit ChatGPT zu machen.
Und ich bin aber aus diesem Loop nicht mehr rausgekommen zu sagen, nein, da ist ein Fehler. Und dann hat es nämlich im Code immer nur diesen einen Fehler gefixt, aber nicht die Grundlage, also der grundlegende Denkfehler, der wurde dabei nicht berücksichtigt, sondern immer nur genau das Mini-Problem. Und am Ende strotzte dieser Code vor Fehler und man hat sie aber sehr selten gesehen, weil immer diese Randfälle beachtet wurden, aber der Code an sich eigentlich schlecht war.
Das heißt, da muss man schon aufpassen, wenn man sagt, hey, da ist ein Fehler und korrigiere das, ob es nicht einfach nur genau für diesen Fehlerfall den Code generiert oder eben anpasst.
Isabel König-Wingen: Ja, bei Experimenten fällt mir ein, dass ich auch mal probiert habe, wie komplexe Probleme ChatGPT schon alleine lösen kann. Ich mache ja gerne Advent of Code, diese Programmier-Rätsel, und die stehen auf einer Internetseite. Und dann habe ich ihm die Seite gegeben und gesagt, hey, lies die Seite durch, das ist ein Puzzle, und schreibt mal Code, der das löst.
Isabel König-Wingen: So, und da gibt’s zwei Sachen. Entweder generiert ihr dir wirklich Code, den du dann kopieren kannst und ausführen kannst. Der ist aber auch in der Lage, Python-Code auszuführen. Also, den du dir dann auch anzeigen lassen kannst und siehst, was da passiert. Und irgendwie das erste Problem hat es noch ganz gut hinbekommen. Da hast du immer so … jede Zeile besteht aus Ziffern und Buchstaben und die Aufgabe war, die jeweils erste und letzte Ziffer zu suchen und zu einer zweistelligen Zahl zusammenzuführen und dann alles aufaddieren. Und die erste Iteration vom Code, die hatte so kleine Fehler, dass es zum Beispiel nicht funktioniert hat, wenn nur eine Ziffer insgesamt in der Zeile war.
Dann habe ich halt erklärt, okay, da musst du auf diesen Sonderfall achten, korrigier das bitte. Dann hat es das getan, hat gut funktioniert . Und dann wollte ich diese sehr, sehr lange Input-Datei reingeben, also die besteht aus, keine Ahnung, 10.000 Zeilen oder mehr.
Und da ist es dann immer dran gescheitert, weil, glaube ich, einfach die Eingabe zu groß war. Das konnte es irgendwie nicht handhaben. Das war halt zu viel. Und ich habe aber auch nicht herausgefunden, wo es schief läuft. Also es kam nie das Ergebnis raus, was ich erwartet habe. Im Testfall schon, aber nicht bei der originalen Datei.
Dann bin ich weitergegangen zum nächsten Tag, da war das Problem komplizierter. Und auch da kam wieder kein wirklich guter Algorithmus bei rum. Und in der Zeit, die ich damit verbracht habe, das zu prompten, hätte ich das auch selber schreiben können. Aber ich wollte es halt ausprobieren. Ich wollte halt ausprobieren, wie weit komme ich damit? Und im Ergebnis kommt man bei, glaube ich, so komplexen Sachen noch nicht so weit. Aber das ist halt auch nur der Stand, wie es jetzt ist.
Anja Kammer: Das stimmt, das könnte sich jede Woche ändern. Ich habe auch das Gefühl, selbst die Version, die gerade feststeht, wenn wir jetzt die Viererversion nehmen, dass die sich auch von Woche zu Woche unterscheidet. Also in einer Woche führe ich etwas aus, es funktioniert gar nicht und in einer anderen Woche führe ich etwas aus und das funktioniert sofort ohne Mücken.
Isabel König-Wingen: Ja, ist das verrückt. Ich hatte die Podcastfolge mit dir und Robert gehört und hatte die auch drüber gesprochen, dass das einfach wie so eine Person ist, die manchmal schlechte Tage hat. Das fand ich irgendwie einen guten Vergleich, wenn es auch ein bisschen gruselig ist.
Anja Kammer: Es ist gruselig, wenn man davon abhängig ist.
Isabel König-Wingen: Wobei da hilft es, wie bei so vielen Dingen einfach aus und wieder anmachen. Also, einmal ein neues Fenster öffnen und die Frage nochmal neu stellen, das kann manchmal echt helfen.
Anja Kammer: Ah ja, neuer Kontext, der wird dann aufgemacht und dann nochmal neu anfangen.
Isabel König-Wingen: Ja, Genau.
Anja Kammer: Lass uns nochmal einen Schritt zurückgehen. Also wir hatten jetzt darüber geredet, dass beim Debugging die KI sehr gut unterstützen kann. Bei komplexeren Algorithmen funktioniert das bisher noch nicht. Jetzt frage ich mich, ist denn allen bewusst, wie man solch eine KI überhaupt verwendet? Also du hast es ja auch gesagt, du fragst danach, wie man bestimmte Konzepte in einer anderen Programmiersprache macht. Das kann ich mir auch sehr gut vorstellen. Nur habe ich das Gefühl, wenn man die KI fragt, wirklich komplette Klassen oder komplette Methoden schreiben zu lassen, dann kommt man nicht nur in die Gefahr, dass es falsch sein kann, was da kommt oder eben nicht funktioniert, sondern auch, dass man selbst zu faul wird, das wirklich auch zu checken am Ende, ob es dann überhaupt funktioniert, ob es sicherer Code ist. Nicht nur, ob der Code gut aussieht, sondern auch, ob er genau das Richtige macht, also auch die Logik richtig implementiert ist.
Ich kann mir vorstellen, dass wenn man sich zu sehr darauf verlässt, dass es eigentlich immer ganz gut funktioniert, dass man am Ende den eigenen Code nicht mehr so genau überprüft oder nicht mehr so gut schreibt, als würde man den selbst schreiben. Wenn man sich so denkt, ich habe dieses Tool und es hilft mir, warum nicht benutzen und am Ende hätte ich es selbst geschrieben, wäre es vielleicht sogar besser gewesen.
Isabel König-Wingen: Hm. Ja, gute Anmerkung. Also ich neige dazu, sowieso mein Code nochmal zu überprüfen und auch wenn es jetzt zum Beispiel ein Feature ist, was sich irgendwie auf dem UI durchschlägt, dann klicke ich das wirklich immer nochmal durch, gucke, ob alles funktioniert und es ist mir auch eigentlich immer wichtig, dass der Code nochmal durch ein ordentliches Review geht, dass einer der Kollegen da nochmal drauf guckt. Also das habe ich jetzt bei generiertem Code eher noch mehr als bei selbstgeschriebenem Code.
Anja Kammer: Dass du nochmal drüber gehst und nochmal prüfst.
Isabel König-Wingen: Das habe ich schon, weil es mir halt auch schon mal passiert ist, dass da irgendwie was schiefgelaufen ist. Natürlich kann ich da auch nicht sicher sein, ob ich da nicht doch manchmal so ein bisschen faul geworden bin, weil man überprüft ja nicht immer alle Randfälle.
Also das ist ja vielleicht bei selbstgeschriebenem Code auch nicht so. Man macht das nach bestem Gewissen und Gewissen, man schreibt seine Tests, man guckt nochmal drüber, aber ob man jetzt alle Randfälle erwischt hat und wenn es was relativ einfaches ist und es sieht ganz gut aus, dann nimmt man es vielleicht auch schon mal so. Gerade bei, weiß ich nicht, so einer Migration oder man …
Ich habe aber auch selten, dass ich ganze Klassen generiere. Es ist eher so, dass ich dann frage, manchmal auch so Dinge, wo ich denke, eigentlich müsstest du wissen, wie das geht, aber die man sich nicht merkt. Wenn ich eine Migration schreiben muss, dann sage ich, okay, ich brauche jetzt eine neue Tabellenspalte, das soll ein String sein und die heißt so und so, mach mir das bitte.
Und dann führt ChatGPT sehr ausführlich aus. Okay, als erstes musst du diesen Befehl machen, dann wird diese Datei erzeugt, da muss das drin stehen. So und sowas kann man in der Dokumentation nachlesen und sowas wissen vielleicht manche Menschen auch auswendig, aber ich weiß sowas nicht auswendig.
Und das ist doch nett. Anstatt jetzt bei StackOverflow irgendwas gesucht zu haben, habe ich es halt da nach geguckt. Und ich glaube, jeder hat auch schon mal von StackOverflow Code kopiert und geguckt, ob es funktioniert und das ist eigentlich auch nichts anderes.
Anja Kammer: Genau und jeder hat auch schon mal aus Versehen von StackOverflow den nicht funktionierenden Code übernommen.
Isabel König-Wingen: Da weißt du ja im Prinzip auch nicht, ob, also klar gut, da sind so Sternchen oder was auch immer, ob die Antwort jetzt gut ist, aber da weißt du auch nicht, ist der Code jetzt richtig oder nicht und übernimmst das mehr oder weniger. Faul.
Anja Kammer: Korrekt. Genau, richtig.
Anja Kammer: Es ist halt immer diese latente Angst dahinter. Es kann ja auch sein, dass sehr viel Druck dahinter ist. Es gibt jetzt Unternehmen, die KI-Unterstützung einkaufen, extra für die Entwicklung und dann sagen, hey, es gibt ganz viele Artikel oder Untersuchungen, dass Entwicklungsteams dadurch, weiß ich nicht, irgendeine Zahl, 25 Prozent schneller werden oder sogar 50 Prozent schneller werden. Und dann wird das von dir auch erwartet, wenn du diese KI-Unterstützung hast. Und vielleicht wirst du dann schneller, aber unvorsichtiger bei deiner Entwicklung.
Isabel König-Wingen: Ja, ich glaube, das ist eine Gefahr, weil also erstmal, dass vor allem Schnelligkeit erwartet wird. Schnelligkeit ist ja auch nicht das einzige Qualitätsmerkmal von guter Softwareentwicklung. Es geht nicht nur um Schnelligkeit, auch wenn das vielleicht manchmal …
Anja Kammer: Ja, das wissen wir.
Isabel König-Wingen: Genau, wenn es dann eilig sein muss, geht es vielleicht doch auf einmal nur um Schnelligkeit. Aber ich glaube, das ist gefährlich, wenn das auf einmal die Erwartung ist an das Entwicklungsteam, dass sie jetzt sehr viel schneller sein müssen, nur weil KI dabei ist. Ich kann dir noch nicht mal sagen, ob ich jetzt wirklich schneller geworden bin.
Bei manchen Dingen ja, wie zum Beispiel jetzt eine neue Programmiersprache lernen. Oder auch letztens war etwas, da haben wir gemeinsam in die Doku geguckt und überhaupt nicht verstanden, wie dieses Feature funktioniert. Ich weiß jetzt gerade nicht mehr, was das war. Und dann haben wir ChatGPT gefragt, er hat uns das erklärt. Das war super, wo ich vielleicht sonst einen Kollegen hätte suchen müssen und fragen müssen, habe ich es da einfach direkt erklärt bekommen und konnte sogar noch Rückfragen stellen, ohne mich durch die Doku zu wälzen. Oder wenn man sich nicht sicher, wenn man denkt, geht das damit? Dann kann man fragen, hey, ich möchte zum Beispiel mit so einem Test testen, ob in einem CSS-Knoten zweimal derselbe Text steht. Geht das? Kann man sowas machen? Dann frage ich halt ChatGPT anstatt das zu googeln. Das führt sich praktisch und schnell an. Aber ich könnte nicht in Zahlen bemessen, ob ich jetzt wirklich schneller geworden bin. Das ist aber, glaube ich, auch nicht schlimm.
Anja Kammer: Die Frage ist, ob es dir hilft und nicht, ob du schneller bist.
Isabel König-Wingen: Ja, und da habe ich schon das Gefühl, dass es mir hilft.
Anja Kammer: Jetzt wo du gesagt hast, dass man in der Doku nicht fündig wird oder nicht so schnell fündig wird, Dokumentationen haben ja meistens auch Versionierungen, genauso wie die Software, die wir entwickeln, Version hat oder auch unsere Dependencies. Wenn ich jetzt also mit einem Framework arbeite in einer bestimmten Version, woher weiß ich dann, ob die Antworten von ChatGPT und anderen genau in der richtigen Version vorliegen? Vielleicht gibt es eine viel bessere Methode, die ich aber nicht auf dem Schirm habe, weil ChatGPT eben diese neue Version noch gar nicht kennt oder diese noch nicht im Code so viel gesehen hat. Also es kommt ja immer darauf an, wie häufig Code-Schnipsel vorkommen in der Trainingsmasse, damit ChatGPT weiß, so schreibt man diesen Code. Es kann schon sein, dass wir da veralteten Code schreiben.
Isabel König-Wingen: Ja, das stimmt, aber hätte ich ChatGPT nicht, würde ich das vielleicht auch tun.
Anja Kammer: Das kann sein. Oder man macht sich die Mühe, irgendwie doch mehr die Dokumentation zu Rate zu ziehen und dann dauert das schon länger, bis man vielleicht zum Ergebnis kommt, aber dann hat man die eigentliche Art und Weise, state of the art, wie man genau in dieser Version programmiert.
Isabel König-Wingen: Gut, in dem konkreten Fall war es jetzt für mich erstmal wichtig, dass es überhaupt funktioniert. Und es ging, es war auch nicht, also es ging um Test schreiben. Das heißt, es war jetzt nicht… dadurch, dass es kein produktiver Code war, sondern Testcode ist es nochmal eine andere Kategorie, finde ich.
Und man kann halt, sobald man es dann verstanden hat, nochmal in die Doku gucken. Oft ist es ja so, du verstehst die Doku einfach nicht und dann erklärt dir das jemand und dann wird es auf einmal klar und da ist ChatGPT eben ein guter erster Ansprechpartner, dass man eben nachfragen kann, ein Grundverständnis bekommt und dann kann man selber nochmal losziehen und sich die Dinge angucken und nochmal verstehen.
Anja Kammer: Genau, und die typischen IDE-Features hat man ja immer noch, dass deprecated Methoden zum Beispiel angezeigt werden und ich generell halt auch in die Code-Dokumentationen dieses Frameworks reinspringen kann und mir das nochmal durchlesen kann. Ich glaube, das machen wir eh, wenn wir neue Funktionalitäten benutzen, dass wir dann dort in dieser Code-Dokumentation nochmal nachschauen.
Genau, aber man stellt sich dann immer vor, ja, unser Entwicklungsteam arbeitet jetzt KI unterstützt und lässt sich Code generieren. Man stellt sich das dann so horrormäßig vor, dass jeder Code nur noch generiert wird und kaum noch drüber geschaut wird und wir dann alle in Flammen aufgehen und die KI übernimmt unsere Systeme.
Solche Horrorszenarien werden sich natürlich auch erzählt, ist natürlich klar. Es gibt halt immer diese, die alles rosig sehen und es gibt immer die Leute, die sozusagen denken, die Welt geht unter. Aber am Ende ist es vielleicht auch nur ein Tool, was in ein paar Jahren langweilig wird, weil es jeder benutzt.
Isabel König-Wingen: Ja, das kann sein. Es gibt auch manche Leute, die sagen dasselbe über IDEs.
Anja Kammer: Das stimmt.
Isabel König-Wingen: Das habe ich auch schon gehört und ich kann mir meine Entwicklung ohne IDI nicht vorstellen. Ja, dass dann so ein Refactoring, so ein Renaming einfach so funktioniert und über alle Dateien hinweg benannt wird. Klar ist das auch Magie und die ich irgendwie nicht nachvollziehen kann manchmal. Die überprüfe ich auch nochmal und so ähnlich ist das mit KI auch.
Anja Kammer: Ja, sehr gut. Sehr guter Punkt. Du hattest vorhin erzählt, dass man auch die KI fragen kann, ob der geschriebene Code lesbar ist oder die Programmierung idiomatisch ist.
Isabel König-Wingen: Das war mir hauptsächlich wichtig, wenn ich, als ich in der neuen Programmiersprache programmiert habe, weil ich eine Codebasis hinterlasse und irgendjemand wird da irgendwann drauf gucken und die Hände über dem Kopf zusammenschlagen und denken, ach du meine Güte, was haben die da gemacht? Und das wollte ich reduzieren, damit es einigermaßen so aussieht, als ob das jemand der Elixir-Erfahrung hat … Da gibt es ja schon so Feinheiten. Jede Programmiersprache hat so ihre Feinheiten. Das ist so die Art, wie man es macht. Und die hast du normalerweise erst nach ein paar Jahren drauf mit der Sprache.
Und dann habe ich halt meinen Code geschrieben, wie er funktioniert hat. Wenn ich sowas sage, dann meine ich meistens so ganz kleine Code-Schnipsel, so ein if. Ja, wo ich dann eine Variabel setze im IF und im THEN-Branch oder so. Und dann frage ich ChatGPT, geht das irgendwie besser und der macht daraus einen Einzeiler. Ja, solche Dinge meine ich, wenn ich sage, ich habe den Code überprüfen lassen oder ich frage so was, wie kann ich irgendwie filtern oder mappen oder so und dann kommt da auch so ein bisschen so kurze Einzeiler raus, die ich vielleicht auch hinbekommen hätte, aber es wäre viel länger und viel hässlicher geworden. Und das ist immer eine schöne Basis, wenn man halt so Code hat, der funktioniert, aber vielleicht nicht so schön ist, dann kann man das halt da mal reinschmeißen und sagen, ist das so die Art und Weise, wie man es tut?
Anja Kammer: Aber die Definition von schön ist ja auch immer Ansichtssache. Deswegen haben wir auch diese Linter in unseren IDEs, die uns sagen, ob das so, ob das so geschrieben wird oder nicht. Denn ich kann mir vorstellen, dass man da vielleicht auf die Nase fallen kann, dass man sagt, bitte mach’s mir schöner und die Definition von schöner ist oftmals, mach mir das kürzer und dann leidet aber die Lesbarkeit. Also hast du das Gefühl, dass da die richtige Balance, dass es da eine richtige Balance gibt zwischen Lesbarkeit und, sagen wir mal so, Eleganz?
Isabel König-Wingen: Schwierig, also das ist eigentlich eine Frage, die kannst du auch unabhängig von KI stellen. Also ich glaube, jeder hat da so ein eigenes Empfinden für und ich bin eher bei Lesbarkeit als, also ich schreibe gerne ein bisschen mehr, wenn es dadurch lesbarer wird.
Und ich habe jetzt, glaube ich, eben “schön” gesagt, aber als ich mit ChatGPT geredet habe, habe ich “idiomatisch” benutzt, in der Hoffnung, dass es so ein bisschen stärker definiert ist als “mach’s schön”. Ich habe halt idiomatisch gesagt und das hat nach meinem Empfinden ganz gute Ergebnisse geliefert.
Anja Kammer: Okay, das heißt, es hat dir sogar einen Mehrwert geliefert, obwohl die IDE so etwas schon checken kann.
Isabel König-Wingen: Ja, die IDE checkt ja sowas wie, ja, was halt so ein Linter kann, eine Einrückung und, weiß nicht, nicht so viele Argumente oder so, aber hier ging es jetzt wirklich darum, so, dass ich irgendwelche Programmierkniffe nicht kannte in dieser Sprache. Das kann so eine IDE nicht unbedingt erkennen.
Anja Kammer: Jetzt sehe ich da schon wieder eine Gefahr. Jetzt stellen wir uns mal vor, wir automatisieren das alles und sagen immer, nachdem wir einen Commit machen, gibt es einen Hook und dieser Hook führt dann eine AI im Hintergrund aus, der dann gesagt wird, hier überprüf das mal auf idiomatische Schreibweise und dann gibt es einen grünen Haken, ja, sieht alles gut aus und man fühlt sich sicher. Dabei checkt es ja nur die idiomatische Schreibweise und nicht, ob es ein korrekter Code ist oder ob der sonst Sinn ergibt.
Ich habe auch schon von anderen Leuten gehört oder von vielen Leuten gehört, ja, was ist, wenn wir jetzt KI-unterstützt programmieren und auch dann noch die Code Reviews auch noch der KI übergeben, dann ist sozusagen der gesamte Entwicklungsprozess von Code an sich sozusagen von der AI unterstützt oder vielleicht sogar übernommen worden und wir können am Ende gar nicht mehr prüfen, ob dieser Code überhaupt noch sicher und gut ist.
Siehst du da auch eine Gefahr dahinter, dass man selbst die Code Reviews der AI überlässt und am Ende niemand mehr so richtig genau draufschaut?
Isabel König-Wingen: Ja, also wie es aktuell ist, wären mir persönlich die KI-Tools noch zu unsicher. Dafür ist es mir einfach nicht deterministisch genug. Bei einem normalen Unit-Test oder Integrationstest, die sind ja ziemlich deterministisch. Klar kann da auch mal irgendwas komisch sein, aber normalerweise kommt da immer dasselbe raus. Du kannst ziemlich genau sagen, was das erwartete Ergebnis ist. Und das fehlt meines Wissens nach bei so einer KI und diesen Tools eben auch noch. Gleichzeitig ist es so, dass wir Menschen genauso sind. Also ein menschlicher Code Review ist nicht prinzipiell besser als ein maschineller. Ein Mensch kann auch Fehler machen und weiß nicht alles. Also glaube ich, dass man da einen guten Mittelweg von beidem finden kann. Es ist halt ein weiteres Tool, wie du eben gesagt hast. Ein weiteres Werkzeug in unserem Werkzeugkasten. Und das sollte jetzt nicht, nicht jedes Problem ist jetzt auf einmal ein Nagel, weil wir einen Hammer haben. Also man sollte das mit allen anderen, was man hat, einsetzen, aber nicht nur das.
Anja Kammer: Ja das stimmt. Und du hast recht, selbst Code-Reviews von Menschen sind nicht immer gut. Es gibt genug Code-Reviewer, die sich auch nicht so viel Mühe geben oder denen man nicht vertrauen kann oder Sicherheitslücken sehen auch menschliche Code-Reviewer nicht.
Isabel König-Wingen: Ja, oder die haben einen schlechten Tag, ne? Das kann auch sein, dass man einfach mal, dass einfach mal was durchrutscht.
Anja Kammer: Genau, so wie die AI auch einen schlechten Tag haben kann und manchmal komische Sachen von sich gibt.
Aber es gibt ja einige Sicherheitslücken, die von Frameworks mit eingebracht werden oder bei der Manipulation von Buildsystemen eingebracht werden, in dem Code ausgetauscht wird oder Code injiziert wird, der schädlich ist durch Dependencies oder im Buildsystem wird dann beim Bauen sozusagen Code ausgetauscht.
Ich kann mir gut vorstellen, dass man solche KI-unterstützten Entwicklungstools auch manipulieren kann, indem man auf Masse in den Trainingsmaterialien Schadcode integriert, sodass der irgendwann in unserem Code landet, indem der da reingeneriert wird. Und man merkt es nicht, weil es zu komplex aussieht oder irgendjemand hat nicht genug aufgepasst. Hast du auch diese Angst oder bin ich da allein?
Isabel König-Wingen: Ich weiß nicht, also als ich jetzt das AI-Tool von JetBrains ausprobiert habe, da habe ich eine Weile gebraucht herauszufinden, wie ich das aktiviere, weil man brauchte erst die neueste Version und musste es dann anschalten und da habe ich unter Plugins geguckt. Und wenn du da irgendwie ChatGPT oder AI eingibst, dann kommen so ganz viele Plugins. Und da war ich so ein bisschen, da war mir so ein bisschen mulmig, da hab ich gedacht, ich installiere doch jetzt hier nicht irgendein Plugin, wo dann irgendein LLM irgendwo über meinen Code läuft. Das war mir ein bisschen zu gruselig.
Abgesehen davon, im normalen Arbeitsalltag habe ich diese Sorge eigentlich nicht, weil ich ziemlich genau steuere, was ich übernehme. Also ich nutze ChatGPT 4, ich kopiere die Snippets da rein, die ich dahin geben möchte und ich gucke mir den Code an, der zurückkommt und ich beschränke mich halt auf sehr simple Fälle und gebe nicht so komplexe Sachen rein. Da geht’s eigentlich.
Anja Kammer: Ja, aber du machst das, weil du ein Qualitätsbewusstsein hast, was sehr weit geht. Es könnte schon sein, dass andere Menschen durch Zeitdruck oder ähnliches sich denken, ah ja, gut, die Unit Tests sind grün, das wird schon funktionieren und nicht so genau da drauf schauen.
Isabel König-Wingen: Das stimmt. Das ist wahrscheinlich eine Gefahr, wo man einfach drüber reden muss, wo man darauf aufmerksam machen muss, wie eigentlich mit so vielen anderen auch.
Ich musste jetzt letztens ein Video schneiden für unseren YouTube-Channel und da habe ich FFmpeg für benutzt und habe da keine Ahnung von gehabt und dann habe ich ChatGPT auch erklärt, was ich machen möchte und habe ihm gesagt, bitte generiere mir diese diese Befehle, um das zu machen, was ich möchte. Und dann kamen so Befehle raus, die ich in mein Terminal kopiert habe. Und da war mir so ein bisschen mulmig. Das ist wie dieses, was man früher so bekommen hat, man so gesagt bekommen hat, dass man keine Befehle aus dem Internet in seine Konsole einfach so kopieren soll, ohne zu verstehen, was die tun.
Und ich hab mir das dann angeguckt und hatte das Gefühl, okay, das scheinen schon so Optionen für FFmpeg zu sein. Ich hab’s dann ausgeführt und er, also, ChatGPT hat auch erklärt, was die einzelnen Optionen tun. Das hat ein bisschen dazu beigetragen, dass ich mich sicherer gefühlt hab. Ich hab’s dann einfach gemacht, es hat funktioniert. Aber so ein bisschen musste ich daran denken, dass man eigentlich ja nichts aus dem Internet einfach in sein Terminal kopieren soll, ne?
Anja Kammer: Ja, also die beste Variante wäre vielleicht gewesen, dass man sich den Code angeguckt hätte und gesehen hätte, ah, diese Flags werden verwendet. Dann schaue ich doch jetzt mal in der Man-Page nach. Was ist denn diese Option? Aber man hat es manchmal eilig und sagt dann so, ja, passt.
Isabel König-Wingen: Genau. Genau, aber dasselbe hätte ich getan, wenn wir ehrlich sind, wenn ich das auf StackOverflow gefunden hätte.
Anja Kammer: Ja, lass uns ehrlich sein.
Anja Kammer: Kannst du nochmal kurz für die Zuhörer:innen erklären, was dieses Kommandozeilen-Tool denn macht?
Isabel König-Wingen: Ja genau, für unseren Tech-Lunch, also um ein bisschen Kontext zu liefern, gibt es immer am Anfang dieses Waiting-Video. Vielleicht haben das einige schon mal gesehen. Da ist im Hintergrund so ein animiertes Video, wo so ein Balken von rechts nach links geht und oben drüber ist halt der aktuelle Titel der aktuellen Folge. Und jeden Monat muss dieses Video neu zusammengebaut werden, weil der Titel sich natürlich ändert. Es ist ein transparentes PNG, was darüber gelegt wird. Und die Musik muss auch noch geloopt werden. Nein, die Musik ist länger, aber das Video muss geloopt werden. Ich musste also auf die Musik das geloopte Video legen, mit diesem PNG-Bild darüber. Und ich hatte keine Ahnung, wie das geht.
Jetzt habe ich ChatGPT eben genau probiert, das zu erklären, und er hat es nicht hinbekommen. Weil, wie man vielleicht an meiner Erklärung gemerkt hat, ist es irgendwie recht kompliziert zu erklären. Und ich glaube, das war einfach zu kompliziert von mir dargestellt.
Und dann kamen da so mehrere Befehle raus, die haben einfach nicht funktioniert. Es hat nicht getan, was ich wollte. Auch weil ich glaube ich einfach da mir das Fachvokabular fehlte, zu erklären, was ich wirklich will. Also habe ich gesagt, okay, wir machen das schrittweise. Ich habe dieses geloopte Video und da soll das PNG drüber gelegt werden. Wie geht das? Dann hatte ich einen Befehl. Dann hatte ich also mein gelooptes Video mit dem Text da drüber. Und dann habe ich gesagt, okay, jetzt möchte ich, dass dieses neue Input-Video.
Ich weiß gar nicht, ob ich eine neue Frage aufgemacht habe oder im selben Kontext geblieben bin. Ich glaube, ich habe beides ausprobiert. Das war so ein Findungsprozess. Auf jeden Fall habe ich dann gesagt, wir haben jetzt dieses neue Video und jetzt möchte ich dieses neue Video loopen und die Musik darüber legen. Und das hat dann funktioniert. Und mit den zwei Befehlen bin ich jetzt ganz gut gefahren und habe mir jetzt auch nicht nochmal die Mühe gemacht, daraus einen zu machen. Das würde vielleicht gehen, ich weiß es nicht, aber so hat es halt gut funktioniert. Ich kriege jetzt vom ersten Befehl ein Output-Video und tue den dann als Input in den nächsten Befehl rein. Da hast du aber auch gemerkt, es hat irgendwie geholfen, das Problem so in kleinere Schritte zu zerlegen. Da habt ihr glaube ich bei der Prompting-Folge auch schon drüber gesprochen, dass man sich manchmal so kleinschrittig nähern muss.
Anja Kammer: Ja, das fällt mir aber auch sehr schwer. Also in diesem Fall war das vielleicht sehr einfach möglich, aber manchmal kann man das gar nicht so gut zerlegen, weil alles miteinander zusammenhängt, das gesamte Problem miteinander zusammenhängt. Von daher funktioniert das nicht immer.
Isabel König-Wingen: Ja, das stimmt.
Anja Kammer: Was mir noch aufgefallen ist, ich benutze zum Beispiel ChatGPT auch, um mir Ideen generieren zu lassen oder Lösungsmöglichkeiten, mehrere Lösungsmöglichkeiten anzeigen zu lassen. Und manchmal habe ich das Gefühl, ich bin zu faul geworden. Weil früher habe ich mir diese ganzen Ideen, die kamen mir selber spontan sehr schnell und ich hatte auch das Gefühl, sehr gute Ideen. Und jetzt habe ich mich zu sehr darauf verlassen, dass ich jemand anderen, also ChatGPT, fragen kann. Und dann mache ich mir auch gar nicht mehr die Mühe, diese Ideen selbstständig noch zu entwickeln, sondern ich nutze einfach nur diese Ideen oder iteriere über die Ideen, die mir gegeben wurden und habe keine eigenen Ideen mehr. Ist das bei dir ähnlich?
Isabel König-Wingen: Ich glaube nicht. Bei mir ist es eher so, dass ich generell das Gefühl habe, dass ich nicht so viele gute Ideen habe. Und mir hilft ChatGPT dann dabei überhaupt Ideen zu bekommen oder überhaupt zu starten.
Also ich habe das, das ist jetzt eher nicht im beruflichen Alltag, sondern eher im privaten. Aber ich pflege halt eine Website und da muss ich manchmal über Veranstaltungen schreiben. Und ich sitze immer dann vor dieser leeren Website und denke, ja, was schreibe ich denn jetzt? Und das war früher immer eine absolute Qual für mich, diese Texte zu schreiben. Und seit ich ChatGPT habe, schreibe ich ungefähr, sage ich so, hey, das und das, schreibt mir mal da einen Artikel für unsere Website drüber, dann kommt irgendwas raus, das ist meistens nicht besonders gut, weil das so, es ist immer sehr, ich habe immer das Gefühl, das ist sehr amerikanisch geprägt, das ist dieses over the top, das ist so “wow, tollste Veranstaltung”. Du denkst, okay, das ist jetzt nur so ein kleines Dorffest und nicht die tollste Veranstaltung der Welt. Und da muss man so ein bisschen das, dann sag ich mal, schreibt das irgendwie nüchtern oder übertreibt nicht so. Oder ich geh da nochmal selber drüber. Aber das hat mir halt sehr geholfen, überhaupt zu Pötte zu kommen. Also überhaupt was niederzuschreiben und dann damit zu starten und das zu verbessern.
Anja Kammer: Ja, genau. Also überhaupt zu starten ist vielleicht auch wichtig für Leute, die sehr gerne prokrastinieren oder nicht gerne, sondern die leider prokrastinieren, einfach mal anfangen. Irgendwas zu Papier bringen und dann rutscht das dann auch wieder.
Isabel König-Wingen: Ich glaube, dass das eben auch helfen kann, die Kreativität zu unterstützen, wenn man es eben richtig benutzt. Also man muss glaube ich schon aufpassen, dass man nicht zu faul wird, aber es kann auch ein super Werkzeug sein.
Anja Kammer: Wir haben jetzt in diesem Podcast schon über viele Dinge gesprochen. Lass uns das einmal zusammenfassen. Also wir haben darüber gesprochen, dass deine, also wir haben über deine Erfahrung gesprochen, bezüglich von, bezüglich ChatGPT im Vergleich zu diesen Assistenten in der IDE, diese Co-Pilots und wie die da so heißen. Wir haben darüber gesprochen, dass komplexe Algorithmen noch nicht so gut funktionieren.
Isabel König-Wingen: Ja, wir haben darüber gesprochen, dass Refactoring auch noch nicht so gut funktioniert, wenn es zu komplex ist. Wir haben darüber gesprochen, dass es für Debugging benutzt werden kann. Dass es sehr hilfreich ist, sich Anleitungen geben zu lassen. Schritt für Schritt Anleitungen. Wir haben darüber gesprochen, Konzepte zu verstehen. Da haben wir noch gar nicht so viel. Das haben wir so angerissen, dass man es eben auch Fragen stellen kann, um Konzepte zu verstehen, die man vielleicht aus der Doku nicht versteht. Genau, wir haben über Scripting gesprochen und übers Schreiben und über kreative Ideen.
Anja Kammer: Genau. Und darüber, dass man immer noch über den generierten Code, wenn man sich Code generieren lässt, drüber schauen sollte. Aus vielen Gründen.
Isabel König-Wingen: Genau. Lass uns doch noch über Doku reden. In der Folge mit Robert hattet ihr darüber gesprochen, dass man sich auch arc42 Doku erzeugen lassen kann für seine Projekte. Und ich hatte das dann daraufhin mal ausprobiert mit meiner Bachelorarbeit, die auf GitHub ist und auch schon sehr, sehr alt. Und ich glaube, es gibt ein bisschen Doku, aber auf jeden Fall keine arc42 Doku und wahrscheinlich auch nicht super viel.
Und dann habe ich ChatGPT gesagt, nutze deinen Browser und surf durch dieses Repository und schreib mir eine arc42-Doku. Und ich hab erwartet, dass er ein fertiges arc42-Dokument rausschmeißt. Das hat nicht funktioniert. Er hat dann so einen groben Entwurf gemacht, und die einzelnen Kapitel so angeschnitten. Und dann bin ich testweise hingegangen, hab gesagt, okay, jetzt lass uns doch mal in das erste Kapitel einsteigen und dazu den Absatz schreiben. Und dann hat das ganz gut funktioniert. Also ohne mich jetzt noch mal größer damit zu beschäftigen, fand ich das ganz gut zusammengefasst. Er hat so ein paar… Was ist noch mal so im ersten Kapitel? Er hat so ein bisschen die Stakeholder angeschnitten, die Qualitätsziele, die technischen Einschränkungen.
Worum geht es überhaupt grob? Und das fand ich jetzt auf den ersten Blick schon mal gut. Das ist auf jeden Fall besser gewesen, als gar keine Doku zu haben. Und ich fand das sehr cool, dass der halt dieses Repository, das ist noch auf Java 7 und mit Gradle 2, das baut, glaube ich, noch nichtmals mehr. Und trotzdem hat er das ganze Repository gescannt und konnte relativ gut zusammenfassen, worum es geht.
Anja Kammer: Und das ohne, dass wirklich die Stakeholder irgendwo im Code oder in der README zu finden waren?
Isabel König-Wingen: Ja, das weiß ich jetzt nicht mehr. Ich glaube schon, dass ich eine README geschrieben habe, das war so ein Lerntool, was eingesetzt werden sollte, um Algorithmen zu erklären, den Studierenden. Und das habe ich vermutlich in irgendeinem README oder Zusammenfassung geschrieben. Also das hat er dann nämlich erkannt und daraus dann geschlussfolgert, dass die Stakeholder halt die Dozierenden und die Studierenden sind. Das weiß ich jetzt leider nicht, wie viel da wirklich hinterlegt war.
Ja, aber auch, dass er zum Beispiel erkannt hat, dass das mit JavaFX gemacht wurde. Er hat so die Algorithmen ein bisschen angeschnitten. Also ich war irgendwie beeindruckt.
Anja Kammer: Wow. Das klingt interessant. Vielleicht sollte man das nochmal machen mit einem Projekt und das vielleicht in einen Artikel setzen. Das hört sich danach an, als würde man sowas als Artikel gerne lesen wollen.
Isabel König-Wingen: könnten wir probieren. Ich habe ja generell über KI-Unterstütze-Entwicklung schon einen Artikel geschrieben. Deswegen haben wir ja jetzt auch diese Podcast-Folge hier gemacht, weil ich auch irgendwie das alles mal niederschreiben wollte, wie ich das einfach so benutze, aus meiner Erfahrung erzählen. Und da habe ich ChatGPT auch für genutzt. Also ich habe jetzt nicht den ganzen Artikel davon generieren lassen, aber ich habe mich einfach hingesetzt und das so runtergeschrieben, so relativ umgangssprachlich, nur einfach so ohne jetzt groß über Formulierungen und Sätze nachzudenken, habe ich es einfach runtergeschrieben und dann habe ich das ganze Ding reingeschoben. Ich glaube, wir haben so ein CustomGPT dafür, der so, ich glaube, der ist dafür gedacht, dass der mehr so im INNOQ, wie haben wir diese INNOQ Voice Guidelines, wie wir Texte schreiben wollen und dann habe ich gesagt, hier nimm die, die kannte das Tool glaube ich auch schon und habe ihn halt gebeten, okay, guck mal grammatikalisch, rechtschreibmäßig und vom Schreibstil drüber und verbessere mir den Artikel.
Dann ist er halt über den ganzen Artikel drüber rasiert, hat dann aber auch einen Abschnitt einfach rausgeschmissen.
Anja Kammer: Ja, das passiert.
Isabel König-Wingen: Ja, und dann, weil das Thema war irgendwie eine Erfahrung als Softwareentwicklerin mit KI und ein Absatz war halt auch wieder so privat angehaucht und den hat er gestrichen. Dann hab ich so gesagt, okay, der Absatz ist mir aber wichtig, pack den bitte wieder rein. Dann hat das Tool den wieder reingepackt. Und das fand ich dann auch sehr beeindruckend. Also ich fand’s natürlich nicht gut, dass er das gelöscht hat, aber das Tool war in der Lage, das wieder hinzuzufügen.
Und das war ziemlich cool. Und dann habe ich das so genommen, habe dann natürlich nochmal drüber gelesen, habe hinterher auch nochmal Kolleg:innen drüber lesen lassen. Und die haben, glaube ich, insgesamt war da irgendwie noch ein Rechtschreibfehler, wo ein bisschen der Satzbau komisch war. Aber im Großen und Ganzen hat das gut funktioniert. Und wir haben dann auch so mehrere Runden gedreht, ich und die KI. Und dann habe ich immer gefragt, hier, ich würde gerne noch einen Absatz zu Datenschutz dazu haben. Wie könnten wir das schreiben? Oder hier, ich hab noch diesen Absatz dazugeschrieben, passt das rein. So, und dann sind wir irgendwie zu diesem Endergebnis gekommen und das war cool. Ich glaube, bevor es KI gab, hätte ich nicht so einen Artikel überhaupt schreiben können oder hätte die Muse dazu gehabt, diese ganze Arbeit selber zu machen.
Anja Kammer: Du hast dich unterstützt gefühlt sozusagen.
Isabel König-Wingen: Genau. Da hatte ich wirklich das Gefühl, ich bin jetzt effizienter. Also, ohne KI wäre der, glaube ich, lange nicht so gut geworden. Also ich will nicht sagen, der ist super gut, aber für mich, ich war damit jetzt halt zufrieden. Und das hat sich viel einfacher angefühlt, als wenn man zum Beispiel früher mal irgendwie was geschrieben hat, so eine Bachelorarbeit oder einen Aufsatz oder was weiß ich. Da musste man viel mehr drüber nachdenken, wie formuliere ich das jetzt? Wie kann ich das machen? Dann hat man Menschen drüber lesen lassen, hat man da nochmal einen Satz verändert, dann den Satz wieder verändert, dann passte da wieder was nicht. Also es war viel anstrengender gefühlt.
Anja Kammer: Ich habe sehr ähnlich Erfahrung gemacht. Gut, das haben wir jetzt hinzugefügt. Das heißt, in deiner täglichen Arbeit bei der Programmierung nutzt du ChatGPT, du benutzt es für deine privaten Schreibprojekte und auch wenn du Artikel für INNOQ.com schreibst.
Isabel König-Wingen: Genau. Ja, und ich nutze das auch so ziemlich viel privat. Wenn ich ein Buch lese auf Englisch und manche Wörter nicht weiß, dann frage ich, wie das Wort heißt. Letztens habe ich das als Taschenrechner benutzt. Oder… Also, es gibt immer mehr Situationen, wo ich irgendwie ChatGPT benutze, anstatt was zu googeln oder eben auf Stack Overflow nachzugucken.
Anja Kammer: Ich habe auch das Gefühl, ich habe googeln verlernt. Es kommen irgendwie nicht mehr so gute Ergebnisse. Es kann aber auch nur in meinem Kopf stattfinden. Ich weiß es nicht.
Isabel König-Wingen: Ja, ich weiß es auch nicht. Man schreibt halt auch anders mit einer KI. Man stellt einfach so seine Frage. Und bei Google funktioniert es ja nicht. Also da formuliert man ja eigentlich anders. Bei einer KI stellt sie wirklich so eine ausführliche Frage und bei Google ja eher kürzer und so in Stichworten.
Anja Kammer: Ja muss ja auch sein. Diese Suchmaschine hat ja eine andere Anforderung als eine KI Anforderungen hat komplett konträre Anforderungen an deine Suchanfrage. Interessant. Isabel König-Wingen:, ich bedanke mich für dieses Gespräch. Es war sehr schön mit dir zu sprechen darüber.
Isabel König-Wingen: Ja. Danke, ich fand’s auch schön.
Anja Kammer: Und den Artikel, den du geschrieben hast, den verlinken wir auf jeden Fall noch in den Show Notes und bis zur Veröffentlichung, vielleicht kommt da noch was dazu. Ich freue mich auf jeden Fall auf jeden anderen Artikel, den du dazu noch schreiben wirst. Dann bis zum nächsten Mal. Ciao.
Isabel König-Wingen: Dankeschön. Tschüss.