Home Blog GenAI Ist KI bereit für echte Softwareentwicklung? Einblicke von Michał Czmiel

Ist KI bereit für echte Softwareentwicklung? Einblicke von Michał Czmiel

Die Welt der Softwareentwicklung verändert sich schnell, und KI wird schnell zu einem Teil unseres alltäglichen Toolkits. Aber ist sie wirklich bereit, uns beim Aufbau komplexer, realer Systeme zu helfen?

Bei Boldare starten wir eine neue Serie namens Agile Product Builders: Tech Edition — kurze, aufschlussreiche Gespräche für die Menschen, die heute tatsächlich Produkte bauen. Den Weg führt Piotr Majchrzak, Co-CEO von Boldare. In dieser ersten Episode setzt sich Piotr mit Michał Czmiel zusammen, einem Senior-Softwareentwickler und Tech Lead mit sieben Jahren Erfahrung bei Boldare. Gemeinsam tauchen sie ein, wie KI das Handwerk der Softwareentwicklung neu gestaltet — von den frühen “Aha”-Momenten mit GitHub Copilot und ChatGPT bis hin zu realen Arbeitsabläufen, Herausforderungen und Best Practices, um KI zu einem Teil der alltäglichen Arbeit zu machen.

Tauchen Sie in das vollständige Transkript unten ein oder schauen Sie sich das Video an, um zu entdecken, wie KI sich von einem Buzzword zu einem echten Partner beim Aufbau von Software entwickelt.

Ist KI bereit für echte Softwareentwicklung? Einblicke von Michał Czmiel

Table of contents

Einführung und erste Erfahrung mit KI

Piotr (Host): Hi, ich bin Piotr, Co-CEO von Boldare, und Sie schauen Agile Product Builders: Tech Edition, eine 25-minütige Serie für die Produktbauer von heute. In dieser Episode erkunden wir, wie KI die Art und Weise verändert, wie wir Software bauen. Und um es klar zu machen, wir meinen echte Systeme — nicht Wochenend-Nebenprojekte oder Vibe-Coding, was eine andere Edition sein könnte.

Der heutige Gast ist Michał Czmiel, unser Senior-Softwareentwickler und Tech Lead hier bei Boldare. Michał, Sie sind jetzt, glaube ich, sieben Jahre bei Boldare. Was ich sicher weiß, ist, dass Sie eine wichtige Rolle bei der Gestaltung einiger unserer erfolgreichsten Produkte gespielt haben. Wir haben diese mit unseren großartigen Kunden gemeinsam geschaffen — aber nicht nur als Entwickler und Tech Lead, richtig? Ich erinnere mich daran, Sie in den letzten Jahren viele Hüte tragen zu sehen. Software-Architekt, Event Storming-Facilitator… und ich denke, Sie mögen es auch, ein technischer Coach für Entwickler und ganze Teams zu sein, würde ich sagen. Also ist es großartig, Sie zu haben. Willkommen in der Show. Hi Michał.

Michał (Gast): Hallo. Ja, schön hier zu sein. Danke für die warme Einführung. Viele Hüte tragen — ich denke, das ist eine gute Art, es auszudrücken. Im Zeitalter der KI ist es, wissen Sie, ein Schritt weniger, um von KI-Overlords ersetzt zu werden.

Piotr: Also haben Sie einen Lieblingshut?

Michał: Ich mag es wirklich, ein Mentor der Trainees zu sein. Es ist immer, wissen Sie, demütigend, etwas Wissen zu teilen, und auch, wissen Sie, wenn sie einige, einige schwierige Fragen stellen und Sie, Sie sagen einfach, fragen Sie nicht danach, Sie sind, Sie sind zu jung, aber Sie müssen die Antwort herausfinden und ihnen das sagen, also denke ich, dass es, der Mentor der Trainees zu sein, ein sehr befriedigender Job ist.

Piotr: Ja. Ich hoffe, diese Rolle wird in Zeiten der KI nicht verschwinden — was eine Option sein könnte. Oder zumindest, wissen Sie, die gelbe Ente, die wir so viele Jahre benutzt haben, ist jetzt ein bisschen intelligenter — und nicht so still wie früher. Richtig?

Michał: Ja, genau. Einige Branchenführer nennen KI-Tools sogar “ehrgeizige Trainees” oder “seltsame Trainees” — Sie können sie anschreien. Aber keine Witze beiseite, es ist wirklich schwierig, heutzutage in die Branche einzusteigen. Und mit all diesen KI-Tools könnte es schwieriger sein, in Einstiegsjobs zu beginnen.

Piotr: Okay, also sprechen wir über diese KI-Tools, richtig? Weil das wirklich ein großartiges Thema ist. Code generieren ist billig. Echte Probleme lösen ist schwer. Das wissen wir. Und ich bin neugierig auf Ihre professionelle Meinung. Als Entwickler, der komplexe Softwaresysteme baut, was war Ihr “Aha”-Moment, der Sie überzeugte, dass KI-Coding-Tools mehr als nur Hype sind? Und ich vermute, es geht nicht nur um Codegenerierung, richtig?

Michał: “Ja, wahr. Ich denke, ich hatte zwei dieser Momente. Der erste war während der anfänglichen GitHub Copilot-Vorschau. Wissen Sie, als ich etwas wie den Anfang einer Funktion tippte, um eine Fibonacci-Sequenz zu generieren oder eine Beschreibung einer React-Komponente und ich bekam die Antwort direkt in meinem Code-Editor.”

Dann fühlte ich mich wie, okay, das ist etwas Neues. Es geht nicht nur um Geschwindigkeit, sondern auch darum, eine bestimmte Art von Reibung zu reduzieren — wie in den Browser zu gehen, Dokumentation nachzuschlagen, Stack Overflow zu überprüfen.

Und hier verbessert es irgendwie den Fluss der Entwicklung. Aber ich denke, der zweite Moment war, als ChatGPT öffentlich veröffentlicht wurde — ein chat-basiertes System mit substantiellem Wissen. Sie konnten mit ihm über Themen sprechen, es bitten, Sie herauszufordern, oder Ihnen alternative Wege geben.

Die zweite Idee war, als ChatGPT öffentlich veröffentlicht wurde. Also hatten wir ein chat-basiertes System, das substantielles Wissen hatte und Sie konnten mit ihm über Themen sprechen, es bitten, Sie herauszufordern, es bitten, Ihnen alternative Wege zu geben.

Also ja, das war etwas wie, hey, vielleicht kann ich anstatt stecken zu bleiben, zusätzlichen Kontext oder neue Ideen bekommen. Und vielleicht jetzt der dritte Schritt — ich denke, wir werden auch darüber sprechen — war die Einführung moderner Agenten-Bearbeitung, wie Cursor und der neue GitHub Copilot Chat.

Piotr: Okay, also sieht es so aus, als hätten wir bereits drei wichtige Schritte in dieser Revolution. Ich schaue es gerne als eine Erweiterung von Stack Overflow an, in gewissem Maße. Aber für mich war der zweite wirklich wichtige Schritt die IDE-Evolution. KI-Tools in der alltäglichen Arbeit und ihre Anwendungen. Jedenfalls — also was verwenden Sie in Ihrer täglichen Arbeit? Was haben Sie auf Ihren Bildschirmen, wenn Sie Produkte bauen?

Michał: Mein primäres Tool ist Cursor. Jetzt habe ich auch Visual Studio Code und Z-Editoren ausprobiert. Ich könnte sie je nach den Features wechseln, dem Changelog, den sie veröffentlichen. Jetzt hat jedes Tool KI eingebaut — sogar Zoom, das wir verwenden, um dies aufzunehmen, hat einen KI-Assistenten. Aber in Bezug auf Tools, die ich verwende, um Software zu bauen, ist mein primäres Tool Cursor.

Ich habe auch Visual Studio Code und Zed-Editoren ausprobiert. Ich könnte je nach den Features oder Changelogs wechseln, die sie veröffentlichen. Die Editor-Landschaft verändert sich wirklich schnell. Also ist es auch gut, bereit zu sein, Ihren Lieblingseditor zu wechseln — vielleicht nehmen Sie Ihre Shortcuts mit. Ich empfehle, Vim-Shortcuts und -Bewegungen zu lernen. Auf diese Weise können Sie leicht zwischen Editoren wechseln. Ich verwende auch KI-Chat.

Ich habe kürzlich Google AI Studio verwendet, da wir Google Workspace in unserem Unternehmen verwenden. Es integriert sich gut — Sie können dort Dokumente hochladen, Fragen stellen. Ich verwende auch Perplexity für spezifischere Nachschlagen — zum Beispiel Limits für bestimmte DynamoDB-Befehle. Ich verwende auch Copilot, aber auf der GitHub.com-Website. Ich verwende es für automatische Code-Reviews — Sie können GitHub Copilot an einen Pull Request anhängen und es wird manchmal ziemlich nützliche Review-Kommentare produzieren. Ich verwende es auch, um Fragen zu spezifischen Repositories zu stellen. Sie können zu jedem Repo auf GitHub gehen, einen Chat öffnen und loslegen.

Piotr: Danke. Sieht so aus, als gäbe es einen ziemlichen Stack verschiedener Tools, richtig? Aber in Bezug auf die Nutzung — welches verwenden Sie am meisten?

Michał: Ich würde wahrscheinlich den Editor sagen. Also derzeit ist es Cursor. Ich verwende es hauptsächlich, um Code zu bearbeiten, aber auch, um Fragen über die Codebasis zu stellen. Wenn Sie mit Cursor nicht vertraut sind, es ist ein modernes KI-gestütztes Bearbeitungstool — ein Code-Editor. Es arbeitet in zwei Modi.

Der erste Modus ist der Tap-Completion-Modus, wo Sie Ihren Code tippen und Sie sind der Pilot. Es vervollständigt Code automatisch, schlägt nächste Schritte vor — sogar mehr als nur Einzeilen-Vervollständigungen, was eine Einschränkung des ursprünglichen GitHub Copilot war. Jetzt kann es zum Beispiel vorschlagen: “Hey, wir sollten dieses Modul importieren” und zum Anfang der Datei springen. Die kürzlich veröffentlichte neue Version — ich denke, vor ein paar Tagen — kann jetzt Änderungen in mehreren Dateien vorschlagen. Es könnte sogar sagen: “Lass uns zu dieser anderen Datei gehen und etwas aktualisieren.” Der zweite Modus ist der Agent-Modus, wo Sie etwas in eine Box tippen und — hoffentlich ein paar Sekunden oder Minuten später — Ihren Code als Artefakt bekommen.

Piotr: Also gibt es einen Assistenten-Modus — die Unterstützung, die die IDE Ihnen gibt — und dann gibt es den heiligen Gral: etwas, das die Arbeit für Sie macht. Aber Sie müssen immer noch der Operator im Agent-Modus sein, richtig?

Michał: Ja, und wir werden wahrscheinlich tiefer darauf eingehen. Aber es ist ein ziemliches Kaninchenloch — diesen Agent-Modus zum Laufen zu bringen, erfordert substantielles Wissen: welchen Kontext bereitzustellen, welche Regeln zu setzen, wie man seinen Prompt schreibt, welche Modelle zu verwenden. Sollte das Modell “denken” oder nicht? Ja — wir sollten ein separates Webinar nur darüber machen.

Praktische Anwendungen von KI und Qualitätserhaltung

Piotr: Ja, ich bin sicher. Es ist aufregend — weil ich weiß, wie wichtig die integrierte Entwicklungsumgebung für einen Programmierer ist. Es ist die Hauptschnittstelle für den Aufbau von Software. Und Sie sind zu dem gewechselt, was ich als modernes Vim beschreiben könnte. Ich bin alt genug, um mich an vi zu erinnern, und dann kam Vim… jedenfalls. Erzählen Sie uns — führen Sie uns durch einen echten Fall, wo ein KI-Assistent Ihnen ernsthafte Zeit gespart hat.

Michał: Sicher. Lassen Sie mich Ihnen ein Beispiel von etwas geben, das ich kürzlich gebaut habe. Ich arbeite hauptsächlich an Backend-Systemen, die sich mit Datenverarbeitung und Planung befassen. Wenn ich ein Feature implementiere, versuche ich, es als vertikalen Schnitt zu denken — wie ein Mini-Modul oder eine Mini-App, die eine Sache macht.

Michał: Das passt perfekt in die LLM-Logik, weil es den gesamten benötigten Kontext enthält. So beginne ich normalerweise mit der Arbeit an einem Feature: Zuerst iteriere ich über die Lösung mit Chat. In meinem Fall habe ich Google AI Studio verwendet. Sagen wir, ich muss mich mit einem externen Service integrieren — ich lade die Dokumentation hoch (Swagger, PDF, etc.) und stelle Folgefragen wie: “Was ist die Authentifizierungsmethode?”, “Was sind die Rate-Limits?”, “Geben Sie mir alle Endpunkte im Zusammenhang mit der Befehlsplanung.”

Auf diese Weise finde ich heraus, was ich tun muss. Dann komme ich auf eine allgemeine technische Lösung und Architektur — wie Daten fließen werden, was die Datenbankstruktur ist — und ich bitte den Chat, das zu validieren. Ein guter Tipp ist, den Chat nach Folgefragen zu fragen — er kann erkennen, was fehlt.

Ich frage Dinge wie: “Sehen Sie Performance-Probleme?”, “Was ist mit Parallelität oder Speicher?”, “Wie wird das skalieren?”, “Was passiert, wenn wir eine neue Regel zum System hinzufügen?”

Sobald ich die Lösung habe, gehe ich zurück zu meinem Editor. Einige Leute bereiten einen detaillierten Plan vor und lassen den Agenten die Schritte ausführen. Ich bin ein bisschen traditioneller — ich bevorzuge es, die anfängliche Struktur zu scaffold und die Tests selbst zu schreiben. Auf diese Weise stelle ich sicher, dass Struktur, Coding-Stil und Abhängigkeiten konsistent sind — etwas, womit KI-Agenten oft kämpfen. Dann lasse ich den Agenten die Lücken füllen. Zum Beispiel, wenn ich Mapping zwischen einer Datenbank und einem externen Service benötige — oder wenn ich einen Eckfall verpasst habe, wie ein Benutzer, der ein leeres Array sendet oder limit = -10, kann ich einfach den Agenten fragen: “Bitte reparieren Sie das und fügen Sie einen Testfall hinzu.”

Und am Ende kann ich den Chat im Editor um eine Vor-Review bitten. Ich verweise auf wichtige Dateien und frage: “Was ist mit diesem Code? Irgendwelche Probleme?” Zusammenfassend: Das Ziel dieses Flows ist nicht nur Geschwindigkeit. Ich versuche auch, Qualität zu erhalten. Oft, mit diesem “Vibe-Coding”, das Sie erwähnt haben — wo Sie sich nicht um Code kümmern, nur um Ergebnisse — fügen Leute Fehler in die KI ein und ignorieren den Rest. Ich nehme einen anderen Ansatz.

Geschwindigkeit ist nicht das einzige Ziel. Ich behalte auch das mentale Modell der Lösung in meinem Kopf. Ich schiebe das nicht vollständig zur KI. Natürlich, wenn Sie etwas weniger Komplexes bauen oder dem Agenten mehr vertrauen, können Sie die KI mehr übernehmen lassen.

Piotr: Ja — das “Vibe-Coding”-Ding ist phänomenal. Aber die echte Frage für uns ist: Kann KI beim Aufbau komplexer Systeme helfen? Danke, dass Sie uns durch Ihren Prozess geführt haben — es ist fantastisch. Als ich zuhörte, stellte ich mir vor, Sie sprechen mit mehreren Spezialisten… außer sie sind nicht menschlich. Vielleicht hat Ihre Mensch-zu-Mensch-Kommunikation abgenommen? Ich habe immer beobachtet, dass in guten Teams Menschen viel Zeit mit Sprechen verbringen. Wir sagen oft Kunden: “Sie zahlen für das Sprechen”, weil das Ergebnis dieser Gespräche großartig ist. Code ist relativ einfach zu generieren, aber Sie müssen ihn warten — und verstehen. Also nochmals danke fürs Teilen. Aber ich muss fragen — wie viel Zeit sparen Sie tatsächlich? Oder wie viel produktiver sind Sie?

Michał:

Ich weiß, Sie wollen etwas wie, ja, produktiv, genau hören. Es ist schwer zu quantifizieren, weil es bei jeder Aufgabe anders ist. Nur zur Klarstellung, ich spreche auch mit Menschen, nicht nur mit KI-Modellen, aber ja, ich würde sagen, es beschleunigt viel Zeit, sobald Sie die Tools begreifen und nicht mit dem Tool kämpfen.

Aber ja — es beschleunigt die Dinge viel, sobald Sie die Tools begreifen und nicht mit ihnen kämpfen. Wenn Sie ihre Einschränkungen kennen, können Sie viel schneller sein. Es fühlt sich an, als hätte man einen Trainee — und einige neuere Entwicklungen, wie Cursors Vorschau des Hintergrund-/Async-Agent-Modus, machen es noch mächtiger. Theoretisch werden wir bald mehrere gleichzeitige “Trainees” haben, die an verschiedenen Teilen des Codes arbeiten. Und ja — ich verwende die gesparte Zeit, um mich auf etwas anderes zu konzentrieren, anstatt sich wiederholenden Boilerplate zu schreiben.

Piotr: Also kann ich annehmen, Sie sind definitiv produktiver? Vielleicht nicht doppelt so schnell — aber 1,5x?

Michał: Ja, definitiv. Wenn jemand diese Tools nicht ausprobiert hat, empfehle ich es stark. Ich bin definitiv produktiver mit ihnen.

Herausforderungen und Sicherheit der KI-Nutzung

Piotr: Okay, ich vermute, es gibt auch eine Kehrseite dieser Medaille, richtig? Erzählen Sie mir — wo sind KI-generierte Vorschläge für Sie schiefgegangen, und wie haben Sie diese Probleme erwischt oder repariert?

Michał: Das Gute ist, dass keiner meiner KI-generierten oder halluzinierten falschen Codes jemals in die Produktion gelangt oder etwas Kritisches kaputt gemacht hat. Ich versuche immer, Fehler früh zu fangen. Ich würde die wichtigsten Probleme, die ich gefunden habe, in vier Gruppen kategorisieren — und vielleicht teilen, wie wir sie reparieren:

Erstens, manchmal steckt der LLM-Agent in einer Schleife fest und versucht, eine gültige Lösung zu finden. Es generiert wiederholt zufällige Methoden oder Funktionsaufrufe. Normalerweise passiert das, weil die Aufgabe zu komplex ist oder der Kontext zu klein ist. Die Reparatur ist, das Problem zu zerbrechen oder mehr Kontext zu geben. Zweitens bekommen wir manchmal ungültigen Code, der gültig aussieht. Deshalb sind automatisierte Tests, Typüberprüfung und Regeln essentiell — um die Verwendung von Funktionen zu verhindern, die nicht existieren. Drittens, ein Ärgernis, das ich habe, ist, dass manchmal LLM-generierter Code mit Kommentaren überladen ist. Das verdünnt den Zweck von Kommentaren — die erklären sollten, warum etwas getan wird, nicht jede einzelne Zeile. Die Reparatur ist, strengere Kommentierungsregeln durchzusetzen. Viertens, was schwieriger zu erkennen sein kann, wenn Sie kein Experte in der Bibliothek oder dem Framework sind: Die KI-Modelle haben einen Daten-Cutoff. Also kann der generierte Code veraltete Bibliotheksversionen oder Docker-Images verwenden. Vielleicht wurde eine Bibliothek zur Standardbibliothek hinzugefügt, aber die KI weiß es nicht. Also müssen Sie den Code immer noch sorgfältig validieren.

Piotr: Also müssen wir immer noch denken. Der Operator — der Entwickler — muss denken. Das ist ein bisschen enttäuschend… oder vielleicht nicht. Wir brauchen das immer noch. Welche Arten von Sicherheitsmaßnahmen verwenden Sie? Ich meine, es muss Bedenken bezüglich geistigen Eigentums oder Sicherheit geben. Wie gehen Sie damit um?

Michał: In Ordnung, lassen Sie uns das aufschlüsseln: Auf der Sicherheitsseite — Anwendungssicherheit — geht es darum, Branchen-Best-Practices zu befolgen. Backen Sie Sicherheit früh ein, verwenden Sie Sicherheits-Scanning-Tools, machen Sie menschliche Code-Reviews, etc. Bezüglich geistigen Eigentums ist es nuancenreicher. Erstens, aktivieren Sie den Datenschutzmodus auf den KI-Tools, die Sie verwenden. Das bedeutet null oder begrenzte Datenaufbewahrung — Ihre Daten werden nicht für das Training der KI verwendet. Seien Sie auch vorsichtig, keinen lizenzierten Code zu verwenden. Nicht aller Code auf GitHub ist Open Source. Viele Top-Tools bieten Optionen, um dies zu vermeiden. Es ist hauptsächlich eine Frage der administrativen Governance — alle notwendigen Einstellungen zu aktivieren, um Ihr geistiges Eigentum zu schützen. Wenn Sie wirklich feinkörnig sein wollen, erlauben einige Tools Ihnen, Ignore-Dateien zu spezifizieren (wie .gitignore) — Dateien, die nicht indiziert oder für Autocomplete verwendet werden sollten. Also wenn Sie kritischen Geschäfts- oder Geheimsauce-Code haben, können Sie sicherstellen, dass diese Dateien nicht gescannt oder von KI-Vervollständigungen verwendet werden.

Piotr: Okay, danke. Ich stelle mir KI gerne als Bagger vor, aber manchmal müssen Sie immer noch eine Schaufel verwenden. Also wie entscheiden Sie, was manuell zu tun und was mit KI zu tun — oder vielleicht entscheiden Sie nicht?

Michał: Ich würde sagen, alle Konzeptarbeit — hochrangige Architektur, Diagramme, Modularisierung — sollte manuell gemacht werden. Ich weiß, es gibt Tools, die Projekt-Scaffolds und Bootstraps für langfristige Projekte generieren. Aber ein mentales Modell und Verständnis zu haben ist besser, besonders da Sie es selbst warten werden. KI ist nur ein Helfer. Die “Schaufel” sollte für kritische Geschäftslogik verwendet werden — Kern-Domain-Logik, Zahlungen, Authentifizierung, Tests — alles, was explodieren könnte, wenn es nicht sorgfältig geschrieben und überprüft wird.

Piotr: Und schließlich — könnten Sie sich vorstellen, heute KI nicht zu verwenden?

Michał: Das ist eine sehr gute Frage. Ich würde an drei mögliche Antworten denken. Erstens, wenn es eine Art regulierte Branche oder eine Art Szenario oder eine Domain oder einen Fall gäbe, wenn KI nicht verwendet werden könnte. Aber ich weiß nicht, ob das der Fall sein wird für wie viel in der Zukunft. Da diese Modelle besser werden, werden die Tools fortschrittlicher. Und ich würde auch sagen, wenn Sie einige Coding-Herausforderungen wie Advent of Code machen, verbessern Sie sich selbst, nicht das Modell.

Und das dritte wäre, wissen Sie, wenn Sie im Zug oder Flugzeug sind und keinen Internetzugang haben, weil das Ausführen dieser Modelle lokal möglich ist. Aber es ist ziemlich. Es ist nicht so, dass Sie eine wirklich starke GPU und andere haben müssen, um effiziente Modelle auszuführen. Aber ja, generell würde ich sagen, dass ich jetzt nicht ohne es codieren würde. Ja, ich denke, das ist wie ein integraler Teil meines Stack.

Piotr: Okay. Also können Sie mir ja oder nein sagen — ist KI bereit für echte Softwareentwicklung?

Michał: Ich würde ja sagen.

Piotr: Wir haben 30 Minuten gewartet, um diese Frage zu beantworten. Aber ja, für mich ist die Antwort ja. Danke, Michał, es war großartig, Sie hier zu haben. Danke für die Chance, von Ihrer Erfahrung zu lernen. Und danke an alle, die uns zuschauen. Das sind 30 Minuten — ein bisschen über Zeit. Grüße an Ihre Katze!

Michał: Danke. Tschüss tschüss.

;