Stellt generative KI Software Engineering auf den Kopf? Wie wird KI in der Softwareentwicklung eingesetzt und wie wird Software Engineering in der Ära der generativen KI zukünftig aussehen? In diesem Blogbeitrag antworten zwei unserer Experten auf diese Fragen.
KI für Software Engineering: Wo stehen wir heute?
Die Integration generativer KI in das Software Engineering hat das Potenzial, die Produktivität zu steigern, die Markteinführungszeit zu verkürzen und den Fachkräfte-Mangel zu beheben. Der Softwaremarkt in Deutschland wird bis 2024 voraussichtlich 30,97 Milliarden US-Dollar erreichen (Statista). Die Branche ist somit reif für Innovationen. Entwickler verbringen derzeit 17 Stunden pro Woche mit Wartungsaufgaben (Stripe).
Generative KI kann viele der alltägliche Aufgaben erleichtern: Wie z.B. die Generierung von Boilerplate-Code automatisieren und bei der Codeüberprüfung, dem Testen und dem Design helfen. Weitere Unterstützung bietet KI bei der Projektplanung, der automatischen Fehlerbehebung, der Sicherheit und der Einhaltung von Vorschriften. Außerdem kann sie helfen DevOps-Prozesse zu optimieren, die Zugänglichkeit verbessern und personalisierte Lernerfahrungen für Entwickler schaffen. Wie McKinsey andeutet, kann der Einsatz generativer KI in der Forschung und Entwicklung zu Zeit- und Kosteneinsparungen, Qualitätsverbesserungen und erhöhter Entwicklungseffizienz führen.
Aus wissenschaftlicher Sicht wird außerdem die Wirkung von KI-Codeassistenten untersucht, und empirische Belege zeigen tendenziell, dass diese Tools zu erheblichen Produktivitätssteigerungen bei Entwicklern führen können [1].
KI-Codeassistenten in der Softwareentwicklung: Die Integration von generativer KI in integrierte Entwicklungsumgebungen (IDEs) nimmt bereits seinen Lauf. Tools wie GitHub Copilot, Amazon CodeWhisperer, Tabnine, JetBrains AI Service und Cursor AI, das vor kurzem 60 Millionen Dollar eingeworben hat, sind Beispiele für diesen Trend. Diese Tools bieten mehr als nur »intelligente Code-Vervollständigung« – sie umfassen Funktionen wie die semantische Ähnlichkeitssuche innerhalb von Codebases, die dabei helfen kann, potenzielle Probleme zu erkennen, bevor sie eskalieren, und so die Codequalität insgesamt zu verbessern.
Die Entwicklung von LLM-basierten Multi-Agenten-Systemen wie Gpt-Pilot, ChatDev, MetaGPT, Open Hands (ex Open Devin), Devika, oder Replit-Agent, stellt einen großen Fortschritt bei der Automatisierung des Softwareentwicklungszyklus (SDLC) dar. Solche Plattformen ermöglichen es, dass mehrere Agenten gemeinsam mit Benutzern automatisch Software entwickeln, von den Anforderungen bis zur Bereitstellung. Jeder Agent hat eine bestimmte Rolle und verwendet LLMs und spezialisierte Tools, um Aufgaben zu erledigen. Er ahmt so den gesamten SDLC-Prozess nach, als ob er von Menschen durchgeführt würde. Auch wenn diese Plattformen derzeit noch nicht alle Werkzeuge umfassen, die in der professionellen Softwareentwicklung verwendet werden, und die heute produzierte Software möglicherweise nicht für kritische Anwendungen geeignet ist, gibt ihr Potenzial Anlass zu einer Diskussion über die künftige Rolle von Softwareentwicklern. Einige spekulieren sogar darüber, dass das Erlernen des Programmierens in Zukunft überflüssig werden könnte.
Zukunftsszenarien von KI im Software Engineering: Welche Vorteile und Nachteile ergeben sich für den Software Development Lifecycle (SDLC)?
Szenario 1: Inkrementelle Unterstützung (findet bereits statt)
Beschreibung: Generative KI unterstützt bei Aufgaben innerhalb des bestehenden SDLC-Rahmens, ohne diesen grundlegend zu verändern. Entwickler können KI nutzen, um ihre Arbeitsabläufe zu verbessern und gleichzeitig die Kontrolle über den Prozess behalten.
Optimistische Sichtweise: Dieses Szenario könnte zu erheblichen Produktivitätssteigerungen, schnelleren Entwicklungszyklen und einer verbesserten Softwarequalität führen. Die Entwickler können sich auf komplexere Aufgaben konzentrieren und sich wiederholende oder alltägliche Tätigkeiten den KI-Tools überlassen.
Des Teufels Advokat: Es besteht die Gefahr, dass man sich zu sehr auf diese Tools verlässt, was zu einer Verschlechterung der Fähigkeiten der Entwickler führen könnte. Wenn sich die Entwickler daran gewöhnen, dass die KI Aufgaben übernimmt, könnten ihre Problemlösungsfähigkeiten abnehmen. Außerdem kann es zu Frustrationen kommen, wenn die KI bestimmte Anforderungen oder Nuancen nicht versteht, was zu Ineffizienz führt.
Szenario 2: Partielle Automatisierung
Beschreibung: In diesem Szenario werden bestimmte Aufgaben innerhalb des SDLC vollständig automatisiert – zum Beispiel kann das Schreiben von Dokumentationen oder die Generierung von Unit-Tests autonom von einer KI erledigt werden.
Optimistische Sichtweise: Dieser Wandel würde es den Entwicklern ermöglichen, sich auf übergeordnete Design- und Kreativitätsaspekte der Softwareentwicklung zu konzentrieren und dadurch Innovation und Projektergebnisse verbessern.
Des Teufels Advokat: Umgekehrt könnte dies Arbeitsplätze verdrängen und zu einem Rückgang des Fachwissens in kritischen Bereichen führen. In dem Maße, in dem bestimmte Aufgaben automatisiert werden, könnte die Nachfrage nach qualifizierten Fachkräften in diesen Bereichen zurückgehen, was sich auf die allgemeine Gesundheit der Arbeitskräfte auswirken würde.
Szenario 3: Vollständige Automatisierung des SDLC
Beschreibung: Dieses Szenario stellt sich eine Zukunft vor, in der der gesamte SDLC durch LLM-basierte Multi-Agenten-Frameworks automatisiert wird. Software könnte mit minimalen menschlichen Eingriffen entwickelt, getestet und implementiert werden.
Optimistische Sichtweise: Derartige Fortschritte könnten die mit der Softwareentwicklung verbundene Zeit und Kosten drastisch reduzieren. Durch die Möglichkeit der direkten Interaktion mit den Endbenutzern könnte die Zeit von der Idee bis zur Implementierung erheblich verkürzt werden, so dass sie möglicherweise nur noch wenige Minuten beträgt.
Des Teufels Advokat: Es gibt Bedenken hinsichtlich der Qualitätssicherung, der Verantwortlichkeit und des Vertrauens in KI-generierten Code. Wenn ein Entwicklungsteam zur Nebensache wird und Software als Wegwerfartikel behandelt wird, könnte dies zu einem Rückgang der Gesamtqualität und Zuverlässigkeit der Software führen.
Szenario 4: Optimierte Automatisierung
Beschreibung: In diesem Szenario wird durch KI der SDLC nicht nur automatisiert, sondern auch optimiert. Herkömmliche Dokumentationen, Architekturentwürfe und sogar herkömmliche Programmiersprachen können überflüssig werden, da die menschliche Aufsicht abnimmt.
Optimistische Sichtweise: Dies könnte die Softwareentwicklungspraktiken radikal verändern und eine nie dagewesene Effizienz und Kreativität bei der Konzeption und Ausführung von Software ermöglichen.
Des Teufels Advokat: Auf der anderen Seite könnte der Verlust grundlegender Praktiken zu unvorhergesehenen Problemen und Schwachstellen führen. Ohne ordnungsgemäße Dokumentation und strukturierte Verfahren könnte die Nachhaltigkeit und Wartbarkeit von Software gefährdet sein.
Herausforderungen, Bedenken und offene Fragen in einer Zukunft, die von KI-generierter Software dominiert wird
Unabhängig von den Szenarien wird die Produktivität der Softwareentwicklung beeinflusst werden. Dies könnte dazu führen, dass der Mensch zum Flaschenhals wird. Wie bewerten wir die Qualität von Tools, die Tausende von Codezeilen pro Minute erzeugen können?
Die schiere Menge des von der KI erzeugten Codes erfordert fortschrittliche und effiziente Testmechanismen, um zu gewährleisten, dass die Software unter verschiedenen Bedingungen und Szenarien korrekt funktioniert.
Ein Vergleich der Stärken und Schwächen von menschlich generierter und KI-generierter Software ist unerlässlich, um die Bereiche zu ermitteln, in denen der jeweilige Ansatz überragend ist. Diese Bewertung wird helfen, fundierte Entscheidungen darüber zu treffen, wann man sich auf KI verlassen sollte und wann menschliches Fachwissen unverzichtbar ist.
Traditionelle Konzepte des Software-Engineerings könnten in Frage gestellt werden, wenn KI-Systeme in der Lage sind, Code eigenständig zu regenerieren und zu aktualisieren. Dieser Wandel wird ein Überdenken der Art und Weise erfordern, wie wir die Softwareentwicklung angehen.
Wer übernimmt die Haftung? Die Bestimmung der Verantwortlichkeit für Fehler in KI-generiertem Code wird ein wichtiges Anliegen sein. Es müssen klare Richtlinien und Rahmenwerke geschaffen werden, um die Verantwortung in Fällen zuzuweisen, in denen KI-generierte Software versagt oder Schaden verursacht.
Die breite Einführung der vollautomatischen Softwareentwicklung wirft erhebliche ethische Fragen auf, z.B. in Bezug auf die Auswirkungen auf die Beschäftigung, auf die benötigten Energieressourcen oder auf Transparenz und Fairness.
Schließlich wird der Übergang zu KI-generierter Software eine kulturelle und pädagogische Anpassung erfordern. Die Vorbereitung der Arbeitskräfte auf neue Rollen und Verantwortlichkeiten in einer KI-gesteuerten Landschaft wird von entscheidender Bedeutung sein, um das volle Potenzial dieses technologischen Fortschritts auszuschöpfen.
Unser Fazit zu generativer KI im Software Engineering
Niels Bohr (Nobelpreisträger für Physik und bekannt für sein Atommodell) wird der Ausspruch zugeschrieben: »Vorhersagen sind sehr schwierig, besonders wenn es um die Zukunft geht!«
Die von uns skizzierten Szenarien könnten in der Zukunft, wie wir sie heute wahrnehmen, zutreffen oder auch nicht. Wir wissen noch nicht, wie leistungsfähig neue GenAI-Modelle (wie OpenAI O1) sein werden. Auch können wir nicht sagen, welche Art von Veränderungen sie mit sich bringen und ob sie mehr Potenzial oder mehr Risiken bergen werden. Dennoch stehen wir an der Spitze dieser Veränderungen in der KI-Softwareentwicklung, erforschen sie aktiv und setzen unsere Erkenntnisse in der Branche um, um Unternehmen bei der Anpassung an diese Veränderungen zu unterstützen.
Ihr Unternehmen benötigt unseren Rat? Nehmen Sie gerne Kontakt zu uns auf.
Mehr zum Thema LLM und Gen AI
- Retrieval Augmented Generation (RAG): Chatten mit den eigenen Daten
- Prompt Engineering: Wie man mit großen Sprachmodellen kommuniziert
Referenzen
[1] Cui, Kevin Zheyuan, et al. „The Effects of Generative AI on High Skilled Work: Evidence from Three Field Experiments with Software Developers.“ Available at SSRN 4945566 (2024).
[2] Ebert, Christof, and Panos Louridas. „Generative AI for software practitioners.“ IEEE Software 40.4 (2023): 30-38.
[3] Hou, Xinyi, et al. „Large language models for software engineering: A systematic literature review.“ ACM Transactions on Software Engineering and Methodology (2023).
[4] He, Junda, Christoph Treude, and David Lo. „LLM-Based Multi-Agent Systems for Software Engineering: Vision and the Road Ahead.“ arXiv preprint arXiv:2404.04834 (2024).
[5] Jin, Haolin, et al. „From LLMs to LLM-based Agents for Software Engineering: A Survey of Current, Challenges and Future.“ arXiv preprint arXiv:2408.02479 (2024).