Website-Suche

Der GitHub Copilot von Microsoft verfolgt die absolute „Time-to-Value“ von KI in der Programmierung


„Es geht nicht darum, Code schneller zu schreiben, sondern darum, Entwicklern die Möglichkeit zu geben, ihre Zeit besser zu nutzen“, sagt Inbal Shani, Chief Product Officer von GitHub.

Die Frage, inwieweit generative KI Programmierern helfen kann, wird heiß diskutiert. David Gewirtz von ZDNET hat bei seinen Experimenten aus erster Hand herausgefunden, dass ChatGPT von OpenAI „ziemlich guten Code schreiben kann“. Gleichzeitig haben einige Studien herausgefunden, dass große Sprachmodelle wie GPT-4 hinsichtlich der Gesamtqualität des Codes deutlich unter denen menschlicher Programmierer liegen.

Aber die Debatte darüber, ob KI als Programmierer geeignet ist oder nicht, geht möglicherweise am Kern der Sache vorbei, meinen einige. Der Kern der Codierungshilfe durch Automatisierung liegt ihrer Meinung nach darin, die Art der Arbeit eines Programmierers zu verändern.

„Wenn Sie mich fragen, was die große Veränderung ist, haben wir in der Welt der generativen KI eine weitere Abstraktionsebene über der KI geschaffen“, sagte Inbal Shani, Chief Product Officer von GitHub, der Entwicklerseite von Microsoft. in einem Interview kürzlich mit ZDNET.

Diese Abstraktionsschicht, nämlich die natürliche Sprache, wurde ursprünglich nur zur Codevervollständigung verwendet. „Das ist die Grundschicht, die wir gesehen haben“, sagte sie. Die Stärke der Abstraktionsschicht liegt laut Shani darin, dass sie über die Code-Vervollständigung hinaus auf viele weitere Einsatzmöglichkeiten der KI ausgeweitet werden kann.

GitHub stellte im Juni 2021 seine Version der Codeunterstützung, GitHub Copilot, vor. Dieses Jahr sei „ein Jahr des Wandels“ für KI in der Programmierung gewesen, sagte Shani. Wie Microsoft-CEO Satya Nadella im Oktober bekannt gab, hat GitHub über eine Million zahlende Kunden, die Copilot nutzen, und über 37.000 Organisationen, die es nutzen.

Shani zitierte prominente Copilot-Benutzer wie Accenture, das Hunderte von Entwicklern auf Copilot gesetzt hat. „Sie haben gesehen, dass es viel Verwendung gibt, das zu reduzieren, was wir Boilerplate-Code nennen, den sich wiederholenden Code, den Entwickler nicht unbedingt gerne schreiben, aber müssen, weil er Teil ihrer Grundlagen ist.“

Accenture habe 88,5 % des von Copilot geschriebenen Codes beibehalten, sagte Shani. „Das bedeutet also, dass Copilot in der Lage war, seinen Entwicklern hochpräzise Antworten zu geben, die ihnen zeigen, dass sie sich dafür entschieden haben, diesen Code zu behalten und ihn nicht neu schreiben zu müssen.“

Als Produktivitätsmaßstab ist die Anzahl der pünktlich abgeschlossenen Pull-Anfragen, wenn neuer Code mit der Hauptquelle für ein Projekt zusammengeführt wird, durch den Einsatz von Copilot bei Accenture um 15 % gestiegen. Darüber hinaus „haben sie gesehen, dass Entwickler eher bereit sind, den Build-Prozess zu durchlaufen“, also die Aufgabe, Code in eine laufende Binärdatei umzuwandeln.

„Manchmal halten sich Entwickler zurück“, bemerkte sie. „Sie sagen, ich vertraue nicht, ich muss es noch einmal testen, aber mit Copilot hat es irgendwie geholfen, dieses Vertrauen aufzubauen, um mehr Code in die Produktion einzuführen.“

Die Aussicht auf diese kleinen Änderungen - mehr Pull-Requests, mehr Builds, weniger Schreiben von Standardcode - hat unmittelbare qualitative Vorteile in Bezug auf die Art und Weise, wie sich der Tag des Entwicklers verändert.

„Wenn wir die Build-Rate konsistent erhöhen können, dann hilft das im Grunde genommen, dass Entwickler weniger Zeit mit dem Warten auf Builds verbringen und mehr Zeit haben, sich auf die Architektur zu konzentrieren und so weiter“, sagte Shani.

„Eine schockierende Entdeckung für mich ist, dass Entwickler weniger als zwei Stunden am Tag Zeit haben, um Code zu schreiben“, sagte Shani. „Sie müssen viele Dinge tun, die mit dem Lebenszyklus der Softwareentwicklung zu tun haben, aber nicht mit der Codierung zu tun haben - sie machen Builds, sie schreiben Tests, sie sitzen in Meetings, sie müssen sich mit anderen Leuten austauschen, sie müssen PRs [Pull Requests] schreiben ]."

Durch die Automatisierung einiger dieser Aufgaben oder Teile davon besteht die Aussicht, „den Entwicklern mehr Bandbreite für Investitionen in die anderen Bereiche zur Verfügung zu stellen“.

Nichts davon sei bisher gründlich und rigoros im Hinblick auf eine Produktivitätssteigerung quantifiziert worden, räumte Shani ein. „Ich denke, wir sind mittendrin“, sagte sie über den Prozess der Produktivitätsmessung. Copilot und seine Artgenossen „sind noch nicht lange genug im Einsatz, als dass wir echte, substanzielle Daten hätten, von denen wir sagen könnten: So haben wir Leben für immer verändert.“

Definitionen seien für die Produktivität schwierig, bemerkte sie. „Man kann sehr schnell wirklich beschissenen Code schreiben“, daher ist die Beschleunigung des Codes durch Code-Vervollständigung „nicht unbedingt ein Indikator für Erfolg.“

Vielmehr, so Shani, „beschäftigt sich unsere laufende Arbeit mit der Frage: Was ist wirklich Time-to-Value?

Ein weiteres wichtiges Element, das irgendwie gemessen werden muss, ist „wie man Entwicklerzufriedenheit definiert“, sagte Shani. „Für Entwickler ist es sehr wichtig, anerkannt zu werden, und derzeit erfolgt die Anerkennung in einigen Unternehmen dadurch, dass sie messen, wie viele Codezeilen ich schreibe.“ Aber die Ausführlichkeit eines Programmierers sei möglicherweise nicht der beste Indikator dafür, wie gut ein Programmierer sei, betont sie.

Eines der tiefgreifenderen Elemente der neuen Abstraktionsebene, die in der KI Gestalt annimmt, ist die Verringerung der Notwendigkeit, zwischen verschiedenen Tools zu wechseln.

„Wenn ich nach etwas suche, von dem ich nicht weiß, wie man es schreibt, gehe ich normalerweise zu einer Art Suchmaschine“, erklärt Shani. „Copilot war in der Lage, all das in die gleiche Umgebung zu bringen.“ Die Schnittstelle, die Eingabeaufforderung, „befindet sich direkt in Ihrer IDE [integrierten Entwicklungsumgebung]“, so dass „Sie nicht zu verschiedenen Tools wechseln müssen, Sie nichts kopieren und einfügen müssen, das ist auch nicht nötig.“ Machen Sie das alles; Sie bleiben im Grunde dort, wo Sie Ihren Code schreiben.

Als Ergebnis sagte sie: „Entwickler sind zufrieden, weil sie weniger Kontextwechsel zwischen Tools haben.“

Copilot hält Einzug in andere Bereiche des Programmierteams. Ein großer Copilot-Benutzer, das E-Commerce-Unternehmen Shopify, nutzt Copilot, um Codierungsinterviews durchzuführen und neue Mitarbeiter zu bewerten, sagte Shani. Copilot wird auch für das Onboarding neuer Programmierer eingesetzt, als „Peer-Programmierer“ oder Pädagoge, um neue Programmierer auf den neuesten Stand zu bringen.

In den Fällen, in denen Copilot und ähnliche Tools noch nicht die gewünschten Ergebnisse liefern, könnte das zum großen Teil an der Lernkurve des Prompt Engineering liegen, sagte Shani. „Man muss immer noch wissen, wie man die richtige Frage stellt“, sagte sie.

„Je häufiger Sie eine umfassendere Frage stellen, desto allgemeiner wird die Lösung sein, die nicht unbedingt auf Ihre Situation zutrifft“, wohingegen „je besser Sie wissen, wie man die richtigen Fragen stellt, desto besser sind Sie.“ Erhalten Sie eine Antwort von Copilot.

Microsoft arbeite mit Kunden wie Accenture an „diesem Änderungsmanagement“, sagte sie, wie man eine „richtige Eingabeaufforderung“ schreibt und „wie man über die Frage nachdenkt, die man Copilot stellt, um die richtige, zutreffende Antwort zu erhalten“.

An Copilot selbst wird noch viel ausgearbeitet, was wahrscheinlich einen großen Einfluss auf seinen Nutzen und seine Genauigkeit haben wird. Das Programm erhält nach und nach die Fähigkeit, für einen einzelnen Entwickler „personalisiert“ zu werden. „Ein Aspekt, an dem wir arbeiten, ist, wie wir diesen Modellen helfen können, Ihren Codierungsstil zu verstehen“, sagte Shani, „um zu verstehen, welche dieser Elemente für Sie als Softwareentwickler von entscheidender Bedeutung sind, und um die Empfehlungen, die wir Ihnen geben, anzupassen.“

Im Februar wird GitHub eine Unternehmensversion von Copilot allgemein verfügbar machen. „Hier geht es speziell um individuellere Modelle für Unternehmen, die ihre eigene Variante dieser Implementierung haben möchten“, sagte Shani.

In der Enterprise-Edition „haben Sie die Möglichkeit, mit Copilot PRs zusammenzufassen oder Kommentare zum Code hinzuzufügen oder Ihre Dokumente zu durchsuchen und das gesuchte Dokument zu finden.“ Darüber hinaus wird der Schwerpunkt verstärkt auf die Handhabung von Tests und Stresstests durch Copilot gelegt.

Die übergreifende Idee besteht darin, „alles mit der gleichen Art von KI-Flussmodell zu zentralisieren“, sagte Shani, „über die gesamte Softwareentwicklung hinweg, von der Konzeption bis zur Produktion.“

Der Chiphersteller Advanced Micro Devices ist einer der Betakunden der Enterprise Edition, insbesondere für die Feinabstimmung der internen generativen KI-Modelle von AMD. „Wir haben eine lange Warteliste mit weiteren Kunden, die teilnehmen möchten“, bemerkte sie. „Wir unterziehen es vielen strengen Tests und möchten viel Feedback von Kunden erhalten, die derzeit an unserem Betaprogramm teilnehmen, bevor wir uns zuversichtlich fühlen, es zu teilen.“

Es mag seltsam klingen, von Entwicklerzufriedenheit zu sprechen, wenn man bedenkt, dass einige vorgeschlagen haben, dass die Automatisierung von Code mittels KI Programmierjobs eliminieren könne. Das sei jedoch nicht der Fall, betont Shani. „Es wird die Entwickler nicht ersetzen, nicht in den nächsten, ich würde sagen, fünf, zehn Jahren“, sagte sie. „Ich gehöre zu dem Lager, das nie sagt, weil wir uns als Entwickler einfach weiterentwickeln werden.“

Shani, der vor seinem Wechsel zu GitHub vor einem Jahr das Produkt Elastic Containers bei Amazon AWS leitete, arbeitet seit über zwei Jahrzehnten mit KI. Sie erinnert sich an ihre ganz persönliche Reise als Programmiererin von Fortran über C++ und Java bis hin zu Python. „Zu jedem Zeitpunkt flippten alle aus: Oh mein Gott, das wird den Entwicklern die Arbeit nehmen.“

Aber: „Wir haben einen stärkeren Zuwachs an Entwicklern gesehen, weil wir jetzt die Hürde gesenkt haben, mehr Software schreiben zu können.“

Gleichzeitig ist die Entwicklung der KI-Copiloten „die gleiche wie die industrielle Revolution, die zu Fabriken führte, die die Lebensmittelproduktion an die Nachfrage anpassten“, wie Shani es sieht. „Genau das passiert jetzt: Es gibt mehr Nachfrage nach Software, also auch mehr Nachfrage nach Softwareentwicklern.“

Wenn die Codegenerierung präzise automatisiert werden kann und die Abstraktionsschicht den Kontextwechsel einsparen kann, könnten Copilot und seinesgleichen dann tatsächlich die Entwicklungszeit für Projekte verkürzen?

In dem Buch The Mythical Man-Month stellte der Programmierer Fred Brooks fest, dass das bloße Hinzufügen von Ressourcen zu einem großen Programmierprojekt das Projekt nicht nur nicht beschleunigte, sondern in vielen Fällen sogar die Dinge verschlimmerte.

Es ist noch nicht klar, ob KI die Projektplanung und -verwaltung erheblich verbessern oder den Gesamtaufwand für ein großes Programmierprojekt reduzieren wird.

„Ich weiß nicht, ob sich das Konzept von vielen Monaten in Sekunden verwandeln lässt“, sagte Shani. „Die Dinge werden immer noch die richtige Zeit brauchen, um zu reifen, aber ich denke, dass der Weg dahin reibungsloser und effizienter verlaufen wird, wenn wir den angestrebten Wert in kürzerer Zeit erreichen können.“

Verwandte Artikel