In Zeiten, in denen KI-gestützte Entwicklungstools wie Pilze aus dem Boden schießen, liegt es nahe, auch komplexe Frontend-Applikationen und Consumer Apps mit ihrer Hilfe zu erstellen. Doch was passiert, wenn man sich blind auf die künstliche Intelligenz verlässt? Ich durfte kürzlich ein Code Review der öffentlich zugänglichen Quellcodes einer Angular-Applikation und der zugehörigen Flutter-App begleiten, die fast ausschließlich mit KI-Unterstützung entwickelt wurde. Ziel der Analyse war es, die Wartbarkeit, Qualität und Risiken der bestehenden Codebasis zu bewerten. Das Ergebnis fiel ernüchternd aus.
Beim ersten Blick in das Projektverzeichnis fiel sofort auf: Die KI hatte fleißig produziert. Komponenten, Services, Module – alles war da. Doch die Struktur wirkte chaotisch. Die KI hatte offenbar keine klare Projektarchitektur verfolgt, sondern Code-Snippets generiert, die funktionierten, aber nicht zusammenpassten. Die Applikation nutzte aktuelle Technologien wie Angular 19, Tailwind CSS, NgRx und TypeScript – ein solides Fundament für skalierbare Frontend-Projekte. Einzelne Module wie die Keycloak-Anbindung waren vorhanden, doch die Gesamtstruktur folgt keinem erkennbaren Muster:
Das Review offenbarte eine Reihe qualitativer Defizite, die man sonst eher bei unerfahrenen Entwickler*innen sieht:
Wichtige Sicherheitsaspekte wurden ignoriert:
Beispiel:
Eine App ist nur so gut, wie sie für die User funktioniert. Und zwar für ALLE User. Wir entwickeln möglichst barrierefreie Apps und beraten Sie gerne auf Ihrem Weg zur grenzenlos guten User Experience.
Die Anwendung verletzt grundlegende Accessibility-Richtlinien:
Accessibility ist kein Nice-to-have, sondern gesetzlich vorgeschrieben. Die Missachtung kann rechtliche Konsequenzen nach sich ziehen.
Die Anwendung wurde ohne jegliche Teststrategie entwickelt:
Ohne Tests und Fehlerhandling ist die Anwendung instabil und schwer wartbar. Fehler bleiben unentdeckt, Nutzererfahrung leidet.
In Folge #16 unseres Podcasts Continuous Inspiration sprechen Verena und Matthias darüber, warum Testing so ein unverzichtbarer Teil in der Softwareentwicklung ist. Jetzt reinhören!
Die Dokumentation ist praktisch nicht existent:
Dokumentation ist essenziell für Teamarbeit, Wartung und Onboarding. Ohne sie wird jedes Update zur Detektivarbeit. Hinzu kommt: Angular 19 wird nur bis Mai 2026 unterstützt, die aktuelle Version ist bereits Angular 20. Ein Upgrade ist dringend zu empfehlen.
Um fair zu bleiben: Es gab auch Lichtblicke. Die KI hatte moderne Angular-Features wie Reactive Forms, Observables und sogar RxJS-Operators korrekt eingesetzt. Auch die Grundstruktur der Komponenten war solide – Inputs, Outputs, Lifecycle Hooks wurden korrekt verwendet. Doch diese technischen „Erfolge“ wirkten wie isolierte Inseln in einem Meer aus inkonsistenter Architektur.
Die App basierte auf einem aktuellen Flutter-Stack und ließ sich grundsätzlich ausführen. Sie verfolgte ein White-Label-Konzept, um verschiedene Varianten der App für unterschiedliche Anwendergruppen bereitzustellen. Als Architekturansatz wurde Bloc (Business Logic Component) verwendet – ein etabliertes Pattern zur Trennung von Präsentations- und Geschäftslogik. Bloc wurde für State-Management und Strukturierung eingesetzt, aber die Umsetzung war inkonsistent. Der GraphQL-Client wurde beispielsweise tief in andere Schichten gereicht, statt klar im „Data Provider“ isoliert zu sein. Obwohl die Architektur auf modernen Prinzipien basierte, fehlte es an Stringenz und Klarheit, was die Komplexität unnötig erhöhte.
Trotz eines überschaubaren Funktionsumfangs war die Codebasis überraschend umfangreich. Die Ursachen lagen auf der Hand:
Die Codebasis wirkte überladen und unstrukturiert. Ohne klare Guidelines war sie schwer zugänglich – insbesondere für neue Entwickler*innen.
Positiv anzumerken ist, dass in der App eine Grundsicherung vorhanden war. Personenbezogene Daten wurden über `flutter_secure_storage` verschlüsselt gespeichert, API-Keys oder Secrets waren im Quellcode nicht auffindbar und die Authentifizierung erfolgte über eine Keycloak-Instanz.
Das Fehlen jeglicher Tests stellte ein gravierendes Risiko dar. Zukünftige Änderungen können nicht zuverlässig geprüft werden, was die Wartung erschwert und die Stabilität gefährdet.
Dokumentation ist essenziell für nachhaltige Softwareentwicklung. Das Fehlen jeglicher Dokumentation stellt ein Risiko für die zukünftige Verwendung und Weiterentwicklung dar.
KI-Tools können repetitive Aufgaben beschleunigen, Boilerplate-Code generieren und sogar komplexe Logik vorschlagen. Aber sie verstehen keine Projektkonventionen, keine Teamstandards und keine langfristige Wartbarkeit. Sie optimieren für „funktioniert jetzt“, nicht für „wartbar morgen“.
Eine gute Frontend-Applikation oder App braucht:
All das kann eine KI nur leisten, wenn sie mit klaren Vorgaben und menschlicher Kontrolle arbeitet.
Das Code Review war ein wertvoller Reminder: KI kann ein mächtiger Helfer sein – aber kein Ersatz für erfahrene Entwickler*innen. Wer mit KI entwickelt, muss umso mehr reviewen, refaktorisieren und dokumentieren. KI kann repetitive Aufgaben übernehmen, Boilerplate generieren und sogar komplexe Logik vorschlagen. Aber ohne klare Vorgaben, menschliche Kontrolle und Review entsteht kein qualitativ hochwertiges Produkt.
Mein Rat: Nutze KI, um schneller zu starten. Aber verlasse dich nicht darauf, dass sie dein Projekt auch sauber zu Ende bringt. Für die nachhaltige Softwareentwicklung nutze KI vielmehr als Co-Pilot, aber setze dich selbst ans Steuer. Architektur, Sicherheit, Accessibility und Tests sind keine Nebensache, sondern die Basis für nachhaltige Softwareentwicklung.