Was halten erfahrene Software-Entwickler von folgender Aussage?
|
OpenAI testet KI als Softwareentwickler: Fast die Hälfte des Code-Budgets geht an die Maschine2 Antworten
Ich zitiere dazu Mal aus dem Artikel:
Um die Leistung der KI-Modelle unter realistischen Bedingungen zu bewerten, setzte OpenAI auf anspruchsvolle End-to-End-Tests. Diese wurden von erfahrenen Softwareentwickler:innen entwickelt und dreifach überprüft.
Im Gegensatz zu Unit-Tests, die nur isolierte Funktionen prüfen, simulieren End-to-End-Tests komplette Benutzerabläufe. So wurde unter anderem der Ablauf zum Testen des Avatar-Bugs mit Einloggen, Hochladen eines Profilbilds und Interaktion mit einem zweiten Account simuliert. Dadurch wird die Komplexität realer Softwareprojekte deutlich besser abgebildet.
Der zweite Absatz stimmt soweit, wir setzen aus diesem Grund auch End-to-End-Tests ein.
Was sie allerdings verschweigen:
End-to-End-Tests können extrem aufwändig zu entwickeln sein und die Wartung dieser End-to-End-Tests bei späteren Anpassungen an der Software kann ebenfalls extrem aufwändig sein. Die sind also viel aufwändiger, als UnitTests in einer sauber geplanten Software-Architektur.
Und dann müsste man diese End-to-End-Tests auch noch ohne vorhandene Implementierung schreiben (also effektiv Test-Driven-Development), was das ganze nochmal komplizierter macht, weil man die ohnehin schon komplexen Tests gehen "nichts" implementiert und nicht Mal ausführen kann, um zu schauen, ob sie richtig arbeiten. Man hat also immer das erhebliche Risiko, dass nicht die KI einen Fehler gemacht hat, sondern der Test einen Fehler enthält - vermutlich wurden die Test deshalb "dreifach überprüft".
Und diese End-to-End-Tests braucht man immer, damit die KI auch eine Möglichkeit hat, die eigene Arbeit zu testen, weil sie die Aufgabe und die damit zusammenhängenden Anforderungen an sich ja nicht wirklich versteht.
Ich halte es für ausgeschlossen, dass derzeitige LLMs in absehbarer Zeit dazu in der Lage sein werden, auch komplexere Aufgaben ohne ein solches "Auffangnetz" (die End-to-End-Tests) zu bewältigen.
Wie sieht die Bilanz aus, wenn man den Aufwand der vier erfahrenen Entwickler (1x Entwickeln + 3x Überprüfen) für alle Aufgaben mit dem Gewinn der fast 50% gelösen Aufgaben verrechnet, die ein Entwickler (muss nicht zwingend sehr erfahren sein) + ein zweiter Entwickler für die Überprüfung (einmal reicht in der Regel aus) in weniger Zeit und viel höherer Erfolgsquote hätten erledigen können?
Und dann befasst sich der Artikel gar nicht mit anderen deutlich schwierigeren Aufgabenbereichen in der Softwareentwicklung, wie z.B. Planung der Software-Architektur, oder das Einbeziehen der konkreten Anforderungen der Kunden, die häufig nicht Mal die Kunden selber wirklich kennen oder verstehen. Und was ist mit zeitkritischen Fehlern oder Funktionen, da kann man nicht erst super aufwändige End-to-End-Tests bauen und dreifach überprüfen, um dann am Ende vielleicht ein Ergebnis zu haben. Und was ist mit Fehlern, die nicht im eigenen Code liegen, z.B. entdecke ich häufiger Mal Fehler in externen Frameworks oder in einer externen Software, die ich anbinden soll, wie geht die KI damit um?
Soll heißen:
Ja schön, dass das alles klappt, aber es wird sich in sehr vielen Fällen nicht lohnen. Entwickler-Mangelware herrscht vor allem bei den erfahrenen Entwicklern und von denen braucht man sogar mehr, als ohne KI.
KI könnte in der Lage sein, Junior-Entwickler zu ersetzen, während man weiterhin erfahrene Senior-Entwickler aus Fleisch und Blut braucht. Aber woher kommt dann der Senior-Entwickler-Nachwuchs, wenn die ganzen Junior-Entwickler dank KI keine Erfahrung mehr sammeln können? Das wäre aus wirtschaftlicher Sicht also auch unklug.
Wenn KI Entwickler ersetzt, dann sind es diejenigen, die auf der Stelle treten (wollen) und keinen Wert auf gute Arbeit legen, also für kleine einfache oder repetetive Aufgaben, für die die Senior-Entwickler zu teuer sind.
Ich sehe es schon kommen, dass die Firmen, die mit KI-Entwicklern voran preschen, nach ein paar Jahren in arge Bedrängnis geraten, weil das Kartenhaus nicht mehr aufrecht gehalten werden kann, dann brauchen sie plötzlich sehr viele Senior-Entwickler, die das Chaos aufräumen können - nur, dass die 1. immer noch Mangelware sind und 2. keinen Bock haben, KI-Chaos aufzuräumen.
KI wird in den nächsten Jahren unsere Arbeit sehr verändern (und hat es in Teilen auch schon), aber ersetzen? Sicher nicht.
Wieso "mit anderen Worten", davon habe ich doch nichts geschrieben? Wie es tatsächlich Einfluss nimmt (oder nehmen wird) habe ich gar nicht betrachtet.
Meiner Erfahrung zeigt aber, dass die KI (Ich nutze Claude.AI, was momentan mMn. die beste KI ist) auch nicht dazu in der Lage ist, tatsächlich Implementierungsideen zu liefern. Es kann zwar Ideen liefern, aber die sind häufig nicht gut.
KI kann aber sehr wohl bei repetetiven, sich wiederholenden oder einfachen Aufgaben helfen, WENN sie sorgfältig ausgearbeitet und beschrieben wurden, siehe GitHub Copilot, dafür ist KI sehr hilfreich.
Und zumindest mir hilft es dabei, meine eigenen Ideen zu diskutieren, da mir qualifizierte Leute fehlen, mit denen ich das diskutieren könnte.
Aber auch da ist Claude.AI nicht wirklich gut, es lässt sich sehr leicht von meiner Argumentation beeinflussen und hinterfragt sie kaum bis gar nicht mehr, wenn sie - zumindest auf den ersten Blick - schlüssig klingt, besonders bei komplexen Themen. Ein menschlicher Kollege, mit dem ich sowas durchspreche kann da häufig sehr viel bessere Kritik liefern, was sehr wertvoll sein kann.
Es hilft mir aber trotzdem, da ich auf diese Weise meine Idee besser durchdenken kann und selber auf Probleme aufmerksam werde, die ich übersehen habe. Claude.AI ist für mich also eine Art Rubberduck, die zumindest ein bisschen mit redet und die dabei hilft, anfängliche Gedanken umfassender auszuarbeiten.
Das sind aber alles nur meine Erfahrungen bei der Planung an meinem Projekt mit Claude.AI. Das Projekt ist allerdings ziemlich komplex und ziemlich anders, als "übliche" Projekte, Claude.AI kann dabei also nicht von der Masse an Trainingsdaten profitieren, sondern argumentiert mit oberflächlichen Regeln, die ich häufig gar nicht anwenden kann.
Details dazu hier: https://www.computerworld.ch/software/ki/besten-ki-modelle-versagen-loesung-programmierprobleme-2951189.html
|
Ganz klar gilt: Was KI an Code erzeugen kann, sind nichts weiter als Codierungs-Beispiele, wie man sie in Lehrbüchern oder der Dokumentation von Klassenbibliotheken findet.
Zitat aus dem Artikel:
Die Forscher stellen klar, dass kein Modell zuverlässig genug ist, um reale Programmieranliegen zu übernehmen.
Die Thematik wirft zudem ein Schlaglicht auf die bestehenden Bedenken in der Branche: Trotz der schnell voranschreitenden Entwicklung von LLMs sind diese Technologien noch nicht in der Lage, qualifizierte menschliche Ingenieure zu ersetzen.
— not that that's stopping CEOs from firing their human coders in favor of immature AI models.
More on AI and coding: Zuckerberg Announces Plans to Automate Facebook Coding Jobs With AI
entweder man interessiert sich für computer oder nicht. wer sich nicht dafür interessiert wird es zukünftig ganz schwer haben.
Das ist jetzt natürlich keine Stellungnahme zur Sinnhaftigkeit dessen, was OpenAI festgestellt zu haben glaubt.
Dem kann ich nur zustimmen.
Mit anderen Worten: KI hilft dem Entwickler, schnell zu einer Implementierungsidee zu kommen. Die schließlich abzuliefernede Implementierung einer notwendigen Lösung muss er - als verantwortlicher Entwickler - dann aber schon selbst schreiben, testen und verantworten.