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:

  1. Kund:innen könnten entscheiden, nur noch solche Dienstleister zu beauftragen, die AE benutzen.

  2. 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?