KI schreibt Code: Schnell, effektiv und manchmal fehlerhaft

foto freepik

Manchmal könnte man den Eindruck gewinnen, als wären wir ganz plötzlich im Zeitalter der künstlichen Intelligenz (KI) gelandet. Mit dem rasanten Aufstieg kommerzieller Large Language Models (LLMs) und generativer KI-Tools wie OpenAI ChatGPT, Microsoft Copilot und Google Gemini ist künstliche Intelligenz jetzt in aller Munde – Bedenken eingeschlossen.

Aber KI-Konzepte und -Systeme existieren schon seit Jahrzehnten. Der Begriff selbst wurde erstmals im Jahr 1956 von John McCarthy geprägt, und er bezeichnet KI als »die Wissenschaft und Technik der Entwicklung intelligenter Maschinen«. Für Softwareentwickler ist KI weder neu noch besonders beängstigend. Vielmehr ist KI etwas, das sie seit Jahren im Gebrauch verfeinern und in ihre Software integrieren.

Maschinelles Lernen (ML) ist beispielsweise eine Kategorie innerhalb der künstlichen Intelligenz, die seit langem in so gut wie allen Bereichen eingesetzt wird, von Fitness-Tracking-Apps bis hin zu Antiviren-Software. ML versetzt Computer in die Lage, Aufgaben ohne explizite Programmierung auszuführen. Dazu dienen Algorithmen und Modelle, die es Programmen ermöglichen, sich anzupassen und über die Zeit zu lernen. ML ist sehr gut darin, komplexe Muster in Daten zu erkennen und darauf zu reagieren. Deshalb eignet sich maschinelles Lernen für Aufgaben wie die Spam- und Malware-Erkennung, vorausschauende Analysen und computergestütztes Design. ML ist mittlerweile so weit verbreitet, dass wir maschinelles Lernen oft gar nicht mehr als KI bezeichnen.

Mit der Einführung der ersten kommerziellen LLMs und generativen KI-Tools hat künstliche Intelligenz in den letzten Jahren einen großen Sprung nach vorn gemacht. Beide stützen sich auf maschinelles Lernen und eine Reihe anderer KI-Technologien. Dazu zählen Deep Learning, neuronale Netze und die Verarbeitung natürlicher Sprache. Gleichzeitig nutzen sie riesige Mengen von Internetdaten, um etwas zu tun, was ML-fähige Systeme nie getan haben – nämlich zu »denken«, oder zumindest den Anschein dessen zu erwecken. Jetzt können Sie einen Computer einfach »fragen« oder ihn mit einer offenen Problemstellung konfrontieren. Das System wird eine »neue« Antwort liefern. Diese Antwort kann so gut wie alles sein, von einem einfachen Textblock über Computercode bis hin zu einem Kunstwerk.

Parallel zum Hype um generative KI wurden Bedenken zu den Risiken und Grenzen laut: sogenannte Halluzinationen, Plagiate, Urheberrechtsverletzungen und sogar Fehler, die den von Menschen sehr ähnlich sind. Unternehmen, die das enorme Potenzial der KI erkannt hatten, suchten deshalb nach Möglichkeiten, die Vorteile zu nutzen und gleichzeitig die Risiken zu minimieren.

 

Gen AI wird die Softwareentwicklung verändern

Generative KI wird die Softwareentwicklung verändern. Das ist keine Frage des Ob, sondern des Wann. Viele Entwickler nutzen bereits jetzt künstliche Intelligenz bei der Codeentwicklung. KI hat das Potenzial, die Produktivität von Entwicklern drastisch zu verbessern. Das versetzt sie in die Lage, Code schneller als je zuvor zu erstellen und zu verfeinern. Untersuchungen haben ergeben, dass generative KI den Zeitaufwand für das Schreiben von Code um 35-45 % reduzieren kann.

Die Art und Weise, wie generative KI die Daten und Werke nutzt, auf denen sie trainiert wurde, um »neue« Werke zu entwickeln, hat jedoch Bedenken aufgeworfen. Die Bedenken bei der Entwicklung von Software ähneln denen bei geistigen Eigentum, etwa bei Texten oder visuellen Kunstwerken. Da überrascht es nicht, dass wir inzwischen in eine Phase von andauernden Rechtsstreitigkeiten eingetreten sind. Klagen treffen sowohl die Organisationen, die diese LLMs entwickeln, als auch diejenigen, die öffentlich von einer KI geschaffene Werke wie etwas Songs und Bilder beanspruchen und verbreiten. Ein solcher Fall ist beispielsweise die Sammelklage von Entwicklern gegen Microsoft, GitHub und OpenAI. Allen dreien wird darin vorgeworfen, gegen das Urheberrecht zu verstoßen, weil sie Copilot gestatten, lizenzierte Codeschnipsel wiederzuverwenden, ohne dies ordnungsgemäß kenntlich zu machen. Obwohl dieser spezielle Fall abgewiesen wurde, ist das juristische Gerangel in vollem Gange und die Frage nach dem geistigen Eigentum noch längst nicht geklärt.

 

KI-gestützte Programmierung für bessere Software?

Der Einsatz von KI in der Softwareentwicklung wird bald gang und gäbe sein. Daran besteht kein Zweifel. Aber wie jeder weiß, der selbst schon Tools wie ChatGPT verwendet hat, sind die von der KI erzeugten Antworten oft unsinnig, verzerrt oder schlichtweg falsch. Das Gleiche gilt für KI-generierten Code. LLMs werden anhand von ungeheuren Mengen öffentlich zugänglichen Codes trainiert. Vieles davon ist gut, vieles aber auch nicht. Wenn Entwickler dem blind vertrauen, was eine generative KI ausgibt, sind die Ergebnisse potenziell katastrophal. KI kann und wird oft genug fehlerhaften und unsicheren Code erzeugen.

Ist KI-generierter Code also besser oder schlechter als der von menschlichen Entwicklern geschriebene? Eine erste Analyse von GitHub Copilot hat ergeben, dass sich bestimmte Arten von Sicherheitslücken besser als andere in diesem Prozess ausschließen lassen. Im Allgemeinen lassen sich vor allem häufig vorkommende Syntaxschwachstellen gut vermeiden. Problematischer wird es bei Lücken, die aus komplexen Interaktionen zwischen Anwendungen und externen Systemen sowie Benutzern resultieren. Und das Fazit? Je nachdem, welche Art von Code ein Entwicklungsteam erstellt, werden Sie damit auch unterschiedliche Erfahrungen machen.

 

Ein nicht ganz so neuartiger Ansatz für ein neues Problem

KI-erzeugte Software ist also offensichtlich nur so gut wie der von Menschen entwickelte Code, auf dem sie trainiert wurde. Wenn das der Fall ist, liegt es auf der Hand, dass wir beim Überprüfen und Testen des von der KI erzeugten Codes denselben Ansatz und dieselben Vorsichtsmaßnahmen ergreifen sollten wie bei Code, der von menschlichen Entwicklern erstellt wurde. Dazu gehört etwa die statische Analyse, mit der man sowohl die Codequalität prüfen als auch Sicherheitsmängel erkennen kann.

Zum Trainieren von LLMs verwendet man zum überwiegenden Teil Open Source Code. Also Software, die unter den Bedingungen einer Open-Source-Lizenz frei verfügbar ist. Es ist kaum verwunderlich, dass KI-generierter Code häufig »Schnipsel« von Open-Source-Komponenten enthält. Wenn diese Code Snippets nicht identifiziert werden, birgt das verschiedene Risiken. Das betrifft auch die zugehörigen Lizenzen. Werden die Lizenzbedingungen nicht eingehalten, drohen Rechtsstreitigkeiten hinsichtlich des geistigen Eigentums.

An dieser Stelle kann die Software Composition Analysis (SCA) helfen. Viele Softwareteams nutzen bereits entsprechende Tools, um Open-Source-Komponenten und Lizenzverpflichtungen in ihren Anwendungen nachzuverfolgen. Um diese Snippets zu erkennen, braucht man allerdings ein Tool, dass sehr granulare Analysen durchführen kann. Dazu sind längst nicht alle SCA-Tools in der Lage. Entwickler sollte sich kundig machen und nur auf solche Tools zurückgreifen, die den Anforderungen auch tatsächlich gewachsen sind.

 

KI-Governance ist unerlässlich

Generative KI wird die Softwareentwicklung in den kommen zwei Jahrzehnten ebenso revolutionieren, wie das Open Source in den beiden vorgegangenen getan hat. Aber ähnlich wie beim Thema Open Source sollte man eine angemessene Governance gewährleisten. Erst die stellt sicher, dass Entwicklerteams das volle Potenzial ausschöpfen können. Wer einen tauglichen Governance-Rahmen schaffen will, der sollte alle beteiligten Parteien an einen Tisch holen: Entwickler, Sicherheitsteams, die Rechtsabteilung und diejenigen, die sich mit dem Risikomanagement insgesamt befassen.

Als erstes brauchen Unternehmen unbedingt eigene Regeln für den Einsatz von KI am Arbeitsplatz. In diesen Richtlinien sollte der Schutz geistigen Eigentums oberste Priorität haben. Das gilt sowohl für das geistige Eigentum des Unternehmens selbst als auch für das der Open-Source-Projekte, die dem KI-generierten Code zugrunde liegen.

Von minderwertigem oder anfälligem Code gehen erhebliche Risiken aus. Firmen sollten ihre KI-Codier-Assistenten sorgfältig auswählen (und prüfen). Und zwar mit der gleichen Disziplin, die sie bei jedem anderen Anbieter anwenden würden. Bei kostenlosen Tools sollten Entwickler vorsichtig sein (wohin gehen Ihre Daten?) und die Datenschutz- und IP-Richtlinien aller Plattformen, die sie in Betracht ziehen, kennen. Eine angemessene Due-Diligence-Prüfung senkt das Risiko erheblich.

Schließlich sollten Sie dem von einer KI generierten Code nicht uneingeschränkt vertrauen. Überprüfen Sie ihn sorgfältig. Nutzen Sie das Potenzial der statischen Analyse, um Fehler im Code und Schwachstellen aufzuspüren, und SCA-Tools auf der Snippet-Ebene. Nicht zuletzt, um potenzielle IP-Verletzungen zu erkennen.

 

Auf dem Weg in eine produktive, innovative und sichere Zukunft

Eines ist sicher: KI-gestützte Softwareentwicklung ist das »new normal«. Bei einem durchdachten KI-Ansatz sollten dieselben Praktiken wie bei von Menschen entwickelter Software zum Einsatz kommen. Dann können Firmen das enorme Potenzial von KI für sich nutzbar machen. Gleichzeitig kontrollieren sie die ihr innewohnenden Risiken, um schneller, sichere und qualitativ hochwertige Software zu entwickeln.

Boris Cipot, Senior Sales Engineer, Black Duck

 

731 Artikel zu „Softwareentwicklung“

Auf diese Kernkompetenzen kommt es bei der agilen Softwareentwicklung an​

Viele Unternehmen wollen es, nicht alle können es: Agile Softwareentwicklung. Neben den Methoden und Prinzipien spielen hier vor allem individuelle Kernkompetenzen eine entscheidende Rolle. IT-Dienstleister Avision zeigt, worauf es bei Teams, Product Owner, Scrum Master und Stakeholdern wirklich ankommt. Nicht überall, wo agil draufsteht, ist auch agil drin. Das mussten seit dem Aufkommen der gleichnamigen…

Fusion Teams: Die Zukunft der Softwareentwicklung – Herzstück der strategischen Bewältigung

Die weit verbreitete Verwendung von Low-Code manifestiert sich schon heute in Unternehmen aller Größenordnungen. In Zeiten eines sich weiter verschärfenden Fachkräftemangels sollten Unternehmensentscheider daher geeignete Strukturen schaffen, um ihre Innovationsfähigkeit zu sichern und im Wettbewerb bestehen zu können.

Generative KI hat enorme Auswirkungen auf Softwareentwicklung und Softwaresicherheit

Seit der Veröffentlichung von ChatGPT im November 2022 arbeitet die Technologiebranche daran, solche auf annähernd menschlichem Level funktionierenden Konversationsschnittstellen zu etablieren und praktisch zu nutzen. Fast jedes größere Unternehmen verbindet heute seine interne oder produktbezogene Dokumentation mit einem großen Sprachmodell, sogenannten »Large Language Models« oder kurz LLMs, um Fragen möglichst schnell zu beantworten. Gleichzeitig kommen…

Welchen Einfluss hat KI auf die Softwareentwicklung?

Seit seinem Debüt Ende 2022 hat ChatGPT die Welt im Sturm erobert und die Fantasie zukunftsorientierter wie risikoscheuer Menschen gleichermaßen beflügelt. Parallel dazu hat die Veröffentlichung wichtige und zum Teil überfällige Diskussionen zum Thema künstliche Intelligenz (KI) insgesamt befeuert – über positive Einsatz- und Anwendungsmöglichkeiten, negative Auswirkungen und ethische Fragen. Die Technologie wird zweifelsohne für…

Künstliche Intelligenz in der Softwareentwicklung: Programme, die Programme schreiben?

Entwickler müssen in der modernen Softwareentwicklung immer seltener Probleme von Grund auf neu angehen. Ein großer Teil von Funktionen findet sich in Bibliotheken, Plattformen wie GitHub und Stack Overflow stellen Millionen von Codebeispielen für unterschiedlichste Programmieranforderungen zur Verfügung. Kann generative KI das Programmieren weiter vereinfachen? Und wenn ja, welche Fallstricke lauern? Dazu haben wir mit…

Die fünf wahrscheinlich wichtigsten Trends in der Softwareentwicklung für 2023

Unternehmen treiben die Modernisierung ihrer Anwendungslandschaften weiter voran und setzen dabei zunehmend auf Container-Technologien sowie verteilte Systeme. Das sind die fünf wahrscheinlich wichtigsten Trends, die im nächsten Jahr auf Unternehmen zukommen.   Legacy-Anwendungen bremsen Unternehmen erheblich aus – sie sind aufwendig zu pflegen und verhindern Innovationen sowie Business-Agilität. Deshalb steht die Entwicklung moderner Software und…

»Secure by Design« für den Softwareentwicklungsprozess

Mit der SolarWinds-Initiative »Secure by Design« schafft das Unternehmen ein Modell für die sichere Entwicklung von Unternehmenssoftware. Komponenten des Next-Generation-Build-Systems werden für Open-Source-Softwareinitiativen veröffentlicht.   SolarWinds, ein Anbieter von IT-Management-Software, stellt sein neues Next-Generation-Build-System vor, ein transformatives Modell für die Softwareentwicklung. Der neue Software-Build-Prozess ist ein zentraler Bestandteil der Unternehmensinitiative »Secure by Design«, mit der SolarWinds…

Softwareentwicklung wird für das Kundenengagement immer wichtiger

Um sich heutzutage im Markt positiv abzuheben, müssen Unternehmen einen tadellosen Kundenservice bieten. Damit dieser reibungslos und zur Zufriedenheit der Kundschaft funktioniert, ist die richtige Software ausschlaggebend.   Wie deutsche Unternehmen verschiedener Größe aktuell Software für ihr Kundenengagement nutzen und was Covid-19 hier verändert hat, hat Twilio kürzlich im Customer Engagement Index untersucht. Die Umfrage…

Softwareentwicklung erste Wahl bei Informatikstudenten: Sicherheitsausbildung mangelhaft

Studie zeigt Bildungslücken künftiger Entwickler bei IT-Sicherheit und Programmiersprachen auf. Unter den Informatikstudenten, die gerade ihr Studium abgeschlossen haben, rangiert Softwareentwicklung an erster Stelle bei der Berufswahl. Dies ist das Ergebnis einer Befragung von CloudBees mit 1000 Teilnehmern zwischen 19 und 24 Jahren aus Deutschland, Frankreich, den USA und dem Vereinigten Königreich. 90 % der…

Cloud, Observability, Ende-zu-Ende-Sichtbarkeit und Teambuilding – In vier Schritten zum Vorreiter der Softwareentwicklung

Eine positive Customer Experience hängt zu einem großen Teil davon ab, dass Software und Systeme Höchstleistungen bringen. Daher sind für viele Unternehmen die Entwicklung und Bereitstellung optimierter Software die oberste Priorität. Trotzdem erleben Nutzer noch immer Ausfälle, die sich bei den Unternehmen meist unmittelbar als Umsatzverluste niederschlagen. Es ist also noch ein langer Weg zum optimalen Kundenerlebnis.

Softwareentwicklung mit Low-Code- und No-Code-Tools und Erweiterungen für die SAP Business Technology Platform

SAP bringt neue Tools, Updates und Services auf den Markt, um die Arbeit von Entwicklerinnen und Entwicklern, unabhängig von Qualifikation oder Tätigkeitsschwerpunkt, zu erleichtern. Die neuen Angebote umfassen Low-Code- und No-Code-Tools, ein kostenloses Nutzungskontingent für die SAP Cloud Platform sowie exklusive, kostenlose Lernangebote und weitere Updates für die SAP Business Technology Platform. Dies wurde auf…

Produktivitätszuwachs durch Software Analytics – Die größten Kostenfallen in der Softwareentwicklung und was man dagegen tun kann

Die New Economy der frühen 2000er kündigte sich noch mit einem Donnerschlag an – man denke nur an die Fintechs, die mit ihrer technologiegetriebenen Entwicklung angetreten sind, den Finanzsektor auf den Kopf zustellen. Weitgehend unbemerkt erreicht diese Revolution mittlerweile auch die traditionellen Branchen. So hat selbst Volkswagen angekündigt, seine Marke in Zukunft über die Software zu definieren, und bündelt dazu in der neuen Einheit »Car.Software« die Kompetenz von mehr als 5.000 Digitalexperten. Doch ganz gleich, wo man hinschaut: Von den hoch optimierten Produktionsprozessen der Industrie ist die Softwareentwicklung noch weit entfernt – und das, obwohl die größten Kostenfallen längst bekannt sind.

Die größten Kostenfallen in der Softwareentwicklung  … und was man dagegen tun kann

Die New Economy der frühen 2000er kündigte sich noch mit einem Donnerschlag an – man denke nur an die Fintechs, die mit ihrer technologiegetriebenen Entwicklung angetreten sind, den Finanzsektor auf den Kopf zustellen. Weitgehend unbemerkt erreicht diese Revolution mittlerweile auch die traditionellen Branchen. So hat selbst Volkswagen angekündigt, seine Marke in Zukunft über die Software…

Softwareentwicklung und Fahrzeugtechnik: Sprints treffen auf Integrationsstufen

Wie funktioniert die Kommunikation zwischen einem Ingenieur und einem Softwareentwickler? Für das Internet der Dinge verschmelzen oft Welten. So treffen Abteilungen aufeinander, die vorher nur wenig Schnittstellen hatten. Das agile Arbeiten in 2- oder 10-wöchigen Sprints ist nicht vergleichbar mit den Konstruktionsprozessen eines maschinellen Produkts – könnte man meinen. Erfahren Sie, wie Spannungen zwischen Bereichen…

Internationale Studie zur Softwareentwicklung: Deutschland auf Spitzenplatz

Der »Built to Adapt Benchmark« bewertet Unternehmen aus fünf Branchen und sechs Ländern in ihrer Fähigkeit, Software zu entwickeln, die ihre Innovationsfähigkeit sowie ihren Unternehmenswert steigert [1]. Deutschland belegt dabei in nahezu allen Kategorien die Spitzenposition. Unternehmen aller Branchen und Märkte in der ganzen Welt verändern ihre Geschäftsmodelle durch Softwareinnovation – von Automobilherstellern in Deutschland…

Effiziente Softwareentwicklung ohne Automatisierung unmöglich – Geschwindigkeit der Cloud-Trends setzt Unternehmen unter Zeitdruck

Applikationen beziehungsweise Software und deren kontinuierliche Weiterentwicklung stehen bei einer wachsenden Zahl von Unternehmen zunehmend im Mittelpunkt – und das nicht nur bei IT-Unternehmen. Durch das Voranschreiten der Cloud-Technologien wird dieser Trend noch verstärkt. Unternehmen sind darauf angewiesen schnell und zu vertretbaren Kosten permanent ihre Software anzupassen und zu verbessern. Dies erhöht den Druck auf…

DevSecOps: Unternehmen müssen umdenken, um in der Softwareentwicklung erfolgreich zu sein

Hindernis für die Integration von Sicherheit in die gesamte Softwareentwicklung sei laut der weltweiten Studie die bestehende Unternehmenskultur.   Im Zentrum der weltweiten Studie »Integrating Security into the DNA of Your Software Lifecycle« von CA Technologies stand die Frage, wie sich die Kultur eines Unternehmens auf dessen Fähigkeit auswirkt, Sicherheit in den gesamten Software-Entwicklungsprozess einzubinden.…

60 Prozent der Unternehmen wenden bei der Softwareentwicklung keine Sicherheitstests an

Entwickler sehen Sicherheit gegen Cyberangriffe als Top-Priorität. 40 Prozent der Unternehmen setzten schon bei der Softwareentwicklung auf Sicherheitstests. Das ist ein Ergebnis einer aktuellen Umfrage von Veracode unter Entwicklern und IT-Führungskräften aus Deutschland, dem Vereinigten Königreich und den Vereinigten Staaten [1]. Die Studie unterstreicht, wie wichtig es ist, im Zeitalter von DevOps Entwickler bei Sicherheitsthemen…