KI-gestützte Softwareentwicklung: Zurück zu den Wurzeln
Der Fortschritt ist rasant, der Wandel grundlegend: KI-gestützte Softwareentwicklung und autonome Systeme erleichtern die Erstellung von Code deutlich, der Zeitaufwand dafür ist zudem signifikant reduziert. Dies bringt zahlreiche Vorteile mit sich und schafft wichtige Weiterentwicklungen. Zugleich ergibt sich jedoch daraus auch – paradoxerweise – die Notwendigkeit, auf etablierte, durchaus ältere Praktiken bei der Softwareentwicklung zu setzen. Es gilt, die Grundlagen des Entwicklerhandwerks unter neuen Gegebenheiten zu überdenken und sich auf bewährte Methoden zurückzubesinnen. Nur so lässt sich das notwendige Gegengewicht zu der Geschwindigkeit schaffen, mit der KI-Tools Komplexität erzeugen können – die zwingend beherrschbar bleiben muss. Auch wird so eine Voraussetzung geschaffen, damit Entwickler robuste Systeme in Produktionsreife entwerfen können, die sicher und geschützt sind und sich weiterentwickeln lassen. Da immer mehr Code generiert wird, ist es zudem wichtig, dass Entwickler die von ihnen geschaffenen Systeme auch weiterhin wirklich verstehen.
Diese Erkenntnis ist ein Schwerpunkt der 34. Ausgabe des Technology Radar Reports von Thoughtworks. Der halbjährlich erscheinende Bericht bewertet aktuelle Trends der Softwareentwicklung auf Basis unserer konkreten Projekterfahrung mit Kund:innen. Während der Arbeit an der aktuellen Ausgabe des Reports haben wir immer wieder viele bereits ältere und etablierte Techniken mit ihren Vorzügen diskutiert. Beispiele reichen von Pair Programming bis zur Zero-Trust-Architektur, von Mutation Testing bis zu den DORA-Metriken. Auch wurde deutlich, dass den Prinzipien der Software-Handwerkskunst wieder höchste Priorität eingeräumt werden muss: sauberem Code, durchdachtem Design, Testbarkeit und Barrierefreiheit. Eine weitere Erkenntnis, die wir gewonnen haben: Die Kommandozeile erlebt dank des Aufstiegs von Agenten eine Art Renaissance. Nachdem das Terminal zugunsten von Benutzerfreundlichkeit und Zugänglichkeit in den letzten Jahren in den Hintergrund geraten ist, bringen agentische Tools Entwickler:innen nun zurück zum Terminal als primäre Schnittstelle.
Bewährter Standard für die Sicherheit: Zero-Trust
Was bedeutet es konkret, bei der Softwareentwicklung auf bewährte Prinzipien zu setzen? Im Bereich der Sicherheit ist ein Beispiel die Zero-Trust-Architektur (ZTA). Ihre Nutzung ist ausdrücklich zu empfehlen. Besonders im aktuellen Zeitalter der KI-Agenten ist es eine Herausforderung, bei deren Entwicklung die Sicherheitsrisiken zu bewältigen, die durch ihren umfassenden Bedarf nach Zugriffsrechten entstehen. Grundsätze wie „Never trust, always verify“ sowie identitäts- und berechtigungsbasierte Sicherheit und das Least-Privilege-Prinzip sollten als Grundlage für jeden Agenten-Einsatz betrachtet werden. Werden Standards wie SPIFFE (Secure Production Identity Framework for Everyone) auf Agenten angewendet, wird eine solide Identitätsgrundlage geschaffen und eine fein abgestufte Authentifizierung in dynamischen Umgebungen ermöglicht.
Die kontinuierliche Überwachung und Überprüfung des Agentenverhaltens ist ebenfalls entscheidend für ein proaktives Bedrohungsmanagement. Über den Einsatz von Agenten hinaus sind Praktiken wie die User Impersonation zu empfehlen, etwa im Identitätsauthentifizierungsprotoll OIDC auf der Google-Cloud-Plattform. Ein Beispiel sind CI/CD-Pipelines. Hierbei werden langlebige statische Schlüssel durch temporäre Tokens ersetzt, die erst nach der Identitätsüberprüfung ausgestellt werden. De facto ist und bleibt ZTA ein sinnvoller Standard, der Sicherheit nicht nur für Agenten, sondern auch andere Systeme schafft. Die Anwendung sollte als gesetzt betrachtet werden.
Etablierte Messung der Performance mit DORA-Metriken
Ein weiteres Beispiel für eine etablierte Methode, deren Nutzung auch wir empfehlen, ist der Einsatz von DORA-Metriken beziehungsweise ihren mittlerweile fünf Kennzahlen: der Bereitstellungshäufigkeit, der Einführungsdauer von Änderungen, der Änderungsfehlerrate, der Wiederherstellungszeit von Services und der Zuverlässigkeit. Mittlerweile weit verbreitet, haben sie sich als aussagekräftige Indikatoren für die Performance von DevOps- und Engineering-Teams erwiesen.
Im Zeitalter der KI-gestützten Softwareentwicklung betrachten wir die DORA-Kennzahlen als wichtiger denn je. Wird Produktivität nur über die von KI generierten Codezeilen gemessen, lässt sich keine valide Schlussfolgerung daraus ziehen. Vielmehr spiegeln sich wirkliche Verbesserungen im Lieferfluss und in der Stabilität wider. Wenn sich die Vorlaufzeiten für Änderungen nicht verkürzen und die Bereitstellungshäufigkeit nicht steigt, führt eine schnellere Codegenerierung nicht zu besseren Ergebnissen. Umgekehrt sollte eine Verschlechterung der Stabilitätskennzahlen – insbesondere der Zuverlässigkeit – ein Warnhinweis für mögliche „blind spots“, technische Schwächen und die Risiken einer unkontrollierten KI-gestützten Entwicklung sein.
Zu empfehlen ist, DORA-Metriken zur Reflexion und zum Lernen im Team zu nutzen. Hier ersetzen sie sinnvoll beispielsweise komplexe Dashboards oder detaillierte Tracking-Tools. Einfache Mechanismen wie Check-ins während Retrospektiven sind oftmals gut geeignet, um Fähigkeiten zu verbessern.
Mutation Testing – Fokus auf tatsächlich verifizierten Code
Ein weiteres bewährtes Konzept, das es bereits seit Langem gibt und das derzeit eine Art Renaissance erlebt, ist Mutation Testing. Solche Tests sind nach wie vor der zuverlässigste Indikator, um zu bewerten, inwieweit Fehler in einer Testsuite aufgedeckt werden. Indem gezielt Mutationen in Quellcode eingebaut werden, lässt sich prüfen, ob Tests fehlschlagen, wenn das Verhalten nicht mehr korrekt ist. Bleibt eine Mutation unentdeckt, deckt dies eine Lücke in der Validierung auf und nicht nur eine unzureichende Abdeckung. Diese Unterscheidung ist heute besonders wichtig, weil KI-gestützte Entwicklung und hohe Testabdeckung oft darüber hinwegtäuschen können, dass Tests nicht logisch sind oder Code nicht sinnvoll geprüft wurde.
Während KI-generierte Tests heutzutage weit verbreitet sind, fungiert Mutation Testing dabei als zusätzliche Sicherheitsstufe. So werden „ewig grüne“ Tests aufgespürt – also solche, die unabhängig von logischen Änderungen aufgrund fehlender Assertions oder entkoppelter Mocks immer bestehen. Hierfür stehen Tools wie Stryker, Pitest oder cargo-mutants zur Verfügung, deren Fokus auf der Menge des tatsächlich verifizierten Codes liegt, insbesondere in der Kerndomänenlogik. Ziel sollte immer sein, dass eine bestandene Testsuite funktionale Korrektheit belegt – und nicht nur ein Bericht darüber ist, welche Zeilen ausgeführt wurden. Somit ordnen wir Mutation Testing durchaus in die Kategorie „Trial“ ein – wichtig ist jedoch zu verstehen, wie man diese Methode aufbaut und dass man sie im Rahmen eines Projekts testet, dessen Risiken kontrollierbar sind.
Ausblick – und Rückblick zu Bewährtem
KI-gestützte Softwareentwicklung stellt eine radikale Transformation der Entwicklungspraktiken dar. Dabei zeigt sich jedoch mittlerweile: Wir dürfen die Grundsätze und bewährten Methoden und Tools guter Softwareentwicklung keinesfalls vernachlässigen. Bei der Handwerkskunst gilt, dass Geschwindigkeit ohne Disziplin die Kosten in die Höhe treibt. Dies sollte stets bedacht werden, da autonome Systeme eine schnelle Entwicklung einfacher denn je machen. Zugleich ist es schwieriger denn je zu erkennen, was tatsächlich geschaffen wurde.