LLMs im Praxistest: Neuer Praktikant oder echter Kollege?

Der Einsatz von LLMs in der Softwareentwicklung wird viel diskutiert. Wir haben sie in einem Praxistest als Codingassistenz für erfahrene Entwickler untersucht.


LLMs im Praxistest: Neuer Praktikant oder echter Kollege?

Generative Künstliche Intelligenz (KI) hat erstaunliche Fähigkeiten auf dem Gebiet der Textgenerierung unter Beweis gestellt und ist in der Lage, in kurzer Zeit große Mengen unterschiedlichster Texte zu generieren. Diesem Prozess liegt ein einfaches System zugrunde. Das Large Language Model (LLM) berechnet, welcher Satz- oder Wortteil (sogenannte Tokens) mit der höchsten Wahrscheinlichkeit zum bestehenden Text passt, fügt diesen in den Text ein und berechnet den nächsten. Dieses statistisch basierte Verfahren eignet sich vor allem dann, wenn die Anzahl der möglichen Satz- und Wortkombinationen begrenzt ist. Theoretisch ist die Syntax von Programmiersprachen dafür sehr gut geeignet, da sie streng formal aufgebaut ist und wenig Spielraum für Abweichungen lässt. Doch wie effektiv ist der Einsatz von Codegenerierung im Alltag eines Entwicklers? Schließlich ist damit nicht nur das reine Programmieren gemeint, sondern auch das Verstehen der fachlichen Anforderungen und die Analyse der vorhandenen Geschäftslogik, oft über mehrere Softwarekomponenten hinweg.
 

ChatGPT-4o als Entwickler-Assistent im Projektalltag

Zur Beantwortung dieser Fragen haben wir einen Feldversuch durchgeführt. Das LLM ChatGPT-4o soll Entwickler im direkten Projekteinsatz bei der Bearbeitung von Tickets unterstützen. Dabei dürfen aus Compliance Gründen keine Projektinterna in das LLM selbst einfließen und der Code muss maskiert werden. Das Testteam für die KI-Softwareentwicklung bestand aus insgesamt sechs Entwicklern mit insgesamt ca. 60 Jahren Berufserfahrung.

Zur Evaluation wurde nach jeder Sitzung ein Fragebogen ausgefüllt. Dieser enthielt die folgenden Fragen:

  1. Was war das Thema der Session? 
  2. Wie sehr hat dir das LLM geholfen? (Von 1 bis 5)
  3. Wie hat dir das LLM geholfen? 

Eine Session ist hier bewusst lose definiert als eine „Unterhaltung“ mit dem LLM zu einem bestimmten Thema. Dabei kann es sich um eine kurze Frage mit einer kurzen Antwort handeln, aber auch um einen längeren Wechsel zwischen dem Large Language Model und der Entwicklungsumgebung zur Bearbeitung einer Aufgabe.
 

Potenziale und Grenzen beim Programmieren mit LLMs

Für eine erste Einschätzung, wie hilfreich die Antworten des LLM für unsere Entwickler waren, haben wir den Durchschnitt der Bewertungen der einzelnen Sitzungen berechnet. Der Durchschnitt der Bewertungen lag bei 3,6 von 5 Sternen – ein solides Ergebnis, aber auch ein Zeichen dafür, dass nicht alle Antworten der Generativen KI überzeugend waren.


In Abbildung 1 ist eine Aufschlüsselung der Ergebnisse der LLM-Antworten nach der Art der Unterstützung. Daraus geht hervor, dass in den meisten Fällen (33 %) neue Informationen durch das LLM in die Arbeit unserer Entwickler eingeflossen sind. Den zweiten Platz teilen sich mit 22 % konkrete Lösungen, z.B. in Form von Code, die das LLM geliefert hat, und der Erhalt neuer Lösungsansätze. In weiteren 21% der Fälle konnte das LLM jedoch überhaupt nicht helfen.
 


Bei der Betrachtung der in den LLM-Sessions diskutierten Themen wird deutlich, dass Large Language Models vor allem für die Recherche und die Codegenerierung eingesetzt wurde. Andere Themen, wie z.B. Textverarbeitung für die Kommunikation oder konkretes Debugging von Code, waren Gegenstand von Untersuchungen, wurden aber nicht weiterverfolgt.

Im Folgenden gehen wir auf die beiden Hauptthemen Recherche und Codegenerierung näher ein.
 

Recherche mit LLMs – Ist KI das neue „Googlen“?

Mit 3,6 von 5 Sternen wurde die Nutzung der Large Language Models (LLMs) für Recherchezwecke vergleichbar bewertet wie das Gesamtergebnis des Projekts. Ein Blick auf die Ergebnisse zeigt jedoch einen klaren Trend: In ca. 70 % der Fälle war der Output des LLM hilfreich und lieferte neue Informationen (siehe Abbildung 3). Nur 3,1% der Anfragen blieben ohne verwertbares Ergebnis. Anhand dieser Ergebnisse wird deutlich, dass der Einsatz von LLMs zu Recherchezwecken ein vielversprechender Use Case ist.


Insgesamt fiel die Bewertung der Antworten weitestgehend positiv aus: Die meisten Entwickler vergaben 4 oder 5 Punkte, vereinzelt gab es aber auch die niedrigste Bewertung mit einem Punkt (vgl. Abbildung 4).
 


Ein Vergleich mit klassischen Suchmaschinen liegt bei der Nutzung eines LLMs zur Recherche nahe. Beide Tools dienen der Informationsbeschaffung. Während jedoch beim „klassichen Googeln“ die Useability durch Werbeeinblendungen und teils irrelevante Suchergebnisse gemindert wird, überzeugen die LLM-Weboberflächen bislang durch Werbefreiheit und die Generierung präziser Antworten.

Grenzen von Large Language Models bei der Recherche

Ein Schwachpunkt von LLMs liegt in der Verfügbarkeit der Trainingsdaten. Sind zu einem Thema keine spezifishen Daten vorhanden, kann es zu sogenannten Halluzination kommen – das Modell generiert plausible, aber falsche Informationen. Insbesondere bei weniger bekannten Themen tritt dieses Problem auf.

Besonders kritisch sind falsche Antworten in der Recherche. Während sich Programmierfehler schnell durch nicht ausführbaren Code bemerkbar machen, können falsche theoretische Annahmen unbemerkt bleiben und langfristige Folgen haben. Zur Vermeidung von Fehlschlüssen ist daher eine menschliche Kontrollinstanz mit Fachkenntnissen zwingend erforderlich.

Codegenerierung mit KI: Erfahrungen aus Frontend-, Monitoring- und Backend-Projekten

Die Codegenerierung mit LLMs schnitt mit 3.5 von 5 Sternen etwas schlechter ab als bei der Verwendung für die Recherche. Auffällig ist, dass in 24 % der Sitzungen das Large Language Model keine brauchbaren Ergebnisse lieferte (siehe Abbildung 5). Dennoch konnte in den meisten Fällen  nutzbarer Code generiert oder ein neuer Lösungsansatz gefunden werden.


Bei genauerer Betrachtung der Bewertungen fällt weiterhin auf, dass die meisten Entwickler die Sessions mit 4 oder 5 Punkten bewertet haben. Allerdings war der Anteil der 1-Punkt-Bewertungen höher als bei der Auswertung der Recherche.
 


Im Rahmen der LLM-Codegenerierung ist aufgefallen, dass die Ergebnisse je nach Einsatzbereich variieren.

Insbesondere im Bereich der Frontend-Entwicklung konnten mit dem LLM erfolgreich und fehlerfrei vor allem kleine, gekapselte Codefragmente generiert werden. Moderne Frontend-Frameworks wie React.js oder Vue.js setzen User Interfaces aus Komponenten zusammen. Diese Komponenten sind logisch von einander getrennte Codeeinheiten und eignen sich daher hervorragend für die Generierung durch LLMs. In unserer Arbeit mit ChatGPT ist es gelungen, den Code einer Frontendkomponente in Vue vollständig durch das Einfügen eines Konzeptbildes dieser Komponente durch den LLM zu generieren.  Mit Hilfe weniger weiterer Prompts ließ sich dieser Code anpassen und direkt in die bestehende Codebasis integrieren.

Auch für das Monitoring ließ sich ein sinnvoller Anwendungsfall zur Codegenerierung mit Large Language Models finden. Analysetools wie Splunk bringen oft eine eigene Querylanguage mit, um komplexere Auswertungen schreiben zu können. Diese Sprachen bieten viele Möglichkeiten, sind aber auch mit einem gewissen Lern- und Einarbeitungsaufwand verbunden. An dieser Stelle konnten wir durch den Einsatz von LLMs einen leichteren Einstieg für Entwickler schaffen, die bisher wenig mit dem Tool gearbeitetet haben, und auch Entwickler, die mit dem Tool vertraut sind, bei der Generierung komplexerer Queries unterstützen.

Im Gegensatz dazu war die Nutzung des Large Language Models für die Softwareentwicklung im Backendbereich weniger erfolgreich. Innerhalb der Backend-Entwicklung ist das Verständnis komplexerer Logikketten erforderlich. Diese erstrecken sich oft über mehrere Klassen oder auch Anwendungen hinweg und erfordern Wissen über den projektspezifischen Kontext. Diesen Gesamtkontext zu erfassen, ist für das von uns verwendete LLM derzeit schwierig, da fachliche und projektbezogene Informationen fehlen. Das bedeutet, dass einfachere Methoden durchaus durch das LLM generiert werden können, die Kernarbeit der Backendentwicklung aber aktuell wenig Unterstützung durch den LLM-Einsatz erfährt.
 

Langfristiges Potenzial für den Einsatz von LLMs in der Softwareentwicklung

Unser Test zeigt, dass LLMs wie ChatGPT-4 eine wertvolle Unterstützung in der Softwareentwicklung sein können, wenn ihre Einsatzgebiete strategisch ausgewählt werden. Insbesondere in der Recherche und in der Frontend-Entwicklung spielen sie ihre Stärken aus. Sie ermöglichen eine schnelle Informationsbeschaffung und unterstützen bei der Codegenerierung für klar abgegrenzte Aufgaben. Beispiele hierfür sind Komponenten in modernen Frameworks wie React.js oder Vue.js.

Auch im Bereich des Monitorings konnten die LLMs überzeugen: Die Generierung von komplexen Abfragen für Tools wie Splunk wurde vereinfacht, wovon sowohl Einsteiger als auch erfahrene Anwender profitieren. Diese Ergebnisse machen LLMs zu einem vielversprechenden Werkzeug für spezifische und klar definierte Aufgaben.

Schwächen werden jedoch in der Backend-Entwicklung und bei Themen sichtbar, die ein tiefes Verständnis komplexer Geschäftslogik erfordern. Hier fehlt es den LLMs oft an projektspezifischen Informationen und einem umfassenden Kontext, was ihre Einsatzmöglichkeiten einschränkt. Zudem ist beim Einsatz Vorsicht geboten, da insbesondere bei unbekannten Themen so genannte Halluzinationen - plausibel klingende, aber falsche Antworten - auftreten können. Eine menschliche Kontrollinstanz bleibt daher unentbehrlich.

Die langfristigen Perspektiven für LLMs sind dennoch vielversprechend. Durch die Integration auf firmeninternen Servern könnten projektspezifische Daten sicher genutzt und die Effizienz weiter gesteigert werden. Als Assistenzwerkzeug mit gezielten Einsatzgebieten haben LLMs das Potenzial, die Produktivität in der Softwareentwicklung deutlich zu steigern.

Ihr Weg zur KI-gestützten Entwicklung - wir helfen!

Sie möchten LLMs in Ihrem Entwicklungsteam testen? Unsere Experten beraten Sie gerne bei der strategischen Integration von KI in Ihre Entwicklungsprozesse. Kontaktieren Sie uns für ein unverbindliches Gespräch.

Weitere Themen für Sie