27 Punkte von GN⁺ 2024-12-07 | 12 Kommentare | Auf WhatsApp teilen
  • 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

 
dbs0829 2024-12-10

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.

 
kandk 2024-12-09

Vielleicht ähnlich wie die Diskussion, dass IDEs Entwickler ruinieren..

 
savvykang 2024-12-07

Ich bin es leid, von Kunden erzeugten AI-Code zu korrigieren
Sobald AI beginnt, Entscheidungen zu treffen, scheint es keine Antwort mehr zu geben

 
iolothebard 2024-12-07

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.

 
yadameda 2024-12-07

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

 
kandk 2024-12-09

Bereit für die Veröffentlichung!

 
binaryeast 2024-12-08

Ich übersetze das in der Regel mit „releasefähig“ oder „für den Release vorbereitet“.

 
jhj0517 2024-12-08

„Release-fähig“ klingt gut!

 
bus710 2024-12-08

„Zur Bereitstellung bereit“ (für den tatsächlichen Einsatz oder für Kunden) wäre vielleicht passend?

 
savvykang 2024-12-07

Wie sieht es mit praxiserprobten Fällen aus?

 
soomtong 2024-12-09

Für Praxiserprobung wird oft der Ausdruck „battle tested“ verwendet.

 
GN⁺ 2024-12-07
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 kann wesentliche Aufgaben wie das Management von Komplexität nicht übernehmen
    • AI kann auf Englisch kommunizieren und ist dadurch flexibler als frühere Ansätze, hat aber weiterhin Grenzen bei der eigentlichen Problemlösung
  • AI ist wie ein engagierter Junior-Entwickler im Team

    • Sowohl Junior-Entwickler als auch AI-Tools neigen dazu, viele Bugs und weitschweifigen Code zu produzieren
    • Da AI nicht aus Feedback lernen kann, muss man wiederkehrende Fehler immer wieder prüfen
  • Mit AI-Tools konnten neue Werkzeuge schnell entwickelt werden

    • Dank AI konnten Aufgaben, die sonst mehrere Tage gedauert hätten, in wenigen Stunden abgeschlossen werden
    • Selbst wenn AI nur 70 % oder 42,5 % der Gesamtarbeit erledigt hat, war das eine große Verbesserung
  • Für Junior-Entwickler ist AI ein zweischneidiges Schwert

    • Wer AI als Abkürzung zum Lernen nutzt, überspringt den Lernprozess
    • Nutzt man AI jedoch als Mentor, ist tiefgehendes Lernen möglich
    • Wenn AI die Arbeit von Junior-Entwicklern ersetzt, kann das zu Einstellungsproblemen führen
  • Das Muster „Vertrauen, aber verifizieren“ ist wichtig

    • Wenn von AI geschriebener Code kompiliert und die Testfälle besteht, ist das ein positives Signal
    • Zum Beispiel gibt es ein Projekt, das Rusts csscolorparser an Python bindet
  • AI kann zwar schnell Code schreiben, beschleunigt aber nicht den Lernprozess selbst

    • Mit Hilfe von AI kann man sich schneller verbessern, aber gut strukturierten Code zu schreiben braucht trotzdem Zeit
  • Copilot scheitert bei komplexen Aufgaben

    • AI zeigt Grenzen bei der Skalierbarkeit
    • In Zukunft werden dafür Technologien wie Quantencomputing nötig sein
  • GenAI kann bei Lösungen mit gut bekannten Anforderungen tiefgehende Ergebnisse liefern

    • Bei komplexen Problemen sind nur etwa 50 % Leistung möglich
    • Es wird die Methode genutzt, eine detaillierte Aufgabenliste zu erstellen und jede Aufgabe einzeln zu lösen
  • Es ist wichtig, die Arbeit von AI zu validieren

    • Von AI vorgeschlagener Code war zwar lauffähig, nutzte aber eine Bibliothek mit Sicherheitsproblemen
    • Auch wenn AI-Code ausführbar ist, muss er überprüft werden
  • Es ist schwer, Menschen zu treffen, die tatsächlich eine stark gesteigerte Produktivität durch AI erlebt haben

    • AI-Tools sind praktisch, aber nur für bestimmte Teile des Codings nützlich