Die gefährliche Illusion vom Solo-KI-Entwickler

Aus dem Englischen übersetzt. Original lesen auf English.


Die Falle mit dem “läuft ja”

Werkzeuge wie Claude Code, Cursor und GitHub Copilot lassen uns Funktionen schneller ausliefern als von Hand. Ich nutze sie jeden Tag. Aber ich sehe ein Muster in Open-Source-Projekten und in Unternehmenscodebasen bei dem die Person die den Prompt schreibt aufhört Teil des Prozesses zu sein.

Es läuft so. Du behandelst die KI wie jemanden den du eingestellt hast und dem du zutraust es richtig zu machen. Du schreibst den Prompt. Du kopierst das Ergebnis. Du deployst es. Wenn es kompiliert geht es raus.

So bekommst du Sicherheitslücken durch die ein Lkw passt. Ich habe Authentifizierung im Browser, ungeprüfte Dateipfade und uneingeschränkten Shell-Zugriff in mehreren Weboberflächen gefunden die laut ihren eigenen Autoren vollständig von KI generiert waren. Abgeschlossene Türen mit dem Schlüssel daneben geklebt.

Die KI ist ein Junior mit Turbo

Stell dir einen Junior-Entwickler vor der tausend Wörter pro Minute tippt und jede Bibliothek kennt die es gibt. Gib ihm jetzt zwei weitere Eigenschaften.

Er hat keine Ahnung wie ein Sicherheitsproblem aussieht außer jemand sagt es ihm. Und er sagt nie dass er etwas nicht weiß. Er gibt dir eine selbstsichere falsche Antwort.

Würdest du diese Person nach Produktion lassen ohne dass jemand drüberliest? Natürlich nicht.

Genau das macht ein Projekt nur mit KI. Das Modell löst sehr gut was direkt vor ihm liegt und hat keinen Grund darüber nachzudenken was passiert wenn jemand eine Anfrage schickt die du nicht geplant hast. Ein Pfadparameter mit ../../ gehört nicht zur Aufgabe die du gestellt hast und kommt deshalb nie ins Bild.

Die Schleife die Bugs züchtet

Der Fehlermodus den ich am häufigsten sehe ist die Kontextschleife. Du gibst der KI einen Bug. Sie gibt dir Code. Der Code scheitert weiter. Du klebst den Fehler zurück und bekommst eine “korrigierte” Version.

Fünf Runden später läuft etwas. Du hast außerdem einen Haufen Patches von denen jeder ein Symptom gelöst hat und das Modell hat die Form des Systems verloren mit dem es angefangen hat. Jetzt passt es Code an deine Fehlermeldung an statt an das Design.

Hier kommen die Schwachstellen rein. Auf dem Weg zu grünen Tests fällt eine Berechtigungsprüfung weg. Eingabevalidierung verschwindet weil sie im Weg war. Ein Schlüssel wird fest im Code hinterlegt weil die Umgebungsvariable lästig war. Niemand merkt es weil alle auf den Test schauen der endlich grün wird.

Wie du KI wirklich nutzt

Die Antwort ist nicht weniger KI. Die Antwort ist im Stuhl zu bleiben. Du bist der verantwortliche Entwickler und die KI ist die Person mit der du zusammenarbeitest.

Diagramm einer fünfstufigen Review-Schleife zwischen einer Person und einem KI-Agenten. Du fragst, die KI entwirft, du liest den Diff, du

Akzeptiere keinen Code den du nicht erklären kannst

Wenn die KI einen Block schreibt den du nicht verstehst dann halt an. Lass sie den Block Zeile für Zeile erklären. Wenn du immer noch nicht sagen kannst warum er sicher ist dann geh davon aus dass er es nicht ist. Diese eine Regel fängt fast den ganzen Schaden ab bevor er landet.

Widersprich dem Ergebnis

Sprich mit ihr wie mit einem Kollegen der etwas schlampig geschrieben hat.

  • “Du hast das CSRF-Token in diesem Refactor entfernt. Warum musste das weg?”
  • “Dieser Eingabe-Handler sieht anfällig für XSS aus. Schreib ihn mit Sanitizing neu.”
  • “Du nutzt hier dangerouslySetInnerHTML. Gibt es einen sicheren Weg?”

Das letzte lohnt sich laut zu sagen weil das Modell das Muster wiederholt das es zuletzt benutzt hat. Das Problem zu benennen reicht oft schon für eine bessere Antwort im nächsten Durchlauf.

Lies den Diff

Lies nicht nur die fertige Datei. Lies was sich geändert hat.

Hat es eine Berechtigungsprüfung gelöscht während es etwas anderes aufgeräumt hat? Hat es einen Validierungsaufruf entfernt weil der gerade Pfad ihn nicht brauchte? Modelle arbeiten in einem Kontextfenster und verlieren still Vorgaben die du vor zwei Stunden gesetzt hast. Der Diff ist der einzige Ort der dir zeigt was das Gebäude verlassen hat.

Halte die Prüfungen außerhalb des Chats

Einem Modell kann man einreden dass ein Test besteht. Deiner CI nicht. Authentifizierung und Autorisierung gehören in den Code und in die Pipeline wo der Agent sie erfüllen muss. Eingabevalidierung gehört an die Grenze wo die Daten ankommen statt in einen Prompt von dem du hoffst dass er sich erinnert.

Fazit

KI macht einen starken Entwickler viel schneller und einen nachlässigen Prozess schneller kaputt. Wenn deine Absicht ist jetzt etwas rauszuhauen und zu sehen was passiert dann hilft dir das Modell genau dabei. Wenn deine Absicht ist etwas zu liefern das hält dann hilft es dir auch dabei. Die Absicht ist in beiden Fällen deine.

Du fährst. Die KI liest die Karte und diskutiert mit dir über die Ausfahrt und diese Diskussion ist der nützliche Teil.