In den letzten Monaten haben wir - wie alle in der Branche - viele
Gespräche dazu geführt, wie die Zukunft der Softwareentwicklung
aussehen wird. Es geht natürlich um „Agentic Engineering“ (AE), also der
Benutzung von LLM-basierenden Agenten, um direkt aus Anforderungen den
Code für Softwaresysteme zu generieren. Neben der allgemeinen Frage
haben wir uns überlegt, was diese Entwicklung für uns bei der Active
Group bedeutet und wie wir mit den veränderten Rahmenbedingungen
umgehen.
Warum damit auseinandersetzen?
Agentic Engineering verspricht signifikante Produktivitätssteigerungen
bei der Softwareentwicklung. Gleichzeitig investieren viele
softwareentwickelnde Firmen gerade massiv in die Benutzung von AE in
ihren Prozessen. Viele unserer Konkurrenten bewerben Beratung zu und
Entwicklung mit Agentic Engineering. (Nicht immer unter diesem Namen.)
LLMs und die Ethik
Johannes Links
Blog-Post
fasst das Problem gut zusammen: LLMs haben gigantische
Externalitäten. Hier nur die offensichtlichsten:
- Befeuerung der Klimakatastrophe
- massiver Lohndruck auf ganze Berufsgruppen
- gigantischer Diebstahl geistigen Eigentums
- Zerstörung zwischenmenschlicher Verbindungen
- Zerstörung von Open-Source-Ökosystemen
- Beeinflussung des politischen Diskurses
- Zerstörung von Lernerfahrung und Ausbildungspfaden
Entsprechend groß sind unsere Bauchschmerzen, LLMs als integralen Teil
unserer Softwareentwicklung einzusetzen. Wir erlauben uns kein
ethisches Urteil über die Benutzer:innen von AE - so gut wie jeder von
uns tut Dinge mit Externalitäten, ob Fleisch essen, Autofahren
etc.
Was bringt‘s denn?
Es gibt keine verlässlichen Zahlen zur tatsächlichen
Produktivitätssteigerung durch AE: Zwischen -10% bis 30x scheint alles
drin.
Worüber aber Einigkeit zu herrschein scheint, ist dass die
Codequalität generierten Codes geringer als die Qualität von Code, der
von Menschen geschrieben wurde. Quellen gibt es zahlreiche im Netz,
hier ist eine
davon.
Wir gehen von einer durchschnittlichen Produkivitätssteigerung unter
2x für unsere Entwicklungstätigkeiten aus. Insbesondere gehen wir
davon aus, dass der Faktor beim Einsatz von funktionaler
Programmierung kleiner ist als mit Standard-Technologien, insbesondere
weil weniger „Boilerplate“ notwendig ist.
Freude und Expertise im Programmieren
Der Anspruch bei der Active Group ist nicht nur, dass wir effizient
entwickeln, sondern dass durch die Verwendung funktionaler
Programmierung bessere Software herauskommt - mit reichhaltiger
Datenmodellierung, domänenspezifischen Sprachen und nachhaltiger
Architektur. „Besser“ bedeutet besser für Menschen -
Benutzer:innen, deren Leben durch die Software verbessert wird (doch,
so etwas gibt es) und zukünftige Softwareentwickler:innen, die Freude
an elegantem Code und flexibler Architektur haben.
Insbesondere schreiben wir gern Code, denken gern über den besten
Ansatz bei einem Softwareprojekt nach, freuen uns über tollen Code der
Kolleg:innen und lernen gern neue Techniken und Technologien. All das
tun wir gern gemeinsam und gemeinsam mit den Nutzer:innen unseres
Code. Was uns Freude macht an der Softwareentwicklung, fehlt beim
Einsatz von AE weitgehend. Unser Motto „Software, sorgfältig“ passt
ebensowenig zum Einsatz von AE. Und es ist vielleicht kitschig, aber
wir glauben, dass gute Software eine Verbindung zwischen
Entwickler:innen und Nutzer:inne vermitteln kann, und ich freue mich
als Nutzer:in, wenn ich das Gefühl habe, dass die Entwickler:in an
mich gedacht hat.
Das geht offenbar nicht nur uns so. Unsere Hauskonferenz
BOB hatte dieses Jahr soviele Besucher:innen wie
noch nie, obwohl das Programm ganz ohne KI auskam. (Oder weil? Eine
spontane Reaktion eines unserer PR-Outlets war: „Endlich auch mal
wieder eine Konferenz ohne KI“.)
Gelentlich wird uns vorgehalten, dass LLMs das Programmieren
demokratisieren und Menschen zugänglich macht, die andernfalls ihren
Computer nur „passiv benutzen“ können. In der Tat hat sich da die
Softwareentwicklungs-Community durch immer komplexere
Technologiestacks und undurchdringliche Terminologielabyrinthe nicht
mit Ruhm bekleckert. Das Argument vergisst aber die Abhängigkeiten,
die der Einsatz von LLMs für Automatisierung mit sich bringt.
Außerdem haben wir als Community vielleicht vergessen, dass es andere
Wege gibt, Computer und insbesondere Computerprogrammierung zugänglich
zu machen durch einfach zu benutzende Technologien, breitentaugliche
Didaktik und das Schaffen und Schätzen von Expertise. Daran arbeiten
wir persönlich im Rahmen unserer
Schulungen und des
DeinProgramm-Projekt. Da geht
sicherlich noch mehr.
Was bedeutet das für uns?
Wir werden AE vorläufig nicht als intrinsischen Teil unserer
Software-Entwicklungsprozesse benutzen, und werden dies entsprechend
auch nicht bewerben.
Wir übernehmen für jede Zeile Code, die in Richtung Kund:in geht, die
Verantwortung für Korrektheit und urheberrechtliche
Unbedenklichkeit. Es ist inakzeptabel, wenn es in diesen Bereichen
Probleme geben sollte, die aus der Codegenerierung mit AE kommen.
Wir unterstützen aber natürlich weiterhin unser Partner:innen und
Kund:innen in allen Belangen der Softwareentwicklung, also auch im
Umgang mit AE-generiertem Code. Wir gehen aber davon aus, dass dort
mittelfristig große Mengen qualitativ minderwertigen Codes entsteht,
welcher Verbesserung bedarf.
Entsprechend beraten und schulen wir gern, wie AE-gestützten
Entwicklungsprozesse und der daraus entstandenen Code verbessert
werden, insbesondere im Hinblick auf Architektur und langfristige
Evolution.. Auch Schulungen zu diesem Thema sind denkbar. Mit diesem
Ziel beschäftigen wir uns auch intern mit AE.
Perspektivisch werden wir uns möglicherweise damit beschäftigen, wie
AE bei Anwendung formaler Methoden helfen können in
Anwendungsfällen, die dies rechtfertigen - die also ohne
AE-Unterstützung nicht realistisch sind und bei denen der Einsatz
formaler Methoden große Forteile haben.
Diese Strategie ist für uns mit Risiken verbunden:
-
Kund:innen könnten entscheiden, nur noch solche Dienstleister zu
beauftragen, die AE benutzen.
-
Konkurrent:innen könnten mit AE soviel produktiver werden als wir,
dass es sich nicht mehr lohnt, uns zu beauftragen.
Wir hoffen aber, dass wir auch weiterhin Kund:innen und Partner:innen
finden, die Sorgfalt in der Softwareentwicklung schätzen, die sich auf
gemeinsame Arbeit an toller Software einlassen und sich freuen, wenn
ihre Anliegen von Menschen wahr- und erstgenommen werden. Wie wär‘s?