Alan Zeichick | Senior Writer | 8. Oktober 2024
Generative KI kann dabei helfen, Sonette im Stil von Shakespeare zu schreiben und anschließend auf Knopfdruck einen umsetzbaren Geschäftsplan auf der Grundlage von Rohdaten und Analysen zu entwerfen. Angesichts der richtigen Inputs und Schulungen kann GenAI sogar dazu beitragen, ein Produktkonzept, einen eingängigen Werbe-Jingle, ein Logo und einen Marketingplan mit Preisberatung zu erstellen. Es ist also nicht langwierig, GenAI Softwareentwicklungsteams über den gesamten Entwicklungslebenszyklus hinweg zu unterstützen oder sogar Code in Java, C++, JavaScript, SQL oder einer beliebigen Sprache zu schreiben, die Ihr Unternehmen bevorzugt.
Für das GenAI-System unterscheidet sich das Codieren nicht vom Schreiben eines Gedichts mit einem bestimmten Reimschema und Metrum in Englisch, Spanisch oder Latein. Und die Verwendung von GenAI zur Unterstützung des Softwareentwicklungsprozesses stellt eine enorme Chance dar: PwC-Analysten sagen, dass ein Entwicklungsteam durch die Zusammenarbeit mit GenAI-Codegenerierungstools derzeit Leistungsvorteile von 20 bis 50% erzielen kann. Lassen Sie uns sehen, wie es funktioniert.
Generative künstliche Intelligenz (KI) oder GenAI ist eine sich schnell entwickelnde Technologie, mit der neue Inhalte durch Extrapolation aus Trainingsdaten erstellt werden können. GenAI-Modelle arbeiten, indem sie ein künstliches neuronales Netzwerk erstellen und dann verwenden, das in Software kodiert ist. Viele neuronale Netze umfassen Milliarden oder sogar Billionen von spezifischen Parametern oder Werten, die durch die Verarbeitung großer Materialmengen "trainiert" werden. Glücklicherweise können effizientere Modelle hervorragende Programmierer sein, wenn sie mit einem relativ großen und vielfältigen Satz von Beispielen für funktionalen, sicheren und effizienten Code trainiert werden.
Wenn es während des Trainingsprozesses lernt, Code zu schreiben, was zu einem großen Sprachmodell oder LLM führt, versucht das GenAI-System, den nächsten Befehl vorherzusagen. Es testet dann diese Vorhersage; wenn es gut ist, werden die neuronalen Parameter auf eine Weise angepasst. Wenn die Vorhersage schlecht ist, werden die Parameter auf andere Weise angepasst. Mit ausreichenden Iterationen kann das GenAI-System die Generierung von Ergebnissen basierend auf seinen Trainingsdaten unterstützen. Wenn die Genauigkeit für den Zweck ausreichend ist, wird das GenAI-System damit beauftragt, neuen Code basierend auf Eingabeparametern oder Prompts zu generieren. Wenn es gut funktioniert, können Sie loslegen. Wenn nicht, nun, es ist Zeit für KI-Wissenschaftler herauszufinden, was schiefgegangen ist.
Die gute Nachricht: Sie müssen kein eigenes codeorientiertes LLM erstellen. Es wurde bereits von führenden Tools-Anbietern für Sie durchgeführt.
Wichtige Erkenntnisse
Erwarten Sie bei diesem Schreiben nicht, ein komplexes Programm zu beschreiben und eine GenAI-Systemausgabe eine vollständige, einsatzbereite Anwendung basierend auf dem Prompt zu erstellen. Wir sind noch nicht da. GenAI-Tools werden jedoch verwendet, um die Arbeit der Unternehmensentwicklungsteams zu verbessern und ihnen zu helfen, die Codequalität sowie die individuelle Produktivität zu verbessern. Sie können sich GenAI als Mitglied des Teams vorstellen, das eine oder mehrere Rollen bedient.
Generative KI ist für die Softwareentwicklung wichtig, da sie Entwicklungsteams in jeder Phase des Softwareentwicklungslebenszyklus produktiver machen kann. Das ist entscheidend, weil moderne Unternehmen auf Software setzen – daran besteht kein Zweifel. Viele dieser Software, darunter Textverarbeitungsprogramme, Kalkulationstabellen sowie Buchhaltungs- und HR-Systeme, sind sofort einsatzbereit. Ein Wettbewerbsvorteil liegt jedoch darin, benutzerdefinierte Software für Backend-Vorgänge, Websites, Datenbanken, mobile Apps und mehr zu schreiben.
Die Herausforderung: Qualitativ hochwertiger Code erfordert Zeit und Know-how, entweder mit Entwicklungspersonal oder Auftragnehmern. Wenn neue Anwendungen erforderlich sind, um ein Verkaufsprojekt zu ergreifen oder eine Herausforderung anzunehmen, liegt oft ein Rückstand von Projekten in der Warteschlange. Die Einstellung von mehr Entwicklern ist ein langsamer Prozess, ebenso wie das Onboarding. Zeit ist Geld. Mit GenAI können neue Ideen früher in die Produktion gebracht werden, was dazu beiträgt, Bargeld zu verdienen oder zu sparen, die Mitarbeiter- und Kundenzufriedenheit zu verbessern und das Unternehmen ansonsten bei der Erfüllung seiner Mission zu unterstützen.
GenAI kann eine wertvolle Ergänzung für Entwicklungsteams von Unternehmenssoftware sein. Wie bei Tools, mit denen Entwickler unterstützt werden, kann Ihr Unternehmen diese Verbesserungen definieren, messen und bewerten. Alle Entwicklungsplattformen, die moderne Technologien wie GitHub oder Quellcode-Management-Systeme verwenden, sammeln routinemäßig Metriken zur Entwickler- und Teamleistung, wie Codezeilen pro Tag und Codequalität.
Entwicklerteams, die GenAI für den gesamten Lebenszyklus integrieren, von der Projektplanung über das Architekturdesign bis hin zur Analyse von Code und Fragen und Antworten, finden oft, dass sie wesentlich schneller arbeiten. Hier sind einige der Möglichkeiten, wie GenAI helfen kann:
Generative KI kann die Entwicklung von Unternehmenssoftware unterstützen, indem sie die Produktivität einzelner Entwickler und Teams verbessert und ihnen hilft, schneller qualitativ hochwertigere Software zu erstellen. Bereiche, in denen es besonders praktisch ist, sind die Definition von Softwarearchitekturen, das Erstellen von Produktplänen und das Generieren von Code.
GenAI ist auch stark darin, bei sich wiederholenden Aufgaben zu helfen und den so genannten Boilerplate-Code zu generieren, der für viele Programme generisch ist, den ein menschlicher Entwickler dann anpassen und an anderer Stelle abschließen oder verwenden kann. GenAI kann auch dabei helfen, den Software-Quellcode auf Fehler und potenzielle Probleme zu überprüfen, z. B. Sicherheitslücken und wo die Funktionalität des Codes von den Benutzeranforderungen oder Unternehmensstandards abweichen kann.
Es gibt viele Bereiche, in denen GenAI-basierte Entwicklungstools als Assistenten für einzelne Unternehmenssoftwareentwickler oder als vollständige Teammitglieder fungieren können. Hier sind einige der häufigsten Orte, an denen die Technologie heute helfen kann, vom Software-Design bis zum Software-Deployment.
1. Bugerkennung und Debugging. GenAI-Systeme können effizient dazu beitragen, Codefehler zu identifizieren und zu beheben oder Fehlerbehebungen vorzuschlagen. Natürlich gibt es eine ganze Branche, die auf Fehlerbehebung basiert; Open-Source- und kommerzielle Tools können Quellcode auf Sicherheits- oder Funktionsfehler scannen, einschließlich subtiler Fehler, die nur auftreten können, wenn das System stark geladen ist, oder wenn Speicherlecks vorhanden sind, Probleme mit der Multithread-Ausführung, Versuche, auf geschützten Speicher zuzugreifen, und vieles mehr.
GenAI kann auf verschiedene Weise einen Mehrwert für die Fehlerbehebung schaffen. Zunächst könnte es Prompts verwenden, um zu analysieren, ob der Code das tut, was der Entwickler oder Stakeholder beabsichtigt hat, denn selbst wenn der Code korrekt kompiliert und ausgeführt wird, führt er möglicherweise nicht die richtige Aktion aus oder gibt das gewünschte Ergebnis zurück. Zweitens kann GenAI dazu beitragen, Fehlerberichte aus herkömmlichen Tools zusammenzufassen, damit Testteams und Entwickler subtile Fehler verstehen, Muster von fehlerhaftem Code finden und Fixes vorschlagen können.
2. Codegenerierung. GenAI kann das Schreiben von Code basierend auf Prompts oder Spezifikationen automatisieren. Wie bereits erwähnt, ist es unwahrscheinlich, dass GenAI in Kürze eine komplexe Geschäftsanwendung generieren wird. Es kann jedoch helfen, Boilerplate-Code zu erstellen, den Entwickler abschließen können, sowie Code-Snippets, die einen komplexen Algorithmus implementieren, einen schwierigen Prozeduraufruf durchführen oder auf externe Ressourcen zugreifen können.
Beispiel: Viele Entwickler wissen, wie SQL zum Lesen, Schreiben und Aktualisieren von Datenbankinformationen verwendet wird. Es ist jedoch eine Kunst, gespeicherte SQL-Prozeduren zu schreiben, die komplexe Datenbanktabellen verarbeiten und beispielsweise über sehr große Datasets hinweg effizient ausgeführt werden können. GenAI-Tools können Prompts verwenden, um dem Programmierer zu helfen, die Anforderungen für den Datenbankzugriff auszudrücken und dann einen vorgeschlagenen SQL-Aufruf oder eine vorgeschlagene Prozedur bereitzustellen, die kopiert und in die Anwendung eingefügt werden kann.
3. Codeprüfung. GenAI kann dabei helfen, die Codequalität, Sicherheit und die Einhaltung von Best Practices zu überprüfen. Code-Reviews sind ein wesentlicher Bestandteil des Software-Entwicklungsprozesses, bei dem ein Team komplexen Code in einer Gruppeneinstellung betrachtet – projiziert auf einem Bildschirm oder einem großen Monitor –, um seine ordnungsgemäße Funktionalität zu validieren und Verbesserungsbereiche vorzuschlagen. Entwickler können Code-Reviews stressig finden, insbesondere wenn sie in Anwesenheit von älteren Software-Ingenieuren sind, die nichts als Fehler finden. Code-Reviews sind auch sehr zeitaufwendig und viele Menschen wollen sie einfach schnell fertig stellen, was zu einem Mangel an Sorgfalt führen kann.
GenAI kann helfen, indem Entwickler eine vorläufige Codeüberprüfung durchlaufen, um offensichtliche Fehler zu erkennen. Das hilft Junior-Entwicklern zu lernen und kann persönliche Überprüfungssitzungen schneller machen. GenAI kann auch als teilnehmendes Mitglied des Gruppencode-Review-Teams fungieren und Bereiche hervorheben, die zusätzliche Aufmerksamkeit erfordern, und bietet sogar eine eigene Anleitung, wie man am besten Verbesserungen vornehmen kann.
4. Dokumentation. KI kann die Dokumentation für Codebases automatisch generieren oder verbessern. Selbst mit den besten Absichten neigen Entwickler dazu, sich bei der Überprüfung von Software, die sie nur wenige Monate zuvor geschrieben haben, zu fragen: „Was habe ich mir dabei nur gedacht?“ Deshalb ist die Dokumentation auf vielen Ebenen so wichtig, auch für die Architektur des gesamten Projekts und die Zwecke bestimmter Module oder Microservices. In Modulen und Diensten kann die Dokumentation die Entscheidungen erklären, die für Bibliotheken, APIs und Algorithmen getroffen werden, insbesondere wenn der Entwickler eine Wahl hat. Es gab einen Grund – aber welcher war es? GenAI kann helfen, indem der Entwickler während der Programmierung aufgefordert wird, diese Entscheidungen zu erklären und diese Erklärungen dann in eine leicht verständliche Dokumentation zu erweitern.
Wenn die GenAI verwendet wird, um Code selbst zu generieren (siehe Nr. 2 oben), kann sie außerdem eine vollständige Dokumentation schreiben, in der erläutert wird, was das Code-Snippet oder der Microservice tut und wie er richtig verwendet wird.
5. Schulungen und Trainings. GenAI kann helfen, sofortige Beispiele und Erklärungen zur Verbesserung der Entwicklerfähigkeiten bereitzustellen. Softwareentwickler – auch oder vielleicht besonders Rockstar Coder – lernen ständig. Es gibt immer neue Technologien, wie KI und Microservices, die online verfügbar sind, sowie neue Tools, neue Sprachfunktionen, neue Designmuster, neue Sicherheitslücken, neue Unternehmensstandards und Best Practices und sogar neue Compliance-Anforderungen.
Während es zahlreiche Kurse und Kurse sowie interne Schulungen und Mentoring gibt, ist kontinuierliche Hilfe wertvoll. GenAI bietet das Potenzial, zu erkennen, wann ein Entwickler Probleme hat, z. B. wenn versucht wird, eine veraltete Funktion oder eine veraltete API zu verwenden und sofortige, personalisierte Schulungen bereitzustellen. Es kann auch durch Eingabeaufforderungen helfen, sofortige Anleitung zu geben, wenn der Entwickler nicht weiß oder sich daran erinnert, wie eine neue oder selten verwendete Aufgabe ausgeführt werden soll. Es ist wie ein Hilfebildschirm, aber für diese genaue Situation angepasst.
6. Refactoring. Die Optimierung und Umstrukturierung des vorhandenen Codes für eine bessere Performance ist etwas, bei dem GenAI helfen kann. Refactoring ist ein wesentlicher Bestandteil des Software-Entwicklungslebenszyklus: Hier nehmen Sie einen Teil des Codes und machen ihn, ohne seine Funktionalität zu ändern, besser. Das kann bedeuten, seine Geschwindigkeit und Skalierbarkeit zu verbessern, seinen Speicherverbrauch zu senken, einen Algorithmus zu aktualisieren, einen neuen Mikroprozessor-Shortcut zu nutzen oder eine neue Sprachanweisung zu verwenden. Entwickler verwenden Laufzeitmetriken, um Codebereiche zu erkennen, die langsam sind, zu viele Ressourcen verbrauchen oder End-to-End-Verzögerungen verursachen und diese für das Refactoring auszurichten.
Refactoring kann ein idealer Ort für die Generierung von GenAI-Code sein, an dem Entwickler den problematischen Code in das System einspeisen und im Wesentlichen fragen: "Können Sie eine Version erstellen, die schneller läuft?" Wir sind zu stark vereinfacht, aber wenn wir sehen, was der Code tut und wie er funktioniert, können die vorausschauenden Funktionen von GenAI es oft ermöglichen, einen besseren Ansatz zu finden. Darüber hinaus ist es einfach, die Vorteile des Refactoring-Prozesses zu ermitteln und zu überprüfen, dass sich die zugrunde liegende Funktionalität tatsächlich nicht geändert hat, da der alte Code und der refactored Code verglichen und verglichen werden können.
7. Testen. Mit GenAI können Sie Testfälle erstellen, Testprozesse automatisieren und Edge-Fälle simulieren. Verschiedene Methoden haben ihre eigenen einzigartigen Ansichten über den Softwaretestprozess. Test-Driven Development (TDD) besteht beispielsweise darauf, dass Sie Testfälle erstellen, um sicherzustellen, dass alles, was Sie schreiben, richtig funktioniert, bevor Sie eine einzelne Codezeile schreiben. In anderen Methoden kann das Entwicklungsteam am Ende eines Sprints Tests durchführen; in anderen führt ein dediziertes Testteam Tests durch. Die Rolle der Stakeholder beim Testen ist von wesentlicher Bedeutung und variiert je nach Methodik: Manchmal sind Stakeholder ständig eingebunden und in anderen Fällen prüfen sie nur Release-Kandidaten.
GenAI kann beim Testen und Testmanagement mehrere Rollen übernehmen. Wir haben die Fehlererkennung erwähnt, aber GenAI kann auch helfen, Skripte zu schreiben, die als Testautomatisierungstools verwendet werden können, ein Prozess, den viele Entwickler mühsam finden. Solche GenAI-verbesserten Tools können auch beim Testen von Edge-Fällen helfen, d.h. Situationen, die wahrscheinlich nicht auftreten, aber dennoch ordnungsgemäß von einem Codemodul, einer gespeicherten Prozedur oder einem Microservice verarbeitet werden müssen. Darüber hinaus kann GenAI helfen, Testfälle, einschließlich der von Menschen geschriebenen, zu überprüfen, um festzustellen, ob sie gute Tests sind und alle wahrscheinlichen Situationen abdecken, einschließlich Fehlerbedingungen und Versuche, den Code zur Laufzeit zu hacken.
„Es ist schwer, Vorhersagen zu treffen, besonders über die Zukunft“, sagte der Baseballstar Yogi Berra. Generative KI ist ein neues Feld: Die ersten Beispiele für die Technologie entstanden erst Anfang 2020s mit Produkten wie ChatGPT, die sich auf die Generierung von Text konzentrierten, und DALL-E zum Erstellen von Bildern. Viele Verbraucher und Führungskräfte von Unternehmen begannen, sich um 2022 auf GenAI zu konzentrieren – erst vor zwei Jahren.
Egal, wie Sie sich GenAI ansehen, wir befinden uns nur in der Anfangsphase der Technologie und werden zweifellos neue Geschäftsanwendungsfälle in Bereichen wie der Softwareentwicklung finden.
Aber wir werden einen Versuch wagen: Was können wir in den nächsten Jahren erwarten?
Zunächst muss GenAI alles tun, was es heute tun kann, aber besser, wenn es darum geht, Entwicklungsteams bei der Codegenerierung, Qualitätssicherung, Dokumentation und Erstellung von Testfällen zu unterstützen. GenAI kann besser mit Entwicklern und Nicht-Entwicklern interagieren, um sie durch den Prozess der Definition von Anforderungen zu führen und diese Anforderungen dann in Projektpläne, Dokumentation, Testfälle und Code umzuwandeln.
Wenn wir wirklich in die Kristallkugel schauen, muss vielleicht gar keine Software geschrieben werden. Geschäftsanwender können dem GenAI-System lediglich mitteilen, was sie erreichen möchten, und die Software erstellt Ad-hoc-Anwendungen, die genau diese Aufgabe ausführen. Was auch immer die Zukunft von GenAI in der Softwareentwicklung ist, es wird wahrscheinlich einen enormen Wert für Unternehmen haben, die es begrüßen.
Die generative KI von Oracle ist heute mit enormen Funktionen verfügbar, die in Geschäftsanwendungen wie Fusion und NetSuite eingebettet und in Oracle Database 23ai integriert sind.
Ein spannender Bereich, den Sie erkunden sollten, ist die Verwendung von GenAI und Oracle APEX für die Low-Code-Anwendungsentwicklung mit einem neuen Feature, APEX AI Assistant, das Entwicklern bei komplexen Aufgaben helfen kann. Im Allgemeinen können Sie sich für einen Oracle Cloud Infrastructure-(OCI-)Account registrieren und kostenloses Cloud-Guthaben erhalten, um die KI-Services von Oracle auszuprobieren, darunter GenAI. Kostenlos starten.
Für eine solche neue Technologie sind die Anwendungen generativer KI zur Softwareentwicklung endlos. Die Wahrscheinlichkeit ist, dass Ihre Entwickler GenAI als wertvollen Assistenten und möglicherweise als wesentliches Mitglied des Teams finden.
Zu den wichtigsten KI-Anwendungsfällen gehören Chatbots, die den Kundenservice revolutionieren, und Algorithmen, die das Gesundheitswesen transformieren. Der Verbindungsfaden? Softwareentwicklung.
Wie kann ich generative KI beim Codieren verwenden?
GenAI kann in vielen Teilen des Softwareentwicklungsprozesses verwendet werden. Für die Codierung muss GenAI in der spezifischen Programmiersprache trainiert werden, die für Ihr Projekt verwendet wird. Geben Sie dem System sehr spezifische Befehle, sogenannte Prompts, für das, was Sie tun möchten, und es sollte in der Lage sein, fertigen Quellcode zu generieren, der kompiliert und ausgeführt oder in Ihrem Quellcode-Management-System oder Online-Repository hinzugefügt werden kann, wie Github.
Kann ich Software mit KI erstellen?
Sie können Software auf vielfältige Weise mit GenAI erstellen. Es kann helfen, Code zu generieren, obwohl in dieser Phase der Entwicklung der Technologie dieser Code nur relativ einfache Funktionen ausführt. Der wahre Wert von GenAI besteht zumindest jetzt darin, Ihr Entwicklungsteam bei Aufgaben wie der Planung von Projekten, dem Entwurf einer Architektur, der Erstellung von Testfällen, der Durchführung von Codeprüfungen und dem Schreiben von Dokumentation zu unterstützen.
Wie wird KI eine Herausforderung in der Softwareentwicklung sein?
GenAI ist immer noch neu, insbesondere für den Einsatz in einem Entwicklungsteam. Die wohl größte Herausforderung wird die Akzeptanz der Technologie durch skeptische Entwickler sein, die mit dem Status Quo vertraut sind und gegen Änderungen in ihren Methoden, Werkzeugketten und Prozessen resistent sind. Es kann auch einige geben, die GenAI als potenzielle Bedrohung für ihre Karriere ansehen.
Darüber hinaus muss jedes Unternehmen Vertrauen in GenAI-Software aufbauen. Ist der Code solide, sicher und performant? Sind die Testfälle korrekt und bieten sie eine vollständige Codeabdeckung? Erfüllt die Dokumentation die Anforderungen? Die ersten Phasen der GenAI-gestützten Softwareentwicklung werden weitgehend experimentell sein. Die Ergebnisse sollten, wenn die Technologie richtig angewendet wird, die Entwicklerproduktivität erheblich steigern und bessere Software schneller und kostengünstiger in die Produktion bringen, um dem Unternehmen zu helfen, seine Mission zu erfüllen.
Schließlich entwickelt sich das Gesetz in Bezug auf das Eigentum und die Schutzfähigkeit von KI-generiertem Code weiter. Können Sie ein Copyright für Software registrieren, bei der KI verwendet wurde, um einen Teil des Codes zu generieren? Wenn Sie ein kommerzielles GenAI-System verwenden, schreiben die Nutzungsbedingungen vor, dass Sie eine Ausgabe an den Eigentümer des Modells zurücklizenzieren? Sie sollten diese Probleme untersuchen, bevor Sie GenAI in der Softwareentwicklung einsetzen.
