- Es gibt zwei zentrale Muster dafür, wie Entwickler KI einsetzen
- Bootstrapper:
- Verwenden Tools wie Bolt, v0 oder Screenshot-to-Code-KI, um schnell erste Prototypen zu erzeugen.
- Nutzen KI ausgehend von einem Design oder Konzept, um eine erste Codebasis zu erstellen, und entwickeln in wenigen Stunden oder Tagen einen funktionierenden Prototypen
- Iteratoren:
- Verwenden Tools wie Cursor, Cline, Copilot oder WindSurf in der täglichen Entwicklung für Code-Vervollständigung, komplexes Refactoring sowie die Erstellung von Tests und Dokumentation
Unterschiede bei der KI-Nutzung zwischen erfahrenen und Junior-Entwicklern
- Erfahrene Entwickler: Refaktorieren von der KI vorgeschlagenen Code fortlaufend, behandeln Edge Cases, härten Typdefinitionen und überprüfen Architekturentscheidungen
- Junior-Entwickler: Neigen dazu, die Ausgaben der KI unverändert zu übernehmen, wodurch das Risiko entsteht, einen „Kartenhaus“-Code zu erzeugen, der in realen Umgebungen Probleme verursachen kann
Das Paradox der KI-Tools: das Wissensparadox
- Erfahrene Entwickler: Beschleunigen mit KI Aufgaben, die sie bereits verstehen
- Junior-Entwickler: Versuchen KI zu nutzen, um überhaupt erst zu lernen, was sie tun sollten
- Ergebnis: Die Wirksamkeit von KI-Nutzung unterscheidet sich je nach Erfahrungsgrad erheblich
Das 70%-Problem beim Einsatz von KI-Coding-Tools durch Nicht-Experten
- Anfangsfortschritt: Mit KI-Tools lassen sich 70 % der gewünschten Funktionalität schnell umsetzen
- Die restlichen 30 %: Beim Versuch, kleine Bugs zu beheben, entstehen neue Probleme, und beim Lösen dieser Probleme kann man in einen Teufelskreis geraten, der noch mehr Probleme erzeugt
Strategien für den effektiven Einsatz von KI-Tools
- KI-Entwurfsmuster: Mit KI eine Basisimplementierung erzeugen und diese anschließend manuell prüfen und refaktorieren
- KI als Lernwerkzeug nutzen: Durch fortlaufenden Dialog den von der KI erzeugten Code verstehen, zugleich grundlegende Programmierkonzepte lernen und schrittweise Wissen aufbauen
- Die Grenzen der KI erkennen: KI-Tools sind nützlich für Prototyping, Lernhilfe und die Validierung von Ideen, doch für produktionsreife und wartbare Software ist weiterhin echtes Engineering-Wissen nötig
Der Aufstieg des agentischen Software Engineering
- Agentische Systeme: Entwickeln sich über das bloße Reagieren auf Anweisungen hinaus zu Systemen, die planen, ausführen und iterieren können
- Ausblick: KI ersetzt Entwickler nicht, sondern entwickelt sich zunehmend zu einem proaktiven Kollaborateur, der menschliche Anleitung und Expertise respektiert und eigenständig auf Problemlösung hinarbeitet
- KI hilft bereits dabei, bekannte Muster umzusetzen, Ideen schnell als Prototyp zu realisieren und verschiedene Ansätze zu erkunden
- Sie automatisiert wiederkehrende und alltägliche Coding-Aufgaben, sodass man sich auf interessantere Probleme konzentrieren kann
Worauf man beim Einsatz von KI-Tools achten sollte
- Bedeutung der User Experience: Mit KI lassen sich schnell Demos erstellen, doch wenn Fehlermeldungen, Edge Cases oder UI-Zustände im realen Einsatz nicht sorgfältig behandelt werden, kann das für Nutzer frustrierend sein
- Die Rückkehr der Handwerkskunst:
- KI hat die Softwareentwicklung beschleunigt, doch es besteht die Gefahr, die Kunst zu verlieren, wirklich verbrauchertaugliche Erlebnisse zu schaffen.
- KI-Tools können alltägliche Coding-Aufgaben übernehmen und Entwicklern helfen, sich auf wichtige Details zu konzentrieren.
Fazit
- Die Rolle der KI:
- KI hilft nicht einfach nur dabei, schneller mehr Code zu schreiben, sondern bessere Software zu bauen
- KI verbessert die Softwarequalität nicht dramatisch.
- Die schwierigen Teile der Softwareentwicklung erfordern weiterhin menschliches Urteilsvermögen.
- KI ermöglicht eine schnelle Exploration bei der Suche nach besseren Lösungen, kann aber gute Softwarepraktiken nicht ersetzen.
- Verantwortung des Menschen: KI klug einzusetzen, Engineering-Prinzipien aufrechtzuerhalten und die Softwarequalität zu verbessern, bleibt weiterhin Aufgabe des Menschen
12 Kommentare
Es ist gut, Technologie zu nutzen, aber es gibt viel zu viele Leute, die sogar das Denken an sie delegieren; gerade in Bereichen wie der Bildung sehe ich das besonders oft, und das bereitet mir Sorgen. Ehrlich gesagt möchte ich mit solchen Menschen nicht zusammenarbeiten.
Vielleicht ähnlich wie die Diskussion, dass IDEs Entwickler ruinieren..
Ich bin es leid, von Kunden erzeugten AI-Code zu korrigieren
Sobald AI beginnt, Entscheidungen zu treffen, scheint es keine Antwort mehr zu geben
Wenn man der AI Feedback gibt, scheint es zunächst besser zu werden … und irgendwann geht es kaputt. Man braucht ein Gespür dafür, diesen Moment zu erkennen. Und wenn dieser Moment kommt, muss man sich entscheiden, ob man die AI verwirft oder noch einmal von vorn anfängt.
Wie würde man
production-ready(im Sinne von „für den produktiven Einsatz bereit“) am natürlichsten übersetzen?auf produktiven Einsatz vorbereitet
auf Produktniveau
Bereit für die Veröffentlichung!
Ich übersetze das in der Regel mit „releasefähig“ oder „für den Release vorbereitet“.
„Release-fähig“ klingt gut!
„Zur Bereitstellung bereit“ (für den tatsächlichen Einsatz oder für Kunden) wäre vielleicht passend?
Wie sieht es mit praxiserprobten Fällen aus?
Für Praxiserprobung wird oft der Ausdruck „battle tested“ verwendet.
Hacker-News-Kommentar
AI hat wie viele frühere Werkzeuge versucht, einen Teil des Programmierens zu ersetzen. Die eigentliche Kernarbeit erfordert jedoch weiterhin das menschliche Gehirn
AI ist wie ein engagierter Junior-Entwickler im Team
Mit AI-Tools konnten neue Werkzeuge schnell entwickelt werden
Für Junior-Entwickler ist AI ein zweischneidiges Schwert
Das Muster „Vertrauen, aber verifizieren“ ist wichtig
AI kann zwar schnell Code schreiben, beschleunigt aber nicht den Lernprozess selbst
Copilot scheitert bei komplexen Aufgaben
GenAI kann bei Lösungen mit gut bekannten Anforderungen tiefgehende Ergebnisse liefern
Es ist wichtig, die Arbeit von AI zu validieren
Es ist schwer, Menschen zu treffen, die tatsächlich eine stark gesteigerte Produktivität durch AI erlebt haben