KI in der Softwareentwicklung

Wie effektiv codet KI wirklich?

08.03.2024
Von 
André M. Braun ist Director Enterprise Sales bei GitLab.
GenAI kann Ideen in Programmcode umsetzen. Doch wie effektiv ist das. Wir geben Tipps dazu, worauf Sie achten sollten.
Generative KI kann bei der Erstellung von Programmcode helfen, doch der Produktivitätsgewinn ist schwer zu messen.
Generative KI kann bei der Erstellung von Programmcode helfen, doch der Produktivitätsgewinn ist schwer zu messen.
Foto: Deemerwha studio - shutterstock.com

KI-Assistenten gehören in vielen Unternehmen mittlerweile zum Berufsalltag. Sie übernehmen Aufgaben und tragen zu einer höheren Produktivität sowie einer schnelleren Ausführung bei. Dabei verändern generative, vortrainierte KI-Transformatoren die Arbeitsweise der Menschen.

Warum sollten also Computer nicht mit Hilfe von KI ihre eigene Software generieren? Tatsächlich helfen uns generative Modelle bereits dabei, unsere Ideen und unsere Sprache in ausführbaren Programmcode zu übersetzen.

Wie Produktivität messen?

Offen ist aber, wie sich die KI tatsächlich auf die reale und damit messbare Produktivität auswirkt. Schließlich ist Softwareentwicklung viel mehr als nur Codegenerierung. Und dies gilt es zu berücksichtigen, wenn man die Produktivität messen will.

Vereinfachte Produktivitätskennzahlen wie die Anzahl der pro Tag hinzugefügten Codezeilen oder die Akzeptanzrate von Code-Vorschlägen, die die KI gemacht hat, erfassen nicht die realen nachgelagerten Kosten. So hat GitClear einem Infoworld-Artikel zufolge beispielsweise "153 Millionen Zeilen geänderten Codes zwischen Januar 2020 und Dezember 2023 analysiert und erwartet nun, dass sich der Code Churn - also der Prozentsatz der Zeilen, die weniger als zwei Wochen nach ihrer Erstellung rückgängig gemacht oder aktualisiert werden - im Jahr 2024 verdoppeln wird."

Bewertungsgrundlagen

Die bloße Messung der Anzahl von Codezeilen birgt also die Gefahr, dass sich technische Fehler häufen und die Fähigkeiten der Entwickler verkümmern. Deshalb sollten folgende sechs Punkte beachtet werden:

1. Indirekte Auswirkungen schwer zu quantifizieren,
2. Fokus auf Geschäftsergebnisse legen,
3. Geschwindigkeit versus Qualität,
4. Implementierung und Teamdynamik,
5. Gleichgewicht finden,
6. Richtig messen.

KI-Codegenerierung ist nützlich für die Erstellung von Code-Frameworks, die Generierung von Tests, die Korrektur von Syntax und die Erstellung der Dokumentation.
KI-Codegenerierung ist nützlich für die Erstellung von Code-Frameworks, die Generierung von Tests, die Korrektur von Syntax und die Erstellung der Dokumentation.
Foto: mindscanner - shutterstock.com

1. Indirekte Auswirkungen schwer zu quantifizieren

KI-Entwicklungstools sollen Entwickler von mühsamer Arbeit entlasten. So sollen sie sich auf höherwertige Aufgaben wie Systemarchitektur und Design konzentrieren können.

Doch wie viel Zeit wird dadurch tatsächlich eingespart? Frisst die Überprüfung, das Testen und die Wartung von KI-generiertem Code diese Vorteile wieder auf?

Diese Produktivitätseffekte zweiter Ordnung lassen sich nur sehr schwer direkt auf die KI zurückführen. Und genau das kann ein falsches Bild von den Vorteilen für ein Unternehmen vermitteln. Deshalb sollten Sie sorgfältig auswählen, wer in Ihrer Organisation KI-Produktivitätswerkzeuge nutzen darf.

2. Fokus auf Geschäftsergebnisse legen

Was zählt, sind die tatsächlichen Geschäftsergebnisse, nicht die Metriken zur Entwicklerproduktivität. Durch die Überwachung von Durchlaufzeiten, Zykluszeiten, Produktionsfehlern und Benutzerzufriedenheit können Engpässe besser erkannt werden.

Probleme durch KI

Wenn KI-Tools schneller nutzbaren Code generieren, dann aber die Qualitätssicherungsteams nicht mit den Änderungen Schritt halten, kann die Qualität des Software-Endprodukts sinken und das wiederum kann zu Problemen bei der Kundenzufriedenheit führen. "Mehr zu liefern" klingt gut, bis es zu Problemen führt, deren Lösung noch mehr Zeit, Geld und Mühe kostet.

Allerdings ist das Messen von Geschäftsergebnissen ebenfalls schwierig. Zumal diese Messungen oft verzögerte Indikatoren für Probleme sind. Wobei sicherlich die Messung von Qualitätsmängeln, Sicherheitsproblemen und der Anwendungsleistung hilft, die Auswirkungen auf das Unternehmen deutlich früher zu erkennen.

3. Geschwindigkeit versus Qualität

Ihre Teams müssen die richtige Balance zwischen Schnelligkeit und dem Schreiben von wartungsfreundlichem, gut getestetem Code finden, der echte Geschäftsprobleme löst. Die Qualität darf nicht geopfert werden, nur um die Produktivitätskennzahlen zu maximieren.

Mehr Code bedeutet nicht notwendigerweise höhere Qualität oder Produktivität. Mehr Code bedeutet mehr Prüf-, Test- und Wartungsaufwand, was die Bereitstellung verlangsamen kann.

Engstirnige KI

Beispielsweise ist KI-generierter Code auf den Bereich beschränkt, an dem ein Entwickler gerade arbeitet. Gegenwärtige KI-Tools sind nicht in der Lage, die breitere Architektur der Anwendung zu evaluieren.

Beim KI-Einsatz besteht die Gefahr, dass es zu Wiederholungen und einer Aufblähung des Codes kommt.
Beim KI-Einsatz besteht die Gefahr, dass es zu Wiederholungen und einer Aufblähung des Codes kommt.
Foto: BEST-BACKGROUNDS - shutterstock.com

Selbst wenn die Qualität des generierten Codes gut ist, kann dies zu Wiederholungen und einer Aufblähung des Codes führen, da der Code in den entsprechenden Bereich eingefügt wird, anstatt größere systematische Änderungen vorzunehmen. Dies ist bei objektorientierten Sprachen, die DRY-Prinzipien (don't-repeat-yourself) verwenden, schwierig.

Akzeptanz und Produktivität

Die Akzeptanzrate kann besonders irreführend sein, was umso bedauerlicher ist, als sie zunehmend zur wichtigsten Methode zur Messung des Erfolgs von KI-Produktivitätswerkzeugen wird. Entwickler können einen von der KI generierten Vorschlag zunächst akzeptieren, müssen ihn dann aber stark überarbeiten oder umschreiben.

Die anfängliche Akzeptanzrate sagt daher nichts darüber aus, ob der Vorschlag tatsächlich nützlich war. Die Akzeptanzrate ist im Grunde nur ein Indikator für die Qualität des KI-Assistenten und wird fälschlicherweise als Maß für die Produktivität verwendet. Dies ist besonders irreführend, wenn sie von allen Anbietern unterschiedlich gemessen und auf dieser Basis vermarktet wird.

4. Implementierung und Teamdynamik

Die tatsächliche Produktivitätssteigerung hängt davon ab, wie die KI-Werkzeuge eingesetzt werden und wie dynamisch die Entwickler arbeiten. Wenn einige Entwickler der Technologie misstrauen oder bei der Überprüfung nachlässig werden, weil sie erwarten, dass die KI Fehler findet, kann die Qualität leiden.

Darüber hinaus erfordert die Einführung von KI-Werkzeugen häufig Änderungen an Prozessen wie Code-Reviews, Tests und Dokumentation. Die Produktivität kann vorübergehend sinken, wenn sich die Teams an die neuen Arbeitsabläufe gewöhnen, bevor sich die Vorteile bemerkbar machen. Wenn Ihr Unternehmen KI-Tools einführt, geben Sie den Teams die Zeit, die sie brauchen, um herauszufinden, wie die Tools funktionieren und wie sie in ihre Arbeitsabläufe passen.

5. Gleichgewicht finden

Um das richtige Gleichgewicht zu finden, ist es wichtig, die Aufgaben sehr genau und konsistent zu definieren. Ferner ist das Team im Umgang mit KI für diese Anwendungsfälle zu schulen.

Die Messung der Effektivität von KI in der Softwareentwicklung ist eine Herausforderung.
Die Messung der Effektivität von KI in der Softwareentwicklung ist eine Herausforderung.
Foto: Sashkin - shutterstock.com

KI-Codegenerierung ist nützlich für die Erstellung von Code-Frameworks, die Generierung von Tests, die Korrektur von Syntax und die Erstellung von Dokumentation. Wenn Teams hier ansetzen, werden sie bessere Ergebnisse erzielen und lernen, das Werkzeug effektiver zu nutzen.

Denken Sie daran, dass Sie die Auswirkungen von KI nicht innerhalb einer Woche messen können. Sie müssen den Teams Zeit geben, ihren Rhythmus mit den KI-Assistenten zu finden.

KI und DevSecOPs

Es gibt einige Herausforderungen bei der Messung der Effektivität von KI und auch potenzielle Risiken. Dennoch wird KI eine wichtige Rolle bei der Weiterentwicklung von DevSecOps-Plattformen spielen. Die Messung der Produktivität anhand von Akzeptanzraten oder generierten Codezeilen ist ein Rückschritt gegenüber früheren Ansätzen. Stattdessen ist es wichtig, die Daten ganzheitlich zu betrachten, um ein vollständigeres Bild der Auswirkungen von KI zu erhalten.

6. Richtig messen

Die Messung der Produktivitätseffekte von KI-Entwicklungswerkzeugen erfordert einen differenzierten Ansatz. Er sollte sich auf die Endergebnisse und nicht auf isolierte Produktivitätskennzahlen konzentrieren. Aus diesen Gründen gehen einfache quantitative Metriken oft an den Feinheiten der Produktivitätsmessung mit KI-Entwicklungswerkzeugen vorbei.

Der Schlüssel liegt in der Kombination quantitativer Daten aus dem gesamten Softwareentwicklungszyklus (SDLC) mit qualitativem Feedback von Entwicklern darüber, wie sich KI tatsächlich auf ihre täglichen Erfahrungen und ihre langfristige Entwicklung auswirkt. Nur so kann man sich ein genaues Bild über die Produktivitätsgewinne machen, die diese Werkzeuge bieten können.

KI ergänzt die Einführung von DevSecOps, aber ersetzt sie nicht. Unternehmen, die sich auf den Aufbau der richtigen Struktur im Softwareentwicklungszyklus konzentrieren, werden am ehesten von den potenziellen Produktivitätsgewinnen in der Entwicklung profitieren.

Richtige Metrik verwenden

Welche Metrik sollte nun verwendet werden? Wertstromanalysen untersuchen den gesamten Workflow von der Idee bis zur Produktion und zeigen auf, wo Engpässe entstehen. Dabei ist die Wertstromanalyse keine einmalige Messung, sondern eine kontinuierliche Überwachung von Kennzahlen wie Durchlaufzeit, Zykluszeit, Lieferhäufigkeit und Produktionsfehlern. Der Schwerpunkt liegt auf den Geschäftsergebnissen und nicht auf den Aktivitäten der Entwickler.

Kurz gesagt: Wenn Teams die Codequalität, die Zusammenarbeit, die nachgelagerten Kosten und die Erfahrungen der Entwickler ganzheitlich betrachten, können sie diese Technologie so einsetzen, dass sie die menschlichen Fähigkeiten langfristig ergänzt (und nicht ersetzt).