Die KI hinterlässt ihre Spuren in zahlreichen Branchen. Aber es überrascht nicht, dass die wahrscheinlich grössten Auswirkungen in der IT zu spüren sind, jener Branche, aus der sie hervorgegangen ist. Der alleinige Einsatz von menschlichen Programmierer*innen gehört immer mehr der Vergangenheit an. Heute setzen IT-Firmen entlang der gesamten Kette der Software-Entwicklung KI-Werkzeuge ein. Das Ergebnis: Ein verbesserter «Flow» beim Programmieren mit schnelleren, einfacheren, effizienteren und resilienteren Entwicklungsprozessen.
Erfahren Sie, was die KI-gestützte Software-Entwicklung ist, wie sie sich von traditionellen Entwicklungsmethoden unterscheidet und welche Herausforderungen damit einhergehen. Wir präsentieren Ihnen ausserdem die neuen Tools, die verschiedenen Anwendungsbereiche sowie viele andere Aspekte des KI-gestützten Engineerings, die zusammen ein aufregendes neues Kapitel in der Software-Entwicklung darstellen.
Definition
Die KI-gestützte Software-Entwicklung setzt KI-Tools und -Techniken im Software-Engineering ein. Die Kombination von menschlichen Fähigkeiten mit den Möglichkeiten der KI beschleunigt die Software-Entwicklung, indem sie wiederkehrende Aufgaben eliminiert. Richtig angewendet kann sie auch die Code-Qualität verbessern. Zum Beispiel können Entwickler mit KI-Werkzeugen Code generieren und analysieren, Bugs aufspüren und beseitigen, Workflows optimieren und Dokumentationen erstellen.
Und die Einsatzmöglichkeiten von KI-Tools sind nicht auf die Software-Entwicklung beschränkt. Sie können z.B. im Projektmanagement unterstützen und so den kompletten Software-Lebenszyklus beschleunigen.
Schon seit einer Weile ist die KI in der Software-Entwicklung und in IT-Workflows im Einsatz, hauptsächlich in Form von Tools zur Code-Vervollständigung und -Automatisierung. Manche Sicherheitswerkzeuge, die zur KI aufgebauscht werden, benutzen Techniken des Mustervergleichs, die altbekannten Methoden zur Bedrohungsüberwachung und Angriffserkennung ähneln.
Der Aufstieg der Open-Source-Software hat die Software-Entwicklung kostengünstiger und die KI-Technologie einem grösseren Publikum zugänglich gemacht.
In den Jahren 2018 und 2019 fingen grosse und kleinere Anbieter an, KI-gestützte Werkzeuge für die Software-Entwicklung anzubieten.
Im Jahr 2020 wurden die Auswirkungen von KI-gestützten Tools auf den Entwicklungsprozess immer deutlicher, z.B. als man Bugs sehr früh erkennen und Code doppelt so schnell erstellen konnte wie ein Mensch allein.
Heutzutage ist die Frage nicht, ob man KI-gestützte Tools einsetzen soll, sondern wie man sie am besten einsetzt und dabei zwischen Produktionszuwachs und Risiken abwägt.
Schauen wir mal, wie die KI-gestützte Software-Entwicklung im Vergleich zu früheren Zeiten den Prozess verändert hat.
|
Traditionelle Software-Entwicklung |
Software-Entwicklung mit KI |
Sammeln von Informationen |
|
Nutzung grosser Mengen an Daten über reale Anwendungen des Rahmenkonzepts, der Bibliothek usw. anhand von KI |
Effizientes Entwickeln |
Sich auf die Verfügbarkeit von Kollegen verlassen, wenn man nicht mehr weiter weiss |
Zu jeder beliebigen Zeit jede beliebige Frage stellen und den Flow erhöhen |
Vorlagen |
Vordefinierte Code-Bausteine | Einfach eine Vorlage anfordern |
Code-Schnipsel generieren und finden |
Von Grund auf neu programmieren, Schritt für Schritt, googeln |
Mithilfe von LLM Code-Schnipsel generieren, vervollständigen und finden |
Der Anfang als Entwickler*in |
Sich auf die Verfügbarkeit von Mentoren verlassen, um die Programmierfähigkeiten zu verbessern |
Sich einen Reichtum an spezifischen Informationen zunutze machen, um sich in ein Thema einzuarbeiten |
Mit KI haben Sie einen neuen Assistenten, der eine riesige Menge bestehender realer Anwendungen einsetzen kann. Vorbei sind die Zeiten, in denen man ein Rahmenkonzept, eine Sprache, eine Bibliothek kennen, das Internet durchforsten oder sich umhören musste, um die erforderlichen Informationen zu bekommen.
Ihr neuer Assistent ist immer zur Stelle, um alle Fragen zu beantworten, wenn Sie im Entwicklungsprozess nicht mehr weiterkommen. Sie müssen sich nicht mehr auf die Verfügbarkeit Ihrer Kollegen verlassen.
Die generative KI hat es drauf: Im Gegensatz zu einem Code-Generator mit vordefinierten Vorlagen kann die KI anhand des des grossen Sprachmodells (Large Language Model, LLM) Textbausteine erstellen, z.B. eine React-Komponente oder ein einfaches AWS-Setup mit Terraform.
Sie können das LLM) und die Machine-Learning-(ML-)Software genau auf Ihre Projekt- oder Produktinformationen abstimmen. Dadurch können Sie nicht nur Code-Schnipsel generieren und vervollständigen, sondern auch ohne manuelle Schritte relevante Schnipsel in einer Datenbank mit ähnlichem Code finden.
Wenn Sie unerfahren sind und gerade in der Software-Entwicklung anfangen, beantwortet Ihnen die generative KI jede Frage und bietet Zugang zu einem Reichtum an Informationen, damit Sie sich schnell in relevante Themengebiete einarbeiten können. Natürlich können Sie nach wie vor einen Vorgesetzten fragen (wenn Sie einen finden).
KI in der Software-Entwicklung
KI-Werkzeuge sind ein Gamechanger in der Software-Entwicklung. Sie ermöglichen Automatisierungen, bieten Unterstützung und intelligenten Input über verschiedene Entwicklungsphasen hinweg. Dadurch arbeiten die Entwickler effizienter, produzieren höherwertigen Code und liefern schliesslich die Software schneller ab. So werden sie den stetig steigenden Anforderungen der Branche gerecht. Hier ein paar praktische Beispiele von KI in der Software-Entwicklung:
KI-gestützte Tools bringen Sie in den «Flow», indem sie Ihnen spezifische Code-Vorschläge unterbreiten. Das Einzige, was Programmierer*innen tun müssen, um loszulegen, ist, in einem separaten Fenster oder in einer integrierte Entwicklungsumgebung (IDE) eine Prompt-Eingabe zu machen. Von bestimmten Applikationen wie GitHub abgesehen kennen die Werkzeuge jedoch nicht die spezifischen Bedürfnisse Ihres Projekts oder Ihres Unternehmens. Also liegt es an Ihnen, den Kontext über Prompt-Eingaben bereitzustellen. Dies umfasst Informationen darüber, wer den Code verwenden soll, an welche Schnittstellen die Software angebunden ist, welche Daten verwendet werden usw.
Sie müssen die Anweisungen oder Fragen (Prompts) gestalten, die ein Modell des Natural Language Processing (NLP) verwendet, um spezifische Antworten zu generieren. Werkzeuge der generativen KI eignen sich ideal dafür, einfache Prompts und ihre Verfeinerungen zu beantworten.
Man kann manche Modelle der generativen KI dazu trainieren, in Code-Zeilen potenzielle Probleme zu entdecken. Dazu müssen Sie nur den bestehenden Code kopieren und einfügen und das Tool darum bitten, Bugs und Performance-Probleme in den Code-Schnipseln zu ermitteln. Das Tool analysiert nicht nur den Code, sondern identifiziert die Grundursache und macht Vorschläge, wie man den Code verbessert. Zudem lässt sich generative KI als Predictive-Analytics-Lösung einsetzen, um zu ermitteln, wo im Code Bugs auftreten können, und Vorschläge für vorbeugende Korrekturen zu erhalten.
Nutzen Sie die generative KI, um Vorschläge für verbesserte Code-Strukturen oder Entwurfsmuster zu erhalten. Dies erleichtert die Wartung Ihres Codes und verringert die Fehleranfälligkeit, da das Tool potenzielle Probleme erkennen und Vorschläge machen kann, die häufigen Fehlern und Performance-Einschränkungen vorbeugen.
KI-Modelle können informative Code-Zusammenfassungen erstellen, die Ihnen die Funktion und den Zweck von Code-Segmenten und damit die Schlüsselkonzepte zu verstehen helfen. Ausserdem generieren diese Tools für Code-Abschnitte automatisch Kommentare, die deren Logik und Funktion erläutern.
Um die Code-Qualität aufrechtzuerhalten, muss man eine Code-Dokumentation mitsamt Kommentaren und Docstrings erstellen. Automatisieren Sie diesen Prozess mit einer generativen KI, die beschreibende Kommentare für Funktionen und Klassen verfasst. Dies macht es Ihnen und Ihren Kolleg*innen einfacher, Code zu verstehen, zu warten und zu korrigieren.
Ziehen Sie generative KI-Werkzeuge für mehrsprachige Projekte in Betracht. Sie helfen dabei, Code in andere Programmiersprachen zu übersetzen, was das Risiko von Übersetzungsfehlern reduziert.
Die Fähigkeiten der generativen KI reichen von der Testdatengenerierung, Testautomatisierung und intelligenten Testdurchführung bis hin zur Fehlerprognose, dem Testumgebungsmanagement und der Erkennung von Ausführungsanomalien auf der Basis von Produktionsdaten. Mit anderen Worten: Die KI-basierte Verifizierung hilft Ihnen, bei geringerem manuellem Aufwand und reduzierter Fehleranfälligkeit die Testeffizienz, -genauigkeit und -abdeckung zu verbessern.
Generative KI kann Veränderungen im Code analysieren und bei Code-Überprüfungen Vorschläge einbringen. Mit solchen Tools entdecken Sie potenzielle Probleme früh im Entwicklungsprozess. Sie können auch während des Programmiervorgangs begleitend behilflich sein und mit Vorschlägen dafür sorgen, dass Coding-Standards und Best Practices eingehalten werden.
Business Use Cases der KI-gestützten Software-Entwicklung
Wie oben dargelegt optimieren KI-gestützte Tools jeden einzelnen Schritt im Software-Entwicklungsprozess. Aber die Geschichte ist damit nicht zu Ende. Die folgenden Use Cases zeigen auf, wie auch die Geschäftsabläufe als Ganzes von diesen Tools profitieren.
Anforderungsanalyse
Die KI kann Anforderungen von Dokumenten in natürlicher Sprache extrahieren und analysieren, was die erste Phase der Software-Entwicklung vereinfacht.
Testing
Die KI kann Testfälle generieren und durchführen, Grenzfälle identifizieren und automatisch Test-Suites aktualisieren, wenn sich die Code-Basis weiterentwickelt. Darüber hinaus hilft sie dabei, wirklichkeitsnahe synthetische Testdaten zu erschaffen, indem sie Muster in den Produktionsdaten analysiert.
Software-Sicherheit
Generative KI sucht Code nach Sicherheitslücken ab, spürt die Muster bösartiger Verhaltensweisen in den Runtime-Daten (Monitoring, Logs usw.) auf und macht Vorschläge, wie die Sicherheit verbessert werden kann.
Vorausschauende Wartung
Bei eingebetteter Software kann die KI Geräteausfälle und Performance-Einbussen vorhersagen, was eine proaktive Wartung ermöglicht und Ausfallzeiten minimiert.
CI/CD
Die KI optimiert CI/CD-Pipelines, indem sie Engpässe im Implementierungsprozess ermittelt und vorhersagt, welche Code-Veränderungen Tests wahrscheinlich bestehen werden. Zudem vergleicht die KI nicht-funktionale Messungen von der Testdurchführung bis zur Produktion, um negativen Auswirkungen auf die Implementierung vorzubeugen.
Analyse des Nutzerverhaltens
Die KI analysiert Nutzerinteraktionen und Feedback, um Erkenntnisse zur Priorisierung zukünftiger Funktionen zu erhalten und eine Verbesserung der Nutzererfahrung zu ermöglichen.
Wo die KI-gestützte Software-Entwicklung Ihr Geschäft unterstützen kann |
|
Automatisierung von nicht entwicklungsbezogenen Aufgaben |
Projektmanagement |
|
|
Datenanalyse und -erkenntnisse
Die generative KI kann grosse Mengen an Projektdaten analysieren, darunter Terminpläne, Budgets und Fortschrittsberichte, um Trends, Anomalien und potenzielle Probleme zu ermitteln. Sie leitet aus historischen Projektdaten Erkenntnisse ab, die Projektleitern bei der Entscheidungsfindung behilflich sind.
Risikobewertung und -minderung
Die KI kann Projektrisiken einschätzen, indem sie historische Daten analysiert und potenzielle Risiken sowie deren Auswirkungen auf Zeitplanung und Budgets einschätzt. Zudem kann sie Strategien zur Risikominderung konzipieren.
Terminplanung und Ressourcenzuweisung
Die generative KI hilft bei der Optimierung von Projektzeitplänen und der Ressourcenzuweisung, indem sie verschiedene Einschränkungen wie die Verfügbarkeit von Ressourcen und Abhängigkeiten von Aufgaben berücksichtigt. Auf der Basis von verschiedenen Szenarien und Einschränkungen kann sie auch alternative Projektzeitpläne erstellen.
Automatisierte Berichterstattung
KI-Tools sind in der Lage, Projektstatusberichte und Dashboards zu generieren, mit denen Projektmanager bei der Datensammlung und -formatierung Zeit sparen. Sie bieten Updates in Echtzeit über den Projektfortschritt, die Budgetnutzung und andere wichtige Leistungsindikatoren.
Qualitätssicherung
Die KI assistiert bei der Qualitätssicherung, indem sie die Projektdokumentation, den Code und andere Lieferobjekte analysiert, um potenzielle Probleme oder Abweichungen von den Standradvorgaben zu identifizieren.
Dokumentation und Wissensmanagement
Da sie automatisch projektbezogene Dokumente kategorisieren und organisieren, erleichtern KI-Tools Projektmanagern den Zugang zu relevanten Informationen. Die Tools können auch Vorlagen und Zusammenfassungen für die Projektdokumentation erstellen.
Kontinuierliches Lernen
Die KI-Tools sammeln Zusammenfassungen und Empfehlungen aus Forschungsarbeiten, mit denen Projektmanager bezüglich Best Practices, aufkommender Trends und neuer Methoden des Projektmanagements auf dem Laufenden bleiben.
Seitdem grosse und kleine Software-Anbieter 2018 und 2019 anfingen, KI-gestützte Entwicklungstools zu lancieren, ist die Branche mit KI-basierten Kopiloten für die Software-Entwicklung regelrecht überflutet worden. Hier führen wir die gebräuchlichsten mit ihren Eigenschaften auf:
GitHub Copilot + Chat fokussieren sich hauptsächlich darauf, kontextbasiert und mithilfe von bestehenden Bausteinen Code zu generieren. Sie sind auf Milliarden von Code-Zeilen trainiert und können für Entwickler*innen als Partnerprogrammierer agieren, die automatisch Code generieren, Vorschläge machen und Code-Zeilen selbstständig vervollständigen. GitHub Copilot erfordert ein kostenpflichtiges Abonnement.
Ähnlich wie GitHub Copilot bietet Tabnine optionale Inline-Code-Vorschläge, die parallel zu den Eingaben der Entwickler eingeblendet werden, sowie die Vervollständigung von Code-Zeilen auf der Basis von Mustern und Code-Schnipseln. Es kann auch natürliche Sprache in Programmiersprache übersetzen. Ausserdem bietet Tabnine eine einzigartige Funktion an, die es Nutzenden erlaubt, ihre eigenen Modelle zu trainieren, die sie dann entweder in der Cloud oder im Offline-Modus betreiben können. Mit anderen Worten: Die KI lässt sich lokal ausführen. Im Gegensatz zu GitHub Copilot gibt es bei Tabnine sowohl eine kostenlose als auch eine kostenpflichtige Version.
Als kostenfreie Open-Source-Alternative für Entwickler bietet Codium eine anpass- und erweiterbare Umgebung für die Code-Bearbeitung. Zu den Funktionen gehören IntelliSense, Fehlerbehebung und die Integration der Versionskontrolle. Codium unterstützt eine Reihe an Programmiersprachen und verfügt über ein breites Ökosystem an Erweiterungen. Es ist eine von der Community betriebene Version des Visual Studio Code Editors von Microsoft.
Hier sind die sechs grössten Vorteile von KI-Tools für Unternehmen, einschliesslich konkreter Beispiele und unserer Einschätzung:
Mit KI bekommen Entwickler*innen Unterstützung bei Routineaufgaben wie der Code-Vervollständigung, der Erstellung von Dokumentationen und der Fehlererkennung, wodurch sie produktiver werden und mehr Zeit für kreative Problemlösungen haben. Der komplette Prozess der Software-Entwicklung wird beschleunigt, der «Flow» erhöht.
Beispiel: Ein kontrolliertes Experiment von McKinsey zeigte, dass Entwickler*innen mit der Unterstützung von generativer KI nicht nur schneller arbeiteten, sondern auch glücklicher waren.
Was davon zu halten ist: Zwar können wir diese Beobachtung bestätigen, aber es hängt stark von der Aufgabe und der Berufserfahrung der Entwickler*innen ab. Dienstältere Programmierer*innen sind mit dem Kontext, der Umgebung, den Rahmenbedingen usw. schon so gut vertraut, dass sie selbst ein vergleichbares «Flow»-Niveau erreichen. Laut der Studie profitieren komplexere Aufgaben, die gewöhnlich von erfahreneren Mitarbeitenden erledigt werden, nicht allzu viel von generativer KI – noch nicht.
Mit der Automatisierung und Optimierung anhand von KI lassen sich Kosteneinsparungen erzielen, da sie die Notwendigkeit sich wiederholender manueller Arbeitsschritte reduzieren und Entwicklungsfehler minimieren.
Beispiel: Im Experiment von McKinsey konnten KI-Tools bei manchen Aufgaben, wie beispielsweise der Code-Dokumentation, die Effizienz um bis zu 50% steigern.
Was davon zu halten ist: Es gibt mehrere Aufgabenbereiche, die in erheblichem Masse von den Fähigkeiten der generativen KI profitieren können. Jedoch hängt der Nutzen von der Art der Aufgabe ab. Unkomplizierte Aufgaben, die eher Schreibfähigkeiten als Denkvermögen erfordern, profitieren am meisten.
KI untersucht grosse Datenmengen und liefert so Einblicke und Erkenntnisse, mit denen Unternehmen fundierte Entscheidungen zu Projektprioritäten, Ressourcenzuteilung und Applikationsdesign treffen können.
Beispiel: Mit geschicktem Prompting bringen Sie die KI dazu, Optionen für eine fundierte Entscheidungsfindung zusammenzustellen. Je nach Kontext kann die KI mit ihrer Kreativität Optionen nennen, oder Sie können das deduktive Modell vorgeben, mit dem Sie zu einer Entscheidung gelangen möchten.
Was davon zu halten ist: Hier ist Vorsicht angezeigt. Halluzinationen, d.h. nicht wahrheitsgetreue Aussagen der KI, sind eine ernstzunehmende Sache, und es ist von grösster Wichtigkeit, die Quellen zu überprüfen. Wenn generative KI für die Wissenssammlung und Entscheidungsfindung eingesetzt wird, ist zudem ein gewisses Mass an Expertise erforderlich, um die Plausibilität der Resultate einzuschätzen.
KI-gestützte Software kann Nutzerdaten und -verhalten untersuchen, um Bedienoberflächen und Funktionen zu personalisieren, was eine ansprechendere und nutzerfreundlichere Erfahrung ermöglicht. Ausserdem können KI-basierte Chatbots und virtuelle Assistenten den Nutzersupport und die Interaktion innerhalb von Software-Applikationen verbessern.
Beispiel: Nutzerdaten von Applikationen, die mit Monitoring- und Observability-Tools gesammelt werden, lassen sich mit KI analysieren, um Wege aufzuzeigen, wie man die Applikation verbessert und so mehr Nutzer anzieht.
Was davon zu halten ist: Neben Nutzerbefragungen mit Interviews und Feedback bietet dieser Ansatz der Datenanalyse quantitative Erkenntnisse über das Nutzerverhalten innerhalb einer Applikation. Zukünftig wird die generative KI womöglich in der Lage sein, eine Applikation während des Betriebs augenblicklich an die Verhaltensweise des individuellen Nutzenden anzupassen. Diese Verschiebung zu automatisch und verhaltensbasiert personalisierten Bedienoberflächen und Funktionen wird sehr interessant zu beobachten sein.
Indem die KI Schwachstellen der Sicherheit und Muster bösartigen Verhaltens erkennt, können Unternehmen sich proaktiv Bedrohungen der Sicherheit zuwenden.
Beispiel: Azure Sentinel, eine Cloud-native SIEM- und SOAR-Lösung, wendet mit ihren KI-Funktionen Regeln an.
Was davon zu halten ist: Um Regeln mit Azure Sentinel zu erstellen, muss man die Kusto-Query-Programmiersprache lernen und Sicherheitskonzepte verstehen. Mit einer KI-basierten Schnittstelle für einen Kopiloten lassen sich in natürlicher Sprache die gewünschten Regeln formulieren, die der Kopilot dann als Code implementiert.
Die KI kann einen Beitrag dazu leisten, dass eine Software branchenspezifischen Verordnungen und Standards gerecht wird, z.B. mit Algorithmen, die kontinuierlich Gesetzesänderungen mitverfolgen, oder indem sie mit bestimmten Funktionen oder Komponenten verbundene Risiken bewertet und Code-Fragmente identifiziert, die gesetzliche Standards verletzen könnten. Dies nennt sich auch «KI-gestützte Überwachung der regulatorischen Compliance».
Beispiel: Compliance-Anforderungen werden normalerweise in natürlicher Sprache formuliert. Wie beim Beispiel von Azure Sentinel kann die generative KI diese Regeln in Muster korrekten Verhaltens übersetzen. Daraufhin können KI-Algorithmen Abweichungen von diesen Mustern erkennen.
Was davon zu halten ist: Unternehmen in hochregulierten Branchen sowie ihre Zulieferer kämpfen mit den stetig steigenden Compliance-Anforderungen. Bei den Vorschriften den Überblick zu behalten und sie entlang der gesamten Lieferkette zu implementieren, ist ein sehr komplexes Unterfangen. Die KI unterstützt bei diesem Prozess, indem sie Daten erfasst, natürliche Sprache verarbeitet und Artefakte analysiert, um dann Empfehlungen für eine verbesserte Compliance auszusprechen.
Und hier sind unserer Erfahrung nach die grössten Vorteile von KI-Tools für Software-Entwickler:
KI-Tools sind ideal dazu geeignet, Entwicklern Routineaufgaben abzunehmen. Das erhöht ihren «Flow», ihre Produktivität, die Zeit, die sie komplexeren Aufgaben widmen können – und ihre Zufriedenheit.
Der verbesserte Flow bedeutet auch, dass Entwickler*innen unabhängig von ihrer Senioritätsstufe von KI-Tools profitieren: Juniors können ihre Fähigkeiten verbessern (Code-Schnipsel erstellen, bestehenden Code erklären), während Seniors, die die Grundlagen beherrschen, Unterstützung bei anspruchsvolleren Unterfangen erhalten.
Im Idealfall müssen Techniker*innen und Entwickler*innen nicht mal die integrierte Entwicklungsumgebung verlassen – da wesentlich weniger Anlass besteht, auf Google oder anderswo, z.B. auf stackoverflow oder in der internen Dokumentation, nach Lösungen zu suchen. Zudem können sie schnell und einfach Hilfe erhalten, wenn ein Bug sich nicht so leicht finden lässt.
KI-Tools haben definitiv einen Einfluss auf die Arbeitsweise von Entwickler*innen. Es hat mehr mit einem Bewusstseinswandel zu tun als mit der zugrundeliegenden Technologie. Aber werden diese Tools letztlich breite Akzeptanz finden? Schliesslich besteht bei Experimenten mit KI in der Software-Entwicklung das Risiko, dass dabei schlechter Code entsteht, genauso wie ein Mensch schlechten Code produzieren kann.
Generative KI-Tools bringen bei dem als Trainingsdaten verwendeten Code die Sicherheitsmängel und Fehlkonfigurationen zum Vorschein. Sicherheitsbedenken gibt es auch bezüglich des Ursprungs und der Sensibilität der Daten, die zum Training von KI-Systemen eingesetzt werden. Wenn Unternehmen diese Risiken reduzieren wollen, müssen sie KI-generierten Code wie von Menschen geschriebenen Code behandeln und durchweg die gleichen Richtlinien zu Sicherheit und Handhabung anwenden.
Beim Gebrauch von KI-basierten Tools Dritter sollten Entwickler*innen die Datenschutzregelungen und allgemeinen Geschäftsbedingungen überprüfen. Dies ist entscheidend, um zu verstehen, wie diese Tools mit Daten umgehen. Es könnte sein, dass der Anbieter die eingegebenen Aufforderungen und Antworten speichert – versuchen Sie herauszufinden, wie lange die Daten aufbewahrt und ob sie anonymisiert werden.
Wenn Sie bei einem KI-Tool Prompts eingeben, um den Entwicklungsprozess zu beschleunigen:
Entwickler*innen sollten auch die ethischen Implikationen von Prompts berücksichtigen. Vermeiden Sie es, diskriminierende, anstössige oder schädliche Inhalte zu generieren. KI-Modelle verstärken gelegentlich etwaige Voreingenommenheiten in den Trainingsdaten. Seien Sie sich auch im Klaren darüber, dass Sie mit ethischen Fragen oder Reputationsschäden konfrontiert werden können, wenn Sie einen Code-Schnipsel verwenden, der durch Dritte urheberrechtlich geschützt ist.
Und wo wir von Entwickler*innen sprechen – werden Sie bald überflüssig sein, wie es die Lobgesänge auf die KI andeuten?
Eindeutig nein. Generative KI-Tools gehen mit bestimmten Risiken und Einschränkungen einher. Der Code, den sie erstellen, ist nicht immer von allerhöchster Qualität. Daher werden auch weiterhin Entwickler*innen gebraucht: vom Einfachen – z.B. Code überprüfen – bis insbesondere zum Anspruchsvollen, wie für die Verwaltung komplexer Systeme in grossen Unternehmen, wofür es Einfallsreichtum und Kreativität braucht. KI dient am besten dazu, Entwickler*innen zu unterstützen, und nicht, sie zu ersetzen. Das hilft Unternehmen nicht nur dabei, mit der bestehenden Belegschaft zu skalieren, sondern auch den Fachkräftemangel abzufedern.
Ein Grund für Probleme mit Code, der von KI-Tools generiert wurde, ist die Voreingenommenheit in den Trainingsmodellen und der Datenqualität. Man muss LLMs mit enormen Mengen an Trainingsdaten füttern, damit sie Sprachmuster begreifen können. Die Resultate hängen in hohem Masse von den Daten ab, mit denen sie trainiert werden. Dementsprechend verstärken LLMs alle Probleme, die bereits in den Trainingsdaten vorliegen, seien es Sicherheitsmängel oder Voreingenommenheiten oder Fehler. Das kann zu Modellen führen, die diskriminierendes Verhalten zeigen, z.B. das Aussprechen voreingenommener Empfehlungen. Mit anderen Worten: Die Qualität der Trainingsdaten wirkt sich erheblich auf die Leistung des Modells aus.
Die rauen Mengen an Daten, die für das Trainieren von KI-Modellen nötig sind, schüren auch Bedenken im Hinblick auf Urheberrechte und Angelegenheiten des geistigen Eigentums. Wo kommen die Daten her, und wem gehören sie? Manche generative KI-Tools, wie Tabnine, stellen sicher, dass der in den Trainingsdaten verwendete Code lizensiert ist. ChatGPT beispielsweise wurde mit massenhaft Daten trainiert, die aus dem Internet stammen. Was ist, wenn diese Daten geschützte Algorithmen enthalten, die dann in den Arbeitsresultaten des Tools wiederzufinden sind? In der Tat sind mehrere US-Unternehmen für generative KI mit rechtlichen Schritten konfrontiert: StableDiffusion, eine App, die Bilder generiert, ist von Getty Images verklagt worden. Microsoft, GitHub und OpenAI sind mit einer Sammelklage konfrontiert.
Die Einführung einer KI-gestützten Entwicklung in ein mittelständisches Unternehmen kann ein transformativer und komplexer Prozess sein. Die folgenden Schritte erleichtern Ihnen den Einstieg:
Schweizer Unternehmen sind wegen Bedenken zu Sicherheit und Datenschutz äusserst vorsichtig in der Anwendung KI-gestützter Tools, da diese Dienste einmal mehr «Blackboxes» von US-Unternehmen sind. Ungeachtet dieser Vorbehalte bezüglich Privatsphäre und Vertraulichkeit experimentieren sie dennoch mit diesen Tools. Zudem werden aktuelle LLMs mit vielfältigen Datensätzen trainiert. Einerseits hilft dies dabei, Antworten auf allgemeine Fragen zu bekommen. Andererseits fehlen bei diesem Ansatz unternehmensspezifische Informationen (Programmierstil, Sicherheitsmuster usw.), die im Kontext eines bestimmten Projekts relevant sein könnten.
Unternehmen, die ernsthaft an KI-Tools interessiert sind, um ihre Software-Entwicklung voranzutreiben, werden Enterprise-Lösungen integrieren, z.B. ChatGPT Enterprise, Azure OpenAI Service und Copilot Enterprise. Solche Business-Lösungen helfen, ihre Bedenken zu Datenschutz, Vertraulichkeit, Sicherheit usw. zu zerstreuen. Ein bemerkenswertes Detail: Microsoft hat sogar angekündigt, im Falle von Urheberrechtsverletzungen Unterstützung zu leisten.
Wenn man die Vorteile für Produktivität, Flow, Projekte sowie die Kunden- und Mitarbeiterzufriedenheit berücksichtigt, sollte die Stossrichtung klar sein: Alle Mitarbeitenden im Software-Entwicklungszyklus bekommen einen virtuellen Assistenten für die KI-basierte Paarprogrammierung.
Die Möglichkeiten der KI-gestützten Software-Entwicklung bei jedem Schritt und in jedem Aspekt des Entwicklungsprozesses sind ohne Zweifel sehr vielversprechend. Dienstältere Programmierer*innen finden mehr Zeit für interessantere kreative Unterfangen, indem sie Routineaufgaben an KI-Tools und jüngere Mitarbeitende abtreten können, die wiederum zu anspruchsvolleren Aufgaben befähigt werden. Geschäftsleitungen werden gewiss den positiven Effekt zu schätzen wissen, den produktivere Programmierer*innen und optimierte Projektabläufe auf die Bilanzen haben. Und nicht zuletzt profitieren auch die User von innovativeren Produkten, die sich zudem automatisch an ihre Bedürfnisse anpassen.
Dieses Potenzial für eine stark erhöhte Produktivität ist auch die häufigste Antwort auf besorgte Stimmen, die vor Massenentlassungen in der IT warnen. Vor die Wahl zwischen erhöhte Produktivität mit folglich erhöhten Einnahmen und Kostenreduktion gestellt, würde es nicht verwundern, wenn viele Unternehmen sich dafür entscheiden, ihr Angebot und die Geschäftsmöglichkeiten zu erweitern. Darüber hinaus könnten KI-Tools kleinen und mittelständischen Unternehmen, die verzweifelt nach Fachkräften suchen, Erleichterung verschaffen.
Jedoch müssen sich diese zugegebenermassen optimistischen Mutmassungen über die Zukunft erst noch bewahrheiten. Viele Unternehmen, auch in der Schweiz, warten noch auf Produkte und Dienste von etablierteren Anbietern, damit sie sich der Sicherheit ihrer Geschäftsgeheimnisse und persönlicher Daten gewiss sein können. Es bleibt daher abzuwarten, was die Zukunft im Zeitalter der KI für die Software-Entwicklung bringt. Aber für Projektmanager*innen, Entwickler*innen und Nutzer*innen scheint schon eines klar zu sein: Es stehen interessante Zeiten bevor.
[snippet_article_cta id="article-cta-1"]
Was ist KI-gestützte Software-Entwicklung, und wie wird sie angewendet?
Die KI-gestützte Software-Entwicklung integriert KI-Tools in den Entwicklungsprozess. Mit KI-Tools können Entwickler*innen Code erstellen und analysieren, Bugs aufspüren und beheben, Arbeitsabläufe optimieren und Dokumentation erstellen. Der Einsatz von KI-basierten Tools ist jedoch nicht auf die Software-Entwicklung begrenzt. Sie können z.B. auch das Projektmanagement unterstützen.
Wieso wird die KI-gestützte Software-Entwicklung die Branche in den kommenden Jahren verändern?
Unternehmen, die KI einsetzen, um Produkte und Dienstleistungen zu verbessern, müssen mit den neusten Innovationen Schritt halten. Ausserdem wird die KI-gestützte Software-Entwicklung die IT-Branche aufrütteln, indem sie es Unternehmen ermöglicht, spezifische Tätigkeiten ohne fachkundige Unterstützung auszuführen, was Zeit und Geld spart. Die Transformation zur KI lässt sich beispielsweise bereits im digitalen Handel erkennen.
Wie unterscheidet sich die KI-gestützte Software-Entwicklung von der traditionellen Applikationsentwicklung?
Indem sie mehrere Schritte des Software-Entwicklungszyklus automatisiert, verbessert sie die Erfahrung aller Beteiligten am Prozess – von den Programmierer*innen und Administrator*innen bis hin zu den Sicherheitsanalyst*innen und Tester*innen.
Wo stehen Schweizer Unternehmen bei diesem Thema?
Obwohl Schweizer Unternehmen zweifellos für Vorzüge der KI-gestützten Software-Entwicklung offen sind, haben sie bei den Produkten kleinerer Anbieter noch Vorbehalte. Viele Unternehmen in der Schweiz experimentieren zwar schon mit KI-Tools, warten jedoch auf Angebote etablierter und vertrauenswürdiger Anbieter, bevor sie diese Hilfsmittel im grossen Massstab einführen.
Wie wird sich die KI-gestützte Software-Entwicklung auf Software und digitale Produkte auswirken?
KI-gestützte Software und das digitale Produktengineering (DPE) sind eine perfekte Kombination: Während DPE neue Technologien zu traditionellen Stacks für die Software-Entwicklung hinzufügt, liegt es an der KI, die Innovation voranzutreiben und Kosten zu reduzieren.
Wie wird sich die Integration von KI in die Software-Entwicklung auf Privatsphäre und Compliance auswirken?
Zum jetzigen Zeitpunkt ist das noch ein Graubereich, insbesondere im Hinblick auf Code und automatische Vervollständigungsvorschläge für bestehenden Code. Der Einsatz von KI, um Vorschläge für bestehenden Code zu machen, könnte zu Rechtsstreitigkeiten führen, wenn die Code-Vorschläge Open-Source-Code ähneln, der schon von Lizenzen geregelt wird, die eine Wiederverwendung verbieten. In den kommenden Jahren ist eine Verbesserung des Angebots an KI-Tools zu erwarten, die die rechtlichen Implikationen klären sollte.
Künstliche Intelligenz (KI) |
KI ist die Nachahmung von Prozessen und Fähigkeiten des menschlichen Bewusstseins, vorwiegend durch Computer. Mit verschiedenen Technologien und Techniken, die von maschinellem Lernen (ML) bis zur Computerlinguistik (natural language processing, NLP) reichen, können KI-Systeme Daten analysieren, Entscheidungen fällen und andere Aufgaben durchführen, die zuvor menschliche Intelligenz erforderten. |
Digitale Produktentwicklung (DPE) |
DPE ist die Anwendung von Praktiken und Prinzipien des Ingenieurwesens im Design, der Entwicklung und der Optimierung von vorwiegend Software-basierten Produkten und Lösungen. |
Generative KI |
Generative KI ist eine Kategorie von Systemen künstlicher Intelligenz, die selbstständig Inhalte generieren können, in erster Linie Texte und Bilder. Mit hochentwickelten Algorithmen können sie Muster und Beziehungen in Daten verstehen und auf der Basis dieser Erkenntnisse neue Inhalte erschaffen. |
Integrierte Entwicklungsumgebung (integrated development environment, IDE) |
Eine IDE ist eine Software-Applikation, die die Prozesse zur Erstellung, Bearbeitung, Testung und Fehlerbehebung von Software-Code optimiert. Dies wird erreicht, indem integrierte Tools und Funktionen und somit eine umfassendes Rahmensystem bereitgestellt werden, die die Produktivität fördern und den Entwicklungsablauf vereinfachen. |
Grosses Sprachmodell (large language model, LLM) |
LLMs sind eine Art von KI-Modell, die auf Anwendungen im Zusammenhang mit der menschlichen Sprache spezialisiert sind. Mithilfe von riesigen Textmengen und Methoden des Deep Learning wie neuronalen Netzwerken haben LLMs beeindruckende Fähigkeiten entwickelt, natürliche Sprache zu verarbeiten, d.h. zu verstehen und zu generieren. |
Maschinelles Lernen (machine learning, ML) |
Als Unterkategorie der KI konzentriert sich ML auf die Entwicklung von Algorithmen und Modellen, die anhand von grossen Datenmengen trainiert und verbessert werden können. So passen sich Computer neuen Informationen an, lernen, Muster zu erkennen, Folgerungen zu ziehen, Prognosen zu stellen, Entscheidungen zu fällen und andere Aufgaben durchzuführen, für die sie nicht explizit programmiert wurden. |
Computerlinguistik (natural language processing, NLP) |
NLP ist ein Bereich der KI, der sich auf die Interaktion zwischen Mensch und Maschine über die Sprache konzentriert. Spezifisch gestaltete Algorithmen und Modelle bedienen sich grosser Sprachdatenbanken, damit Computer in die Lage versetzt werden, nicht nur die menschliche Sprache zu verstehen und zu interpretieren, sondern auch Texte zu generieren, die natürlich, sinnvoll und kontextbezogen sind. |