🍝 Vor dem Gen-KI-Zeitalter: Warum manche Entwickler erfolgreich waren und andere scheiterten
Viele Entwickler und Unternehmen gaben Projekte auf, schrieben sie mehrfach neu, erzielten nie Ergebnisse oder lebten einen Albtraum der Softwarewartung, bei dem jede Änderung Fehler verursachte.
Warum passierte das? Schauen Sie sich diese Szenarien an.
Weil sie entweder überentwickelten oder Spaghetti-Code schrieben.
🛠️ Vor dem Gen-KI-Zeitalter: Wie Entwickler wartbare Projekte erstellten
Sie befolgten gute Ingenieurspraktiken:
- Kleine Klassen nach SRP und SOLID im Allgemeinen
- Kleine Methoden nach Clean Code
- Lesbare Namen für Methoden, Variablen und Tabellenspalten
- Stark typisierte Variablen
- Kein wiederholter Code
- Zusammenfassungen und Kommentare, die wirklich Kontext liefern, statt Offensichtliches zu wiederholen
- Einfache Implementierungen aus einer KISS-Denkweise
- Ein "Tests ausführen"-Button direkt neben der Methode in der IDE, sodass Sie sofort wussten, ob etwas nach einer Änderung kaputtging
- Ubiquitäre Sprache aus DDD, die Terminologie konsistent über jede Ebene des Projekts und auch mit Geschäftsleuten hält
- Prägnante, klare Dokumentation, die tatsächlich erklärt wird
- E2E-Tests für die Benutzeroberfläche
- Unit-Tests für die Domäne
- Testcontainers für Repositories
- YAGNI
- Eine gut gestaltete Domänenschicht mit robusten Geschäftsregeln, die ordentlich erklärt, codiert und unit-getestet sind
- Datenzugriff getrennt mit dem Repository-Muster, was auch das Testen erleichtert
Die eigentliche Herausforderung in der Software ist das Ändern und Warten über einen langen Zeitraum. Wir tragen zu Systemen bei, die 20 Jahre oder länger leben können.
🤖 Jetzt ist das neue Spaghetti das Vibe-Coding
Setzen wir diese Erfahrung vor Agenten in Bezug zur KI-Agenten-Ära, Tools wie Codex und Claude.
Fabio Akita sagte etwas, das mir wirklich gefiel:
„KI wird zeigen, wer Sie sind.“
Was bedeutet das?
Wenn Ihre Mentalität immer war:
„Bring es einfach zum Laufen und mach weiter.“
Ohne sich um Codestruktur, Lesbarkeit, Datenbankdesign, Benutzererfahrung, Tests oder Wartbarkeit zu kümmern, wird KI das um das Zehnfache verstärken.
Aber wenn Sie wirklich an gute Praktiken glauben, wird KI ein Multiplikator in die richtige Richtung.
Sie:
- ✅ Schreiben Sie .md-Dateien mit Ihren Standards
- ✅ Lernen Sie Prompt-Engineering
- ✅ Stellen Sie Kontext bereit und verweisen Sie Agenten auf die Dokumentation
- ✅ Verwenden Sie den Planungsmodus
- ✅ Analysieren Sie den generierten Code, statt ihn blind zu akzeptieren
- ✅ Iterieren Sie Prompts weiter, um Code zu refaktorieren
- ✅ Behalten Sie Pull-Request-Review, Git-Flow und Testkultur bei
- ✅ Stellen Sie sicher, dass die KI Ihrer Codestruktur folgt, einschließlich Terminologie und Systemdesign
- ✅ Holen Sie QA-Profis zum Testen hinzu
Dann bleibt die Qualität gleich, nur viel schneller.
Ich habe dieses Projekt mit KI-Agenten gebaut und mir wurde klar: Alles, woran ich glaube, wurde darin angewendet.
💸 Warum stellen Unternehmen wieder Junior-Entwickler ein und scheitern mit KI?
Weil Systeme mit Spaghetti-Code klare Grenzen, korrekte Terminologie, Testabdeckung und gute Dokumentation vermissen lassen.
Er wird weiter versuchen und scheitern, bis Ihnen die Tokens ausgehen.
Letztes Jahr hatte ich ein Vorstellungsgespräch und der Tech Lead fragte mich:
„Wie fähig sind Sie, an einem sehr komplexen Projekt zu arbeiten, in dem eine einzelne Klasse 6.000 Zeilen oder mehr haben kann?“
Dann wollte er wissen, ob ich Strategien zum Sparen von Tokens habe, und er sagte mir, KI-Agenten seien lahm, weil sie nicht gut funktionieren.
Der erste Gedanke, der mir kam, war:
„6.000 Zeilen in einer einzigen Klasse? Dann folgen diese Leute nicht dem grundlegendsten Prinzip der Softwareentwicklung, der Einzelverantwortung. Sie folgen wahrscheinlich überhaupt nichts. Deshalb haben sie ein Token-Problem. Der Agent iteriert weiter, um Fehler zu beheben, aber es gibt von vornherein keine klare Logik in ihrem Code.“
⚙️ Wie ich mit KI-Agenten gute Ergebnisse erziele und meine guten Praktiken beibehalte
Ich schreibe einige .md-Dateien, zum Beispiel:
- 📄 CLAUDE.md oder copilot-instructions.md. Legt die allgemeinen technischen Anweisungen fest und teilt dem Agenten mit, welche anderen .md-Dateien er lesen muss.
- 💬 Communication.md. Anweisungen für die Kommunikation, z. B. keine zu komplizierten Nachrichten und stattdessen Aufzählungspunkte und prägnante Sprache verwenden.
- 🏗️ Architecture.md. Definiert die hochrangige Struktur, z. B. die Teststrategie mit Cypress.
- 🧩 SystemDesign.md. Definiert Entwurfsmuster und Prinzipien wie SRP, Clean Code und DRY.
- 🚫 Limits.md. Definiert Einschränkungen, z. B. niemals Azure-Ressourcen löschen oder auf master pushen.
- 📌 Stories/FeatureX.md. Eine Datei pro Funktion, in der ich alle Anforderungen und den Kontext festlege, um das Einfügen einer riesigen Textwand in den Prompt zu vermeiden.
Dann ist mein Arbeitsablauf:
- Ich verwende den Planungsmodus mit Kontext, dem richtigen Aufwand und Modell, um sicherzustellen, dass der generierte Code den Richtlinien folgt.
- Ich mache alles in einer lokalen Umgebung, auf einem Branch für diese Funktion oder Änderung, und es wird vor dem PR lokal viel getestet.
- Nachdem ich die Änderungen akzeptiert habe, führe ich die Tests aus, teste manuell, überprüfe und öffne den Pull Request.
Zusätzliche persönliche Tipps:
- 🎯 Verwenden Sie das beste Modell für die Aufgabe. Zum Beispiel Opus für komplexe Arbeiten und Sonnet für einfachere Arbeiten.
- 🧠 Lernen Sie Ihr bevorzugtes Tool. Meins ist Claude, also verwende ich /effort für kritische Aufgaben, /clear zwischen Aufgaben, /compact bei langen Sitzungen und den Planungsmodus, um vor dem Codieren zu besprechen.
- 🔁 Haben Sie ein Backup-Tool. Ich behalte auch Copilot.
- 📝 Für die Planung auf hoher Ebene verwenden Sie ChatGPT Pro. Es ist viel besser zum Schreiben von .md-Dateien für spec-driven development.
- 🧠 Verwenden Sie Kombinationen aus einigen Aspekten des Spec-Driven Development, zumindest einige .md-Dateien in dieser Strategie, mit einem starken Überprüfungsprozess.
🏁 Abschließendes Fazit
Ich stimme Fabio Akita zu. KI wird uns verstärken, je nachdem, wer wir sind.
Die Unternehmen, die mit KI erfolgreich sind, sind normalerweise diejenigen, die bereits Reife hatten und gute Praktiken sowie QA-Prozesse beibehalten haben.
Was wir tun, ist, Anweisungen intelligent für Maschinen zu organisieren. Es spielt keine Rolle, ob die Sprache Assembler oder Englisch ist.
Comments (0)
Leave a Comment
Be the first to comment!