ChatGPT hat dem Thema Künstliche Intelligenz neues Leben eingehaucht: Seit dem Debüt des KI-Tools ist auch technisch weniger interessierten Menschen klar, dass intelligente Assistenten keine Zukunftsmusik mehr sind.
Für viele Developer war ChatGPT keine Überraschung, wohl jedoch ein unwiderstehliches Tool. Und wie sich zeigt, haben schlaue Köpfe in den letzten Monaten tausende von KI-Tools entwickelt, die uns die Software-Entwicklung erleichtern sollen. Doch was taugen diese Tools wirklich und welchen Einfluss hat KI auf die Branche?
ChatGPT statt Google
Jedes Projekt braucht Recherche — klassischerweise mit Google und in Programmier-Foren wie Stack Overflow. Doch die Tage von Google als Suchmaschine für Fragen in der Software-Entwicklung könnten gezählt sein.
Für uns bei Panter hat Google als erste Anlaufstelle ausgedient: Wir fragen stattdessen ChatGPT nach einem Problemlösungsansatz. Das geht nicht nur schneller, sondern auch einfacher. Der KI-Assistent versteht natürliche Sprache und antwortet mit konkreten Schritt-für-Schritt-Vorschlägen.
Natürlich ist die KI kein kompletter Ersatz für etwa Stack Overflow, doch ChatGPT liefert Ideen und Ansätze für die ersten Schritte. In vielen Fällen reicht das bereits aus. Statt Foren zu durchforsten, können wir mehr Zeit und Effort in die Software-Entwicklung investieren.
Die Menge an KI-Tools und ihre Anwendungsmöglichkeiten sind enorm – und die Zahl wächst täglich. Doch was ist wirklich nützlich? Bei Panter wissen wir aus Erfahrung, dass die richtige Lösung immer vom konkreten Fall und Bedarf abhängt – es gibt also kein «perfektes» KI-Tool für die Software-Entwicklung.
Am besten ist es, so viel wie möglich auszuprobieren, um die optimalen Lösungen für die eigenen Prozesse. Zwei wichtige Leitlinien sind für uns dabei zentral:
- Neue Tools schnell adaptieren und die Erfahrungen intern teilen. Bei Panter ist das beispielsweise im Rahmen von internen Demo-Meetings möglich. So geht die investierte Arbeit nicht verloren und andere Mitarbeitende können auf den Erkenntnissen aufbauen.
- Der Datenschutz muss gewährleistet sein. Sensitive Daten dürfen nicht leichtsinnig verbreitet werden. Panter hat hierzu klare Vorgaben definiert und eine interne Anlaufstelle für Datenschutzfragen aufgebaut.
5 erprobte Use Cases für KI in der Software-Entwicklung
Hier sind fünf Use Cases für KI-Tools, die wir in der Praxis nutzen:
(1) User Stories effizienter erstellen
User Stories sind essenziell, doch die Erstellung kann zeitraubend sein. Bei Panter nutzen wir daher schon lange eine einfache Vorlage mit drei Bestandteilen:
- Titel
- Beschreibung
- Akzeptanzkriterien
Dank ChatGPT können wir auf Basis eines einfachen Prompts wie «increase test coverage» eine User Story gemäss dem Template generieren.
Die Ergebnisse sind besser als gedacht, auch wenn sie noch Überarbeitung benötigen. Die automatische Generierung nach Template erspart viel Schreibarbeit. Dank dem automatisch generierten Vorschlag hilft sie zudem, den Tunnelblick zu vermeiden und alle wichtigen Aspekte auf dem Schirm zu behalten.
Mehr dazu: User Stories verbessern mit ChatGPT (Medium-Artikel)
(2) Meetingprotokolle automatisieren
Meetings sind (leider) auch Teil des Alltags in der Software-Entwicklung. Immerhin das Schreiben von Protokollen können aber mittlerweile KI-Tools übernehmen. OpenAI hat mit dem Neural Net namens Whisper Speech-to-Text auf ein neues Level gehoben.
Whisper ist nicht nur genau und robust, sondern erkennt sogar Schweizerdeutsch zuverlässig. Es wandelt die Audio-Aufnahme eines Meetings in Text um – und ChatGPT erstellt aus dem Transkript dann eine Zusammenfassung. Einfacher geht es nicht.
Mehr dazu: Speech-to-Text mit Whisper (Dokumentation)
(3) Code Assistance
«Code Assistance» umfasst als Kategorie verschiedene KI-Tools, die helfen, den eigenen Code automatisch zu vervollständigen. Darunter fallen Aufgaben wie:
- Generieren von Codefragmenten
- Refactoring von Fragmenten
- Erstellen von Dokumentationen
- Benennen von Variablen
Code-Assistenten wie GitHub Copilot entlasten Developer bei solchen Standardaufgaben. Copilot bietet Vorschläge auf Basis von Prompts direkt im Editor und liefert komplett funktionsfähigen Code für einfache oder repetitive Aufgaben. Solche Assistenten sind bereits recht verlässlich. Eine Endkontrolle bleibt aber wichtig, um sicherzustellen, dass der Code im konkreten Anwendungsfall wie gewünscht funktioniert.
Copilot nutzt den OpenAI Codex, um Codevorschläge direkt im Editor einzublenden.
(4) Commit Messages erstellen
Dokumentation ist wichtig, dennoch kommt sie schnell zu kurz. Dank OpenAI und Tools wie GPT Commit lassen sich git Histories mit sinnvollen Commit-Nachrichten automatisieren. Einige Tools lassen es zu, den Output des «diff» Prompts direkt in ChatGPT zu lenken und wenn nötig passend zu trunkieren, damit das Eingabelimit eingehalten wird.
Wenn ganze Features in einem Commit zusammengefasst werden, kann man mittels Ticket ID auch etwa die User Story verlinken. Das Ergebnis ist nicht nur effizienter als manuelle Commits, sondern vor allem auch verständlicher für Dritte.
Mehr dazu: Commit mit ChatGPT (github)
(5) Code Review
ChatGPT trägt zu effektiveren Code-Reviews bei und damit auch zur Verbesserung der Codequalität. Das Tool kann beispielsweise innert kürzester Zeit die Code-Logik erklären und allfällige Code-Smells oder strukturelle Mängel im Code identifizieren. Das gibt den Reviewer:innen wichtige Hinweise und spart viel Aufwand.
Zudem kann ChatGPT Änderungen im Code prägnant zusammenfassen. Dafür geben wir das «diff» der Änderungen in die Dialogbox ein und fragen schlicht nach einer Zusammenfassung. Als Antwort erhalten wir die Änderungen in einer kompakten Liste.
Prompt Engineering: Das Meiste aus KI-Tools holen
Wie immer gilt in der IT: je präziser die Anweisung, desto besser das Ergebnis. Prompt Engineering ist die Kunst, dem KI-Tool die passende Anweisung zu geben, um den gewünschten Output in der richtigen Qualität zu erhalten.
Der grosse Vorteil von ChatGPT und anderen Natural-Language-Tools: die Code-Syntax entfällt. Developer können einfach schreiben, was sie haben möchten.
Leicht ist das trotzdem nicht. Ein simpler Befehl führt selten zum Ziel. Prompt Engineering ist ein iterativer Prozess: Die Eingabe muss Schritt für Schritt verbessert und verfeinert werden, bis sie das richtige Ergebnis im richtigen Format liefert.
Dabei hilft es, auf frühere Anweisungen zu verweisen und zusätzliche eigene Datensätze bereitzustellen. So kann das Tool daraus lernen und wird bestmöglich auf die konkrete Anwendung trainiert.
Für gute Resultate hilft es, dem KI-Tool möglichst viel Kontext zu geben: Wie soll die Aufgabe nicht gelöst werden? Baut die Aufgabe auf früheren Aufgaben oder Resultaten auf? Je mehr man die Eingabe einschränkt und spezifiziert, desto besser lässt sich das Ergebnis verfeinern.
Fazit: Selbst denken und schneller iterieren
ChatGPT und andere KI-Tools sind eine willkommene Hilfe in der Software-Entwicklung. Sie unterstützen dabei, einfache und repetitive Aufgaben zu automatisieren und die Qualität der Software zu steigern. Vor allem die Geschwindigkeit der Iterationen wird zunehmen, was letztlich schneller zum gewünschten Produkt und weiteren Verbesserungen führen wird.
KI-Tools werden definitiv in der Nutzung zunehmen. Gute Resultate kommen aber nicht von selbst, sie erfordern Skills und viel Training. Nur dann werden Developer von repetitiven Tätigkeiten befreit und haben mehr Zeit, sich komplexeren Aufgaben zuzuwenden.
Denn obwohl ChatGPT und andere KI-Tools die Arbeit in der Software-Entwicklung stark verändern, können sie nicht alle Aufgaben von Developern übernehmen. Spätestens, wenn es um die Software-Architektur geht oder wenn kreative und innovative Lösungen gefragt sind, braucht es weiterhin talentierte Entwickler:innen.
Künstliche Intelligenz hat ein enormes Potenzial für Unternehmen, sei es zur Optimierung interner Prozesse oder zum besseren Verständnis von Kundenbedürfnissen. Hast du ein konkretes Projekt vor Augen und suchst nach einem starken Entwicklungspartner? Dann bist du hier richtig. Gerne unterstützen wir dich mit unserem Know-How im KI-unterstützten Software und Data Engineering.