Vor ein paar Folgen haben wir schon über Devin gesprochen, den
angeblichen AI Coding Assistant. Da gab es jetzt viel Kritik zu
und seit einigen Tagen gibt es github.
Copilot Workspace. Ist das der echte Devin, der
realistische Devin? Viele haben sich das
Announcement schon angeschaut und gemutmaßt wie gut es
wirklich ist. Alle reden darüber, wir machen
auch, denn malte hat schon Zugriff und wir haben das Ganze
uns mal in einem echten Repository angeschaut und darum
geht es in dieser Folge. Und damit herzlich Willkommen zu
einer neuen Folge des To do Developer Podcasts mit Robin
Manuel Thiel und Malte Lantin. Robin Manuel, wie geht's dir, du
bist heute in einer ungewohnten Umgebung unterwegs?
Genau, ich hoffe man hört es nicht zu sehr.
Ich bin mal wieder auf Reisen und habe leider mein Mikrofon
vergessen, deswegen muss ich mich entschuldigen falls ich
etwas schlechter klinge als sonst.
Mea culpa. Ich wollte es noch einpacken.
Ich hoffe, dass uns nicht zu sehr.
Zu sehr durchklingend, aber ich denke wir kriegen trotzdem ne
gute Folge aufgenommen. Genau, Hauptsache wir schaffen
es, egal wo wir sind. Wer gerade auf Reisen ist.
Es gibt eine neue Folge des Podcasts und bevor wir in das
Thema einsteigen und loslegen erstmal noch wieder vielen Dank
an alle, die uns einen Kaffee ausgegeben haben in den letzten
2 Wochen und ihr habt euch da nicht lumpen lassen und
zahlreiche Kaffee für uns dagelassen, dafür vielen Dank an
Manuel für 2 Kaffee Bela für 5 Kaffee und Julia für 3 Kaffee
herzlichen Dank das füllt den Koffein Haushalt.
Mindestens 2 Wochen wieder auf. Da freuen wir uns sehr.
Genau. Wenn auch ihr uns den
Koffeinhaushalt aufrecht erhalten wollt, dann freuen wir
uns auch immer sehr, sehr sehr, wenn ihr unsere Arbeit hier
schätzt, dann gebt uns gerne noch einen Kaffee aus, das sind
immer wahnsinnig happy und dankbar darüber.
Findet ihr einen Link zu in der Beschreibung von der Podcast
Folge über bei mir Coffee. Und damit steigen wir direkt ins
Thema ein und sprechen heute über Copilot Workspace.
Wir packen euch das Announcement, was gerade in
dieser Woche rausgekommen ist, direkt in die Show Notes rein,
da könnt ihr einfach noch mal nachlesen, euch n paar
Screenshots und Videos angucken. Das Ganze ist nämlich aktuell
noch hinter einer Waitlist. Das heißt, wer die Technical
Preview und es ist eine Technical Preview, da gehen wir
gleich auch noch mal ein bisschen näher drauf ein.
Wer sich das anschauen möchte, muss über eine Warteliste gehen,
das heißt, es haben noch nicht viele Leute Zugriff, wir hatten
das Glück, dass wir uns das gemeinsam anschauen konnten und
wenn ihr den Eindruck bekommen wollt, schaut euch gerne den
blogspot, schaut euch die Videos an, wir sprechen heute ein
bisschen über unsere erste Erfahrung mit dem Tool, Wir
haben ein paar Dinge ausprobiert und möchten das einfach für euch
ein bisschen einordnen, weil man natürlich von einem Blog Post
und ein paar Videos nicht so einen guten Eindruck bekommt,
versuchen wir das einfach noch mal in unsere Worte zu fassen,
unsere Erfahrung mit dieser Technical Preview nochmal.
Euch zusammenzufassen, damit ihr das Ganze auch n bisschen besser
einordnen könnt. Ist das jetzt das gleiche, was
wir vor ein paar Folgen mit Devin besprochen haben?
Ist es was anderes, hat es miteinander konzeptuell etwas zu
tun? Oder ist es letzten Endes
einfach ne Erweiterung von dem, was wir bisher in unserem Code
Editor mit github Copilot gemacht haben?
Da gibt es ja auch lustigerweise den Begriff Workspace, wenn wir
in Visual Studio Code unterwegs seid und Copilot Chat verwendet,
gibt es ja auch AD Workspace ist das was anderes oder das
Gleiche? Auch darüber sprechen wir heute.
Ja, lass doch mal kurz zusammenfassen, was das denn
eigentlich ist. Also ich finde das naming auch
furchtbar, ehrlich gesagt, weil wie du gerade schon gesagt hast,
Workspace im Kontext von github. Copilot kennen wir schon aus
Visual Studio Code, da kann ich ja mit github copilit Chat.
Quasi meinen ganzen Workspace befragen.
Also meine ganzen Dateien, die ich gerade offen habe, das
können auch mehrere Positories sein, die ich gleichzeitig offen
habe. Das hat hiermit aber erstmal gar
nichts zu tun, das ist Copilot Chat was github Copilot Works
Basics ist und angekündigt ist ist wirklich der AI Coding
Assistant in wahrscheinlich erstmal vorrangig der Cloud
Umgebung, der mich aber nicht nur dabei unterstützt zu kommen.
Sondern der ganz ähnlich wie wie dieses Devin Tool, was wir in
Folge 85 besprochen haben. Versucht zu verstehen, wie man
von einem Issue zu einer fertigen Implementierung kommen
kann und das heißt, dass was gezeigt wurde, fängt
üblicherweise so an, dass ich einen Issue in ein Repository
einstelle und dann sagen kann, ich möchte bitte dieses issue
jetzt von meinem von meinem Junior Coding Body, nämlich
diesem Copilot Workspace bearbeiten lassen und daraufhin
wird in mehreren Schritten erstmal.
Ein erst mal ein, wie heißt das? Eine Spezifikation erstellt,
also es wird sich angeschaut. Wie ist denn der ist Zustand von
meinem Repository, wie ist denn der basierend auf dem was ich im
Issue beschrieben habe, der soll Zustand von meinem Code und das
wird mir erstmal repräsentiert damit das AI Tool sagt habe ich
dich überhaupt richtig verstanden?
Daraufhin kann ich iterieren da kann ich das kann ich das
korrigieren? Oder kann ich dann noch weitere
Anweisungen hinzufügen? Vielleicht war mein meine ischä
Beschreibung nicht ganz klar, vielleicht hat die EI mich aber
auch falsch verstanden, kann das also hier nochmal anpassen und
dann wenn ich zufrieden bin mit diesem soll und ist
zustandsbeschreibungen, dann wird ein Plan für mich
generiert, das heißt dann wird hingegangen okay dafür müsste
ich jetzt folgende Codedateien bei dir anpassen und folgende
Ergänzungen tun. Also ich sehe hier noch keinen
Code, aber ich sehe schon mal so ein bisschen sowas wie
pseudocode also ich sehe schon mal hier würde hier würde eine
Funktion hinzugefügt werden, hier würde eine Referenz gemacht
werden, hier würde ein neues Paket hinzugefügt werden, solche
Dinge. Wenn ich dann mit diesem Plan,
den ich da erhalte, zufrieden bin, dann kann ich wieder den
nächsten Schritt gehen. Also auf diesem Plan kann ich
halt auch wieder verändern, aber dann kann ich in den nächsten
Schritt gehen, um wirklich auch Code vorschlagen lassen, auch
über mehrere Dateien hinweg und dann auch hier wieder Feedback
einarbeiten und den dann letzten Endes auch in einen Pull request
zusammenfassen und in mein Repository rein mergen, das ist
erstmal das was gezeigt wurde und.
Ist natürlich alles AI gestützt über ne.
Man redet gerade über in generative AI über viel, so über
Agents, also viele, also irgendwas macht einen großen
Plan, da gibt es viele kleine AIS die die die einzelne
Schritte ausführen. Über Agents werden wir auch sehr
bald noch mal ne Folge machen hier im Podcast, aber das ist
jetzt erstmal das was gezeigt wurde, also nicht nur die Code
autovervollständigung die wir von github schon kennen, nicht
der Chat mit bestehenden Daten den ich schon kenne, sondern
wirklich die Generierung von Code, vor allem aber auch ein
Verständnis von dem was ich erreichen möchte.
Durch die Beschreibung eines github Issues dann seht ihr
wahrscheinlich immer wie eine Code Änderung mit sich zieht und
dann wirklich auch dieses Generieren eines Plans einzelner
Dateien zu ändern und nachher das in einem großen ganzen Pool
request zusammenzufassen. Ich würde gerne noch mal an den
Anfang von dem zurückgehen, was du gerade erzählt hattest, und
zwar den Namen. Der Name ist zwar aufgrund der
Historie, dass es AD Workspace auch in Copilot Chat gibt, etwas
unglücklich, aber eigentlich trifft er das, was es ist, sehr
gut, es ist nämlich, wenn man es 1 zu 1 ins Deutsche übersetzt.
Dein Copilot unterstützter Arbeitsplatz, Dein Workspace und
im Moment ist es so. Wenn ich Copilot nutze in meinem
Code Editor zum Beispiel, dann ist das irgendwie ein Teil des
Prozesses, wird unterstützt, nämlich das Schreiben von Code
und in meinem Copilot Workspace werde ich wirklich Ende zu Ende
unterstützen und für diejenigen, die vielleicht noch nicht mit
github gearbeitet haben, die kennen vielleicht den Begriff
von issue nicht, das ist halt der Bereich wo ich halt
irgendwie ein backdock erstelle entsprechend.
Anliegen so, das heißt? Genau das heißt, ich beschreibe
zunächst in einer Spezifikation, was möchte ich erreichen und
dann werde ich Schritt für Schritt KI gestützt bis zu dem
Prozess geführt, an dem ich am Ende den Pool request aufmache
und habe aber jederzeit die Kontrolle, das heißt, in jedem
dieser Schritte kann ich eingreifen und das Ganze
korrigieren, ergänzen, erweitern und bekomme dann am Ende.
Einen KI unterstützen Codevorschlag, den ich dann als
Code Contribution über eine Quest einreichen kann.
Aber es ist nicht so, dass ich die Spezifikationen schreibe und
am Ende fällt irgendwie lauffähiger Code raus, sondern
wirklich in jedem Schritt kann ich als Mensch sicherstellen,
dass die Qualität stimmt, sprich wenn man sich jetzt die Demos
und die Recordings online anschaut, dann sollte man das
immer im Hinterkopf haben, das dauert ein Mensch die
Entscheidung getroffen hat. Ja, ich möchte zum nächsten
Schritt gehen oder ich möchte etwas korrigieren und.
Diese menschlichen Entscheidungen sind natürlich
immer wieder individuell. Da kann man dann sagen, OK, ich
hätte das anders gemacht, aber diese Person, die das jetzt
ausprobiert hat und diesen Workspace aus ausprobiert hat
und getestet hat, hat dann am Ende dort eine Entscheidung
getroffen. Und eine Sache würde ich gerne
noch mal betonen. Copided Workspace ist aktuell
eine Technical Preview, das heißt, Wir sind in einer extrem
frühen Phase, das kommt aus dem Forschungs und
Entwicklungsbereich von github und wird jetzt zum ersten Mal
der Öffentlichkeit vorgestellt, um wirklich auch Feedback zu
sammeln und von einer größeren Anzahl auch von externen einfach
mal Praxiserfahrungen einzusammeln, um das Ganze dann
weiterzuentwickeln, das Feedback aufzunehmen, um daraus
perspektivisch bestimmte Elemente in Richtung eines
fertigen Produktes weiterzuentwickeln.
Glaub genauso sollte man das auch betrachten, wenn man das
jetzt sich anschaut, bewertet, dass es am Ende jetzt keine
Produktankündigung eines Produktes ist, was man jetzt
morgen kaufen kann, sondern n Konzept ist, welches sich gerade
in der Entwicklung befindet. Und ich glaube, es sind sehr
vielversprechendes Konzept. Aber ich glaube, man muss auch
genau hinschauen bei diesen Tools, denn wir haben es bei
Devin ja schon so ein bisschen gesehen, ne, also wer das noch
mal nachhören möchte, Folge 85 haben wir über Devin gesprochen,
das war so das erste Mal wo so ein Ende zu Ende AI Developer
vorgestellt wurde und da waren auch viele sehr gehypt, unter
anderem ich der Malte war schon noch in der Folge deutlich
skeptischer als ich, was ich jetzt letztendlich letzten Endes
auch als nicht falsch herausgestellt hat, denn es gab
jetzt zuletzt auch einige. Einige Leute, einige, einige
Stimmen in der Tech Industrie, die sich diese Devin Demo Videos
mal ganz genau wirklich so Frame für Frame angeschaut haben und
dann dabei auch festgestellt haben, dass die naja, also
natürlich hieß es der Rec FAKE, das fand ich ein bisschen großes
Wort, aber ich sag mal vielleicht sehr günstig
geschnitten waren und dass dass der Code der da generiert wurde
vielleicht auch nicht 100% auf das auf das zutrifft, was
ursprünglich mal die Anforderung war, da ging es ja zum Beispiel
in einem Video so, dass darum, dass das Devin einfach auf so
ein Upwork oder fiverr Projekt draufgeschmissen wurde und dann
diese Aufgaben selbstständig löst.
Und wenn man sich da wirklich mal Frame for frame for frame
anschaut, wieviel dann noch menschlich nachgeholfen werden
musste, um den überhaupt in die richtige Richtung zu lenken und
ob. Code dann wirklich am Ende exakt
das war, was der Kunde erwartet hat.
Das ist sehr fraglich und das sieht jetzt erstmal auch nicht
so aus. Also da gab es gab es erstmal ja
wie sowieso ein Mini Shitstorm fast schon zu, ob das jetzt
wirkt, also ob der Wind Fake war, das alles irgendwie eine
Überbewertung von dem was geht und deswegen muss man glaube ich
sehr vorsichtig sein, wenn man diese neuen Announcement liest.
Jetzt auf Copilot Workspace, was ja in eine sehr ähnliche
Richtung geht und es waren auch sehr viele skeptische, es gibt
auch viele Videos oder Tweets da draußen, wo Leute gesagt haben
auch alles Bullshit und wenn man sich das hier Frame for Frame
anschaut, dann kann das noch gar nicht irgendwie stimmen oder ist
noch gar nicht das Richtige. Und deswegen haben wir uns
einfach mal die Mühe gemacht zu sagen, Pass auf, wir schauen mal
nicht nur auf Videos und auf Blogposts und auf gepolischte
Fancy Screenshots, sondern wir schauen uns das mal wirklich an
bei einem unserer eigenen Repositories, denn das ist der
große Unterschied. Bei Devin kann man das nicht
machen, Devin war komplett. Geschlossen, das war zu da.
Es gibt es gibt auch eine eine weite List, aber das hat noch
niemand mit seinem eigenen Code testen können, außer die Leute
bei Kucknition Labs selber, die sich auch relativ wenig dazu
geäußert haben zu diesen ganzen Statements übrigens.
Guitar Coke Pilot Word Space gibt es zwar auch eine Waitlist.
Aber wir haben in diesem Podcast hier gerade in dieser Runde
jemanden, der diese weightlist geskippt hat und Zugriff hat,
und das ist der Malte und mit dem gemeinsam habe ich mir heute
morgen mal. In dieser Pausutory einfach
angeschaut. Ein echtes Repository mit echtem
Code von uns. Und dort haben wir unsere eigene
Erfahrung gesammelt. Und es ist tatsächlich so, dass
jetzt auch mittlerweile externe Zugriff bekommen haben über die
weite List freigegeben wurden. Und da verlinken wir euch auch
mal ein Blogspot von jemanden, der.
Sich das Ganze schon Hands on anschauen durfte und nicht nur
die Videos gesehen hat, da könnte das dann auch noch mal
aus einer anderen Perspektive nachlesen und müsst da nicht nur
auf unsere Einschätzung vertrauen.
Wie gesagt, das Ganze basiert auf der technischen
Implementierung, sowohl in dem Blog Post als auch über als auch
in dem, was wir jetzt hier erzählen auf dem Stand Anfang
Mai 2024 in der Technical Preview und kann sich
dementsprechend jederzeit weiterentwickeln, verändern und
vielleicht wenn ihr dann Zugriff bekommt über die Weightlist,
dann gab es schon weitere Iterationen, es hat sich schon
weiterentwickelt. Stand heute Wodrauf muss man
achten, was kann es, wo es vielleicht noch nicht so weit,
wie man sich das erhofft, sprechen wir einfach mal drüber
und ich kann schon mal sagen, ich glaube, wenn man es in
diesem Kontext der Technical Preview sieht, ist es durchaus
schon etwas, was durchaus Spaß machen kann, damit zu arbeiten.
Ja, ich fand es auch beeindruckend, aber wie gesagt,
man muss es halt. Ich fand es vor allem schön,
dass man es selber erstmal evaluieren konnte und ich
glaube, bevor man bevor man Dinge verteufelt und wir sind
auch gerade durch Devenia deutlich skeptischer geworden,
ich. Schwierig, oder?
Ich find das unklug, dass jetzt zu verteufeln sagen, das
funktioniert, das funktioniert alles nicht, diese ganzen AI.
Ja, quasi Coding heißt ja eigentlich ja kein kein Coding
Assistant, sondern so n richtiger, so n richtiger Junior
Developer, der dann irgendwie mein Team ergänzen kann, sondern
wir sehen halt das, was ganz am Anfang ist.
Und ich find's unklug, dass jetzt wegen seiner Unperfektheit
irgendwie schon direkt abzutun, weil ich glaube, das ist sehr
gut aufzeigt, in welche Richtung wir in Zukunft mal gehen können.
Was ist passiert? Wir haben ein Repository, das
sich häufiger so für Demos benutze, das eigentlich ganz
einfach ist. Es ist eine Rest API oder
beziehungsweise ein 2 ist eigentlich 3 Microservices, es
gibt ein kleines Frontend, es gibt ein kleines API Gateway und
es gibt eine Rest API, die Zufahrtszahlen generiert und
zwar einmal gibt es eigentlich nur 2 Endpunkte die eine
generiert irgendwelche Zufallszahlen und der andere
Endpunkt, der würfelt einen Würfel, generiert also eine
gerade zufallszahl zwischen 1 und 6.
Und da hat der Malte einfach mal auf mein Reparatur Tory einen
issue angelegt und gesagt Hey. Wir brauchen nen neuen nen neuen
Endpunkt, der nur gerade Zufallszahlen, also keine
ungeraden Zahlen, sondern nur gerade zahlen, aber als
Zufallszahlen generiert und was er geschrieben hat war.
Also auf Englisch haben wir es geschrieben, also ne übersetzt
haben wir quasi gesagt wir brauchen, wir müssen
sicherstellen, dass es nen Endpunkt gibt, der nur gerade
Zufallszahlen zurückgibt. Und daraufhin konnten wir dann
sehen, dass die, dass diese Gitter Workspace AI losgegangen
ist und erstmal n Verständnis dafür.
Erschaffen hat zu sagen, OK, pass auf, ich schau mit deiner
aktuellen Implementierungen an, die geben alle möglichen
Zufallszahlen zurück. Ich muss in der neuen
Implementierung jetzt also hingehen und die bestehenden
Endpunkte um entweder eine Filterlogik anpassen oder meine
Logik anpassen. Wo sichergestellt wird, dass da
nur gerade zahlen zurückgegeben werden, hat es auch das
Angeboten, dass vielleicht konfigurierbar zu machen durch
so ein Query Parameter. Und das ist natürlich eigentlich
nicht das, was wir wollten. Wir wollten ja einen weiteren
Endpunkt haben und hier sieht man schon, wie wichtig das ist,
dass man da dann noch mal iterieren kann und da dann noch
mal Feedback geben kann und wieso häufig, wenn wir mit AI
interagieren, läuft es drauf hinaus, dass wir sowas wie
prompt Engineering machen müssen, also wir sind
zurückgegangen und haben unseren prompt in dem Fall unser Issue
noch mal etwas besser gestaltet und zwar gesagt Pass auf, wir
brauchen wirklich einen weiteren Endpunkt der Zufallszahlen
generiert und die aktuellen Endpunkte sollen bitte so
bleiben wie sie sind. Jetzt kann man natürlich sagen,
ist das nicht vielleicht ein bisschen Engineered für die AI
auf der anderen Seite kann ich mir vorstellen, dass ein Junior
Developer auch die ursprüngliche Anweisungen bitte sorgt dafür,
dass wir einen Endpunkt haben, der nur gerade zahlen
zurückgibt, dass man das auch hätte falsch verstehen können,
also sich jetzt auch sage, vielleicht gerade wenn ich eine
Sprachbarriere habe oder so, dass es vielleicht gar nicht
schlecht ist, sowas sehr genau zu beschreiben.
Und wenn man tatsächlich so mal aus seiner eigenen Erfahrung
spricht, ich meine, wie oft haben wir es erledigt.
Das auch mal an Anforderungen vorbei implementiert wurde, weil
die Anforderungen nicht spezifisch genug war und ich
glaube, man hat jetzt was diese KI gestützen Systeme betrifft,
mittlerweile sehr hohe Erwartungen und geht davon aus,
wenn ich da irgendwie. Dann Halbsatz Reinschmeiße kann
die KI aus dem Kontext verstehen, worum es geht und
kann dann genau die Implementierung umsitzen, aber
genauso wie halt Menschen Fehler machen können, ist es bei der KI
genauso und umso wichtiger, dass man dort ganz klar spezifisch
formuliert, was die Anforderungen letzten Endes ist.
Und du hattest gerade schon gesagt, prompt Engineering
Erfahrung kommt da tatsächlich sehr hilfreich rüber, weil wir
da die Möglichkeit haben zu. Zu Iterieren, bestimmte Dinge so
zu formulieren, dass halt eine generative KI die Möglichkeit
hat, auch da draußen Verständnis zu entwickeln.
Und was ich persönlich sehr, sehr schön finde ist, das ist
jetzt im UI aus meiner Sicht nicht ganz klar so formuliert,
was ich aber sehr schön finde ist, dass wir einen vorher
nachher Zustand bekommen, so eine Zustandsbeschreibung, das
heißt, als erstes gilt Copilot Worldspace hin und sagt Okay wie
es der ist Zustand und basierend auf der Spezifikation, wie sieht
der soll Zustand aus und das ist dann natürlich davon abhängig
wie gut mein Input war, wie gut mein prompt in Form des der
issue Beschreibung war. Und da kann ich dann natürlich
jederzeit iterieren. Aber ich muss nicht unbedingt
auch den prompt anfangen anfassen, sondern ich kann auch
direkt in dieser vorher nachher Beschreibung hingehen und diese
ergänzen und sagen OK. Hier fehlt aus meiner Sicht was
hier ist, was falsch verstanden worden.
Kann das dann an der Stelle anpassen und kann dann zum
nächsten Schritt springen. Genau der war jetzt in unserem
Fall wirklich die Implementierung von dieser
neuen, von diesem neuen Endpunkt.
Und das hat erstaunlich gut funktioniert.
Wir haben das ein paar Mal durchlaufen lassen und es hat
lustigerweise wirklich immer andere Dinge implementiert, also
man kann sich vorstellen, wenn ich eine, wenn ich sicherstellen
muss, dass ich eine gerade zufallszahl generiere, gibt es
halt mehrere Ansätze, ich könnte entweder über eine Schleife so
lange Zufallszahlen generieren, bis eine gerade Zahl dabei ist,
was wahrscheinlich der inperformanteste Fall ist.
Wir hatten einmal eine Implementierung, die einfach in
der Zufallszahl generiert hat und wenn die nicht gerade war,
hat es einfach die Zahl plus 1 genommen, dann komme ich auf
eine gerade Zahl, aber trotzdem diesen Zufallsfaktor mit drin,
wir hatten eine andere Implementierung, die eine
Zufallszahl generiert und die einfach immer mal 2 genommen, wo
ich auch dann immer safe eine gerade Zahl hatte.
Also wir haben verschiedene Implementierungen immer gesehen
und vorgeschlagen bekommen. Und konnten dann da auch
wirklich über die Dateien, die angefasst wurden, gehen.
Also in der UI sieht das dann wirklich so aus wie bei einem
klassischen Pull request, wo ich so ein div.
Sehen kann und konnten dann daraus auch wirklich ein Pull
Read feststellen und uns generieren lassen und das hat
jetzt in unserem Fall. Für diese einfache Aufgabe, ich
füge nochmal nen Endpunkt hinzu, der nur gerade zufallzahlen
generiert, sehr gut funktioniert.
Das Spannendste daran ist ja aber eigentlich, dass ich von
einer Problembeschreibung beim Issue hinzu, dem Ergebnis also
implementierten Code komme ohne zu coden, und das bedeutet, dass
ich nicht ein absoluter Master von dieser Programmiersprache
sein muss, sondern das Englisch. Oder vielleicht auch, wenn man
Deutsch und jeder andere natürliche Sprache, eigentlich
die Programmiersprache, der der Zugriff ist, die, mit der ich
die meiste Arbeit mache, woraus im Moment dann ja noch ne
Programmiersprachencode generiert wird, aber die meiste
Arbeit, das meiste Feedback gebe ich mit natürlicher Sprache, und
ich glaube, das ist der Knackpunkt eigentlich, das
öffnet die Tür. Viel mehr Menschen, die damit
arbeiten, das öffnet die Tür dafür, dass wir so viel mehr
verschiedene Programmiersprachen hinweg was machen kann.
Das öffnet die, die die Tür dafür, dass ich was machen kann,
was sich vielleicht n Senior Developer immer nur noch
angucken muss, aber nicht mehr selber schreiben muss, weil man
das einfach mit Text beschreiben konnte.
Das vielleicht auch irgendwie einen, vielleicht sogar schon
nen Product Manager die ersten Issues einstellt und sich schon
mal die ersten Vorschläge generieren lässt und man dann
nachher nur noch hier und da kleine Tweaks machen muss.
Ich glaube das ist auch n Punkt, den man hier nicht übersehen
darf. Mhm, ich glaub wichtig ist noch
mal die Information, dass bevor wir wirklich den Code bekommen
bekommen wir auch noch mal eine Beschreibung dessen, was die KI
implementieren möchte. Das heißt, wir kriegen ne
Auflistung aller Dateien, die editiert werden sollen und dann
für jede dieser Dateien eine natürlichsprachige Beschreibung,
welche Änderungen da vorgenommen werden, welche Art von
Implementierung auch und an dieser Stelle können wir nochmal
korrigierend oder ergänzend eingreifen, wir haben das mal
getestet, indem wir halt eine allgemeine Information
hinzugefügt haben, irgendwie, denkt dran zu jeder deiner neu
implementierten Code zahlen Kommentar zu Erläuterung
hinzuzufügen. Oder du kannst auch bestimmte
andere Anweisungen geben. Wir haben dann an der Stelle
ergänzt, Bitte vergiss nicht, diese Zahl auch noch auf die
Konsole zu loggen und solche Informationen kann man dann dort
hinzufügen und wenn man sich jetzt fragt, wo ist da jetzt der
Unterschied zu etwas wie Copilot Chat, wo ich in meinem Editor
doch auch sagen kann, hier schau dir diese Datei an und bitte
ergänze folgende Funktionalität und dann kriege ich einen
Codevorschlag, den ich dann an der Stelle einfügen kann und.
Der wesentliche Unterschied, dass ich über Dateien hinweg
arbeite, das heißt, ich bekomme jetzt in unserem Fall musste nur
eine Datei verändert werden, aber in anderen Beispielen
erfordert ja die Spezifikation, die ich erstellt habe und diese
vorher nachher Beschreibung dann.
Eine Änderung. Ergänzung.
Verschiedensten Dateien in meinem Projekt und diese werden
dann alle aufgelistet. Und wenn ich dann den Code
generieren lasse, bekomme ich auch so ein Divie View wo ich
sehe kann sehen kann für jede Datei welche Codeänderungen
wurden vorgenommen und kann dann noch mal im Code selber
korrigierend eingreifen. Bedeutet aber auch Copilot
Workspace, so wie es aktuell in der Technical Preview angeboten
wird, ist ein Tool für Software Developer.
Das ist kein Tool für irgendwie Endanwender, die sagen ich.
Beschreibende Spezifikation und dann kriege ich irgendwie
lauffähige Software raus und dann ist es ein Tool, was quasi
Software Development diesem Ende zu Ende Implementierungsprozess
beschleunigt, dabei unterstützt und vielleicht auch bestimmte
Fähigkeiten. Überbrücken kann die ich
brauche, um vom Anfang bis zum Ende zu kommen, aber am Ende
bekomm ich Code, für den ich dann einen Pull Request erzeugen
muss, möchte der dann natürlich weiterhin noch durch n Peer
Review durchgehen sollte. Wir haben Spaß, es hat dann
einfach mal mit Copilot, Copilot, Enterprise einfach
nochmal in dem Review Prozess nochmal gefragt Hey, was hältst
du eigentlich von der Änderung die wir da jetzt vorschlagen und
haben dann tatsächlich auch noch Fehler gefunden in einer der
Varianten die wir ausprobiert haben, die wir dann gar nicht so
genau kontrolliert haben wollen, einfach immer noch auf weiter
geklickt haben das. Auch wir brauchen was so eine KI
betrifft, aktuell human in the Look.
Wir brauchen Menschen, die ein Verständnis von Software
Entwicklung haben und die dann sicherstellen können, dass das
Ganze auch den Anforderungen entspricht, das ist korrekt ist
und wir dann auch sicherstellen können, dass wir die Qualität
weiterhin auf dem Niveau haben, wie wir sie gewöhnt sind.
Also man muss schon sagen, wir haben bei jedem einzelnen
Schritt eigentlich immer noch mal eine kleine Nachjustierung
gemacht, was ich auch okay finde, was ich jetzt gar nicht
so dramatisch finde, aber es war schon so, dass, wie du sagst, es
bleibt ein Copilot, also ich habe immer noch das Gefühl,
dass. Eher so ein bisschen Tipp.
Arbeit abnehme und das wahrscheinlich bei größeren,
komplexeren Aufgaben auch noch mal interessanter sein kann.
Aber es bleibt dabei, dass wir eigentlich immer wieder der der
KI Feedback gegeben haben, was aber spannend ist, dass wir das
jetzt viele feine Granularer machen können, das ist nicht so
ist, wie wir das vielleicht von Chat TPD kennen, dass wir
schreiben einmal eine prompt kriegen eine Riesenantwort
können, jetzt darüber nochmal iterieren, sondern werden
wirklich in diesen Denkprozess der AI, weil der eben über
mehrere Agents stattfindet. Immer wieder werden uns
Möglichkeiten gegeben, da Feedback zu geben und im
aktuellen Status mussten wir auch.
Oder wollten wir auch, weil wir da vielleicht noch mal
Anpassungen machen wollen. Man hat aber auch so ein paar
Beispiele schon online gesehen, wo das auch nötig war, also in
dem offiziellen Blog Announcement zu Gitarre Copylo
Workspace von github zum Beispiel, einen Link findet ihr
in der Beschreibung von der Folge, da ist zum Beispiel wird
irgendwie gefragt, dass man so einen String Valley Data
hinzufügt, um ur LS zu validieren und dabei hat zum
Beispiel die AIA kann das Glaube ich Anpassungen in der Read me
sinnvoll wären oder ein licen File hinzugefügt werden soll.
Und das sind ja vielleicht grundsätzlich auch keine
schlechten Beobachtungen, aber da würde ich schon sagen, ja,
aber nicht im Rahmen von diesem Pull request.
Und da hätte ich eigentlich erwartet, dass du mir sagst,
hey, ich hab gerade gesehen, da sind auch 2 andere Best
practices links und rechts. Möchtest du, dass ich dir dafür
ein issue erstelle, dass ich, dass wir da vielleicht zum
späteren Zeitpunkt noch mal reinschauen, da war es
vielleicht ein bisschen übereifrig und das sind dann so
Dinge, die die ich dann vielleicht da wieder raus
korrigiert hätte, bevor der Code erstellt wurde.
Also ich krieg für diesen Plan, das Ding sagt mir, ich möchte
die 3 Dateien anpassen, ich möchte auch in die Read me gehen
und da noch was hinzufügen, ich möchte auch noch ein
Leistungspfeil hinzufügen und da würde ich ihm gleich sagen, nee,
das möchtest du nicht, die 2 Sachen nehme ich wieder raus aus
deinem Plan. Bevor es eben in die Generierung
des Codes geht. Jetzt muss man sich natürlich
fragen. War das jetzt schneller oder war
das? Jetzt hat mir das jetzt wirklich
Arbeit abgenommen, als wenn ich einfach diese random Funktion
einfach selber implementiert hätte und da muss man jetzt
glaube ich bei unserem Beispiel ganz klar sagen Nein.
Wir sind beides erfahrene Developor.
Wir wissen, wie man ne Random Funktion schreibt, wir wissen
wie wie wir prüfen ob ne Zahl Grad und ungerade ist und wir
wissen vielleicht auch, dass es sich das Performanteste ist so
lange Randoms zu generieren wie bis da ne gerade Zahl rauskommt,
sondern dass man dann eben einfach die Zahl entweder um
einen erhöht oder oder mal 2 nimmt.
Wir wissen das, aber das war auch ein sehr einfacher, ein ein
sehr einfaches Beispiel, was wir da heute morgen ausprobiert
haben, und ich glaube, wenn es ein bisschen komplexer ist oder
wenn ich aber sage, ja, ich weiß das, aber ich hab vielleicht
doch auch gerade noch 12 andere Sachen auf dem Tisch, und da
machen wir doch einfach schon mal einen Vorschlag, da muss ich
mich da gar nicht mit beschäftigen, oder ich möchte
vielleicht was in eine andere Sprache übersetzen, also ich
kann mir durchaus vorstellen, dass es da use Cases gibt, wo
man sagt, Hey, wie sieht es denn aus, wenn das eben vielleicht
nicht ganz offensichtlich ist und nur 3 Zeilen Code sind
deswegen. Wie gesagt, heute morgen einfach
mal damit angefangen Rumzuspielen mit mit mit mit
diesem Use Case interessiert uns was wären denn was wären denn
eure Sachen? Also wenn ihr nutzt das gerne,
schickt uns gerne ne ne E-Mail oder schreibt uns gerne auch
wenn ihr uns auf Spotify hört in die Kommentare.
Was denn eure Use Cases wären? Vielleicht habt ihr sogar ein
Beispiel Repository, wo ihr das beschreiben könnt.
Wo könnte das euch denn wirklich Arbeit abnehmen, oder wo sagt
ihr, Nee eigentlich Quatsch, brauch ich nicht und ja,
vielleicht probieren wir das auch einfach mal aus und geben
Feedback ob das. Wie gut das geklappt hat, können
wir ja vielleicht auch dann direkt mal nächste Folge
besprechen. Also wenn ihr da Ideen habt oder
vielleicht sogar Repositories zum zeigen habt, die öffentlich
sind, dann lassen das sehr gerne wissen.
Und ansonsten packt euch natürlich gerne sofort auf die.
Werden nach und nach immer mehr Leute freigeschaltet?
Wir können nicht versprechen, dass ihr zu den ersten gehört,
die Zugriff bekommen, aber auf der Warteliste zu stehen, kann
ja nicht schaden. Genau, ja, auf jeden Fall.
Wir hatten dann diesen fertigen Pool request irgendwann und eine
Sache die irgendwie noch fehlt ist jetzt so n eigenständiges
Testing, weil das ist ja n bisschen das was was wir bei
Devin gesehen haben, dass Devin ja wirklich hingeht und den Code
dann so lange ausführt, bis es der Meinung von Devin nach
zumindest den Spezifikationen entspricht und.
Ich hatte es noch so ein bisschen gefehlt.
Also wir kamen zwar sehr gut von Spezifikationen zu Verständnis
des des Problems hin zum generierten Code und auch zum
Polrequest. Aber wo es doch wieder der Gap
nicht geschlossen ist für mich ist.
Ja, funktioniert das denn? Also ich muss jetzt immer noch
als als als Mensch hingehen und sagen, OK, ich Check jetzt den
Code von diesem pulloquest mal aus oder ich starte das ganze
Mal in so einem wie heißt das Workspace glaub ich ne diesen
nee. Und das ist nicht Code Space,
heißt es ne Menge Spaces her in so einem Code Space und für den
Code da mal aus und oder oder instruiere die AI mir da mal n
Test für zu generieren, aber die die dieser Schritt das das ist
die EY sich jetzt selber überprüft ob das was denn da
rausgekommen ist stimmt der ist zumindest stand heute noch nicht
da und das war ja eine dieser Versprechungen von Devin, also
dass Devin ja selber Zugriff auf einen Webbrowser hat um Research
zu machen in einer Dokumentation von irgendeinem SDK, dass es
Zugriff auf eine Kommandozeile bekommt, wo es quasi den Code
starten und auf die Outputs hören kann und sowas.
Das hat jetzt noch so ein bisschen gefehlt.
Aber wie sehr das bei Devian echt ist, ist ja einfach jetzt
auch noch mal zu bezweifeln. Aber deswegen, das war so ein
bisschen der Stand, wo ich finde, dass ich die, dass da
jetzt noch eine Lücke ist für eine, für eine zukünftige
Erweiterung, dass das Ding sich auch noch mal selber testet, das
hat mir noch so ein bisschen gefehlt.
Und dann nur noch mal der Hinweis, Wir packen die
entsprechenden Links in die Shownotes verlasst euch da nicht
nur auf unsere Einschätzung, schauen euch auch an, was andere
dazu sagen. Und wie gesagt, setzt euch auf
die Warteliste, damit ihr auch früher oder später Zugriff
bekommt. Das wird natürlich jetzt über
die nächsten Monaten immer mehr Menschen Zugriff gegeben und ich
find das ist eine extrem spannende Entwicklung.
Manuel, Du hast dich auch auf die Warteliste bei Devon
gesetzt. Mal schauen wann man da Zugriff
bekommt, ich glaub da ist ne extrem spannende Zeit und es
macht halt immer wieder Spaß sich auch neue Dinge anzugucken,
selbst wenn sie noch relativ weit auch von der Marktreife
entfernt sind und ich glaub das ist ganz wichtig, dass man die
Dinge halt auch immer in diesem Kontext betrachtet.
In welchem Entwicklungsstadium befindet sich gerade eine
Technologie und ich glaube, wir haben Technologien, die haben
die Marktreife erreicht, die zum Beispiel uns KI Unterstützung in
der Idee liefern und wir haben Tools, die sind auf dem Weg
dahin, wie das? Wir heute behandelt haben.
Und wir haben ja super spannend und ich glaub in Zukunft werden
wir immer mehr KI Unterstützung bekommen in der
Softwareentwicklung und ich glaub man muss da am Ball
bleiben, sich die Sachen regelmäßig anschauen und dann
sich auch selber n realistisches Bild davon.
Machen ja, das finde ich ganz, ganz wichtig, weil malte und ich
reden beide mit super viel, mit Developern und wir kriegen das
unterschiedlichste Feedback zu solchen AI gestützten Tools.
Also ich hab ich kenn Leute und ich zeig mich selber zu, die
sagen ich würd ohne Github copilot also diese
Autovervollständigung. Im Editor gar nicht mehr
arbeiten wollen. Es gibt, ich rede aber auch
tatsächlich mit einigen Leuten, die sagen, ich hab das sofort
ausgeschaltet, mich hat das irgendwie nur genervt und es
gibt andere, die sagen ja, das ist aber irgendwie nur was für
Junior developer und es gibt auch wieder andere die sagen,
Nein, es erleichtert mir meinen Alltag ungemein und ich fühle
mich um so und so viel Prozent produktiver und deswegen glaube
ich, dass das so individuell ist.
Ob das ein Arbeitsweise ist, die man sich vorstellen kann, dass
das super wichtig ist bei so Tools wie Devin Okay, das kann
man sich jetzt nicht selber angucken, aber wie gesagt, jetzt
hier bei Geta Copa Pilot Workspace, wo zumindest eine
Waage gibt und schon die ersten noch zugelassen sind, das heißt,
das ist nicht nur eine Waitlist oder werden auch Leute immer
wieder zugelassen, dass man sich da eben selber eine.
Ja, einen einen Eindruck verschafft, ob das in die eigene
Arbeitsweise reinpassen kann, weil ich glaube, es ist ganz
klar nicht für jeden und das merkt man ja jetzt schon bei
diesen AI generierten Autovervollständigungstools.
Da spreche ich mit den unterschiedlichsten Leuten.
Ich bin immer überrascht, auch wenn ich Feedback bekomme, die
Leute sagen, ah nee, das ist gar nichts für mich, deswegen umso
wichtiger, dass man sich das selber anschaut und vielleicht
mit den eigenen Repos ausprobiert, passt das in meinen
Workflow, ist das was, womit ich arbeiten kann, oder ist das
vielleicht für meine Newscase überhaupt nicht einsetzbar?
Und wie vorhin schon gesagt, gebt uns gerne auch eure Meinung
per E-Mail oder in den Kommentaren auf Spotify mit.
Wir sind immer gespannt, wie ihr auch solche Tools einsetzt und
wie eure Perspektive auch das Ganze ist.
Dann happy Coding, entweder selber oder Ai gestützt oder
vielleicht sogar komplett Ai generiert.
Das ist wie gesagt das ist ein Thema wo wir sehr sehr
interessiert sind 15 mal gesagt, aber wir sehr sehr interessiert
sind wie wie ihr darüber denkt, gerade weil wir so viele
verschiedene Stimmen einfangen, sowohl wenn wir mit Developers
reden als auch wenn wir. Wie gesagt, im Netz irgendwelche
Videos oder Blogposts lesen von Leuten die das entweder schon
ausprobiert haben oder sich vielleicht auch nur den
Announcement Blog Post angeschaut haben und daraufhin
eine Meinung bilden. Deswegen was ist eure Meinung?
Lasst uns das gerne wissen und wenn euch die Folge gefallen
hat, wie immer, lasst uns doch gerne eine gute Bewertung da.
Wir freuen uns immer sehr, auch wenn ihr uns einen Kaffee
ausgebt. Wenn ihr zu eurem eigenen Kaffee
die passende Nerd Tasse im To do Cast Podcast Fanshop kauft.
Links dazu findet ihr alle in der Beschreibung unten.
Schaut da gerne mal vorbei, freuen wir uns immer sehr drüber
und ansonsten bleibt jetzt nichts mehr anderes übrig als zu
sagen habt eine gute Zeit, wir hören uns in 2 Wochen wieder,
denn der todo Cast erscheint alle 2 Wochen immer montags und
bis dahin schreibt ganz viel kommt.
Bis dahin. Tschüss.