Erfahren Sie, wie KI die Softwareentwicklung verändert, indem sie die Programmierung beschleunigt, die Qualität verbessert und Teams mit intelligenteren Tools und vorausschauenden Erkenntnissen unterstützt.
Jetzt teilen
Logistik, Pharma, Klimaforschung, HR – KI ist überall. Wird sie bald Softwareentwickler überflüssig machen? Hier ist die Antwort!
Der Markt für KI ist von starkem Wettbewerb geprägt, und programmierorientierte Lösungen verbreiten sich rasant. Diese lassen sich grob in zwei Gruppen einteilen: Chatbots und Programmierassistenten.
Während erstere (wie OpenAIs ChatGPT oder Google Bard) es jedem ermöglichen, Text in Code umzuwandeln oder umgekehrt, integrieren sich letztere in einen Code-Editor und schlagen Code-Schnipsel vor, während man tippt.
GitHub Copilotist der beliebteste unter ihnen. Er integriert sich in führende Code-Editoren/IDEs und unterstützt über ein Dutzend Frontend-, Backend- und Infrastruktur-Programmier-, Auszeichnungs- und Template-Sprachen.
Im Hintergrund verwendet es den OpenAI Codex – dasselbe LLM (Large Language Model) wie ChatGPT, das hauptsächlich mit in GitHub gespeicherten Codebasen trainiert wurde.
Wir haben GitHub Copilot erstmals im Sommer 2022 getestet , als es sich noch in der Beta-Phase befand. Insgesamt nahmen mehr als 1,2 Millionen Menschenan der einjährigen technischen Vorschau von Copilot teil und versuchten herauszufinden, ob es sich wirklich um eine bahnbrechende Software handelt, die die Branche neu definiert, oder nur um ein aufgepepptes Autocomplete-Add-on.
Seitdem hat unser Software-Engineering-Team regelmäßig KI eingesetzt, mit potenziellen Anwendungsfällen experimentiert und deren Reife in einem Geschäftsumfeld bewertet. Die Ergebnisse zeigen, dass Entwickler ChatGPT mit der notwendigen Aufsicht sicher in ihre Toolbox integrieren können.
Legen wir los.
Herausforderungen bei der Programmierung
Zum Aufwärmen haben wir überprüft, ob ChatGPT unser technisches Interview bestehen könnte. Wir stellten theoretische und praktische Fragen, die für erfahrene Ingenieure konzipiert waren, und stellten fest, dass es diese perfekt beantwortete, wenn auch ausführlicher als erwartet.
ChatGPT absolvierte auch eine unserer Programmieraufgaben spektakulär, dokumentierte die erstellten Iterationen und fand gute Variablennamen (von denen wir alle wissen, dass sie die größte Herausforderung beim Programmieren sind).
Die von uns angeforderten Unit-Tests lieferten jedoch gemischte Ergebnisse, die weiteres menschliches Eingreifen und eine Verfeinerung der Prompts erforderten: Bei einer der anspruchsvolleren Aufgaben mussten wir ChatGPT explizit anweisen, einen wichtigen, von ihm ausgelassenen Schritt einzufügen, den Code zu vereinfachen und Leistungsprobleme zu optimieren.
Die komplizierteste Testaufgabe führte zu fehlerhaftem Code; nachdem wir ChatGPT aufgefordert hatten, ihn zu beheben, halluzinierte es und erzeugte neue Bugs, anstatt den ursprünglichen zu beheben. Der Test war dennoch nützlich, da das Refactoring der fehlerhaften Lösung viel schneller ging als das Schreiben einer komplett neuen Lösung.
Die letzte Herausforderung war die Feature-Entwicklung. Unser Prompt war unkompliziert: Erstelle ein JavaScript-Befehlszeilenskript, das die Instagram-API eines Benutzers aufruft und die Daten in einer Datenbanktabelle speichert.
ChatGPT lieferte detaillierte Antworten, beschrieb ein robustes Datenbankmodell und antizipierte potenzielle Fallstricke.
Des Programmierers kleine Helferlein
Unsere kontinuierliche Zusammenarbeit mit der KI führte zu einer höheren Effizienz, insbesondere bei der Erstellung von Tests und der Wiederverwendung von Boilerplate-Code.
Der Prompt beeinflusst die Qualität des erzeugten Outputs: ChatGPT ist probabilistisch, was bedeutet, dass Prompt-Iterationen unterschiedliche Ergebnisse liefern, und je detaillierter die Anweisungen, desto besser.
Auch haben wir festgestellt, dass aktuelle KI-Tools von Natur aus anfällig sind – für Halluzinationen, fehlenden Kontext und schlechte Trainingsdaten. Da die Qualität des Codes mit zunehmender Komplexität abnimmt, ist es entscheidend zu wissen, was man benötigt, und es ist zwingend erforderlich, die Outputs zu überprüfen, um sicherzustellen, dass sie frei von Fehlern, Leistungsproblemen oder übermäßig kompliziertem Code sind.
Hier sind einige Dinge, für die Sie KI bereits heute nutzen können:
Unit-Tests zu einem Projekt hinzufügen
Legacy-Code erklären und prüfen
Neue und bestehende Codebasen dokumentieren
Schnelles Erstellen von MVPs
Die Zukunft der Softwareentwicklung
Die Softwareentwicklung wird sich mit der Weiterentwicklung der KI zweifellos wandeln – und das tut sie auch. Schnell. Professionelle Programmierer werden vom Schreiben von Code zum Überprüfen, Optimieren und Warten des Codes übergehen.
KI wird eine entscheidende Rolle im Entwicklungsprozess spielen, und Tools, die gut in IDEs integriert sind, werden immer beliebter werden. Sie helfen Entwicklern, Tests zu generieren, Code zu dokumentieren und zu erklären und Zeit zu sparen, die sonst mit der Suche in externen Quellen wie Google oder Stack Overflow verschwendet werden würde.
Softwareentwickler, die sich die Zeit nehmen, diese neuen Funktionen zu erlernen und sich an dieses neue Paradigma anzupassen, werden einen unerwarteten Vorteil erlangen: Da das Programmieren einfacher und zugänglicher wird, verbringen Programmierer potenziell weniger Zeit in ihrer IDE und verlagern ihren Fokus auf die Entwicklung anderer unverzichtbarer Fähigkeiten, wie Kommunikation, Empathie und Teamarbeit.
Lernen Sie unsere Autoren kennen
Stephan Schulze
Chief Technology Officer und Geschäftsführer bei Project A