Magazine

24. Jan 2024

Coding Cronicles – Teil 2

Willkommen zum zweiten Teil unserer Serie! Ganz gleich, ob neue Funktionen entwickelt oder Fehler behoben werden sollen, es gibt inzwischen evidenzbasierte Forschungsergebnisse darüber, wie Entwickler:innen Erfahrungen mit den Tools in allen Phasen des Softwareentwicklungszyklus optimieren können.
Software Engineer

Author

Marcel Wessely

Ein Mann im grünen Pullover sitzt mit dem Rücken zum Betrachter gewandt vor einem Bildschirm, auf dem Code zu sehen ist.
Die fortschreitende Entwicklung von Large Language Models (LLMs) wie ChatGPT und GitHub Copilot prägt das Software Engineering nachhaltig. Diese Modelle beherrschen nicht nur das Zusammenfassen von Texten und das Verfassen von E-Mails, sondern sind auch in der Lage, Quellcode zu generieren.

Bei Accso haben wir diese Technologien in verschiedenen Kundenprojekten getestet und präsentieren in dieser Blogserie eine Potenzialanalyse für den Einsatz von LLM-basierten Werkzeugen in der Softwareentwicklung. Mit dem Einsatz von ChatGPT konnten wir nicht nur die Effizienz der Softwareentwicklung steigern, sondern auch in den Bereichen Architektur und Requirements konkrete Verbesserungen erzielen. In diesem Beitrag teilen wir unsere Best Practices.

Auch mit GitHub Copilot haben wir uns intensiv auseinandergesetzt. Da dieses Tool jedoch nur für Implementierungsaufgaben genutzt wurde, wird es in einem späteren Blogbeitrag behandelt werden.

ChatGPT im Requirements Engineering

Im Bereich Requirements Engineering haben wir in einer Pilotstudie verschiedene Aspekte ausprobiert, wobei die folgenden Drei sich als nützlich erwiesen haben:

  1. Der erste umfasst das Erstellen von Personas, bei dem die KI bei der Erarbeitung von Satzbausteinen unterstützen konnte.
  2. Als zweites wurde sich mit dem Verstehen von technischen Anforderungen auseinandergesetzt, wobei der Chatbot als Wissensressource genutzt wurde.
  3. Auch das Verstehen von Implikationen und Abhängigkeiten zwischen Requirements wurde erprobt, wobei ähnlich gute Erfahrungen gemacht wurden.

Der Chatbot als Wissensressource unterstützt effektive und effiziente Arbeitsweisen im gesamten Software Engineering.

Chatbots als Wissensressource für Architektur und Design

Im Bereich Architektur und Design haben wir uns mit dem Verstehen von Betriebsdokumentation, Architekturpatterns und -stilen sowie der Architekturdokumentation beschäftigt. Der Chatbot als Wissensressource ermöglicht es, schneller Wissen zu erhalten und neue Patterns zu verstehen und zu vertiefen. Für die Projektplanung und Architektur vor den Aufgaben eines Software Engineers sind die Anwendungsmöglichkeiten derzeit beschränkter als beim Coden. Dennoch unterstützt ChatGPT hier und führt zu schnelleren und besseren Lösungen.

Fazit

In unserer qualitativen Studie konnten wir keine Muster erkennen, bei denen LLMs besonders viel unterstützen, da alle Anwendungsszenarien sehr individuelle Unterstützungen waren. Trotzdem bieten die bisherigen LLMs Unterstützung bei Requirements und Architektur, auch wenn diese Themen komplex sind und nicht mit einer kurzen Promt zu einer guten Lösung durch das LLM führen können. Dennoch konnten wir Folgendes sehen: Für die Bereiche Requirements Engineering und Architektur können wir feststellen, dass ein "interaktiver Modus" mit dem Chatbot, bei dem Fragen gestellt und beantwortet werden, eine effiziente Methode ist, eine KI in Kundenprojekten einzusetzen. Dieses Vorgehen hilft, bei der Lösung der eigentlichen Problemstellung zu bleibe. Konkrete Anwendungsfälle, bei denen ein LLM sinnvoll eingesetzt werden kann, sind das Erarbeiten von Komponentenschnitten, das Bearbeiten von Trade-offs unterschiedlicher Lösungen und das Erstellen von Schnittstellenschemata im JSON-Format.

Limitierungen der Studie

Abschließend möchten wir kurz einige Anmerkungen zum Rahmen unserer Studie machen. Die hier dargestellten Best Practices basieren auf einer Pilotstudie bei der wir Wissen gesammelt und unsere Fähigkeiten iterativ verbessert haben, um fundierte Erfahrungen aus unseren Projekten zu gewinnen.Durch die offene Pilotstudie wurden nicht alle Themenfelder getestet und untersucht. Die Untersuchung basiert auf der subjektiven Erfahrung der Probanden, die durch ein Bias bei der Selbsteinschätzung verzerrt sein könnte. Ebenfalls erschwerte der Geheimnisschutz die Anwendung von Chatsbots, weshalb wir bisher erst eine kleine Anzahl der oben genannten Aufgaben erfolgreich in Kundenprojekten mit ChatGPT nutzen konnten.

Im nächsten Blogbeitrag werden wir dann auf viele konkreteren Anwendungen beim Schreiben von Code eingehen. Auch dort werden wir unsere Erfahrungen aus Kundenprojekten teilen können.