Dieser Blog-Artikel widmet sich der Frage, wie sich die Verantwortung in agilen Teams ändert, wenn eine Künstliche Intelligenz als „Entwickler:in“ Teil des Teams ist.
„Bei meinem Ticket fehlt noch eine Genehmigung im Code Review. Alex, könntest du dich darum kümmern?“
„Wir haben auffällige Fehler auf der Produktion. Alex, die letzte Änderung stammt von dir. Was sollen wir am besten machen?“
Normale Sätze in einem Team, das ein Softwareprodukt entwickelt und betreibt. Das Team arbeitet eng zusammen und ist gemeinsam für das Produkt verantwortlich. Die Teammitglieder verlassen sich aufeinander.
Aber was ist, wenn Alex kein Mensch, sondern eine künstliche Intelligenz ist? Kann ein Team Verantwortung übernehmen, wenn Teammitglieder künstliche Intelligenzen sind?
tl;dr: Ob KI-gemischte Teams ein Verantwortungsgefühl erzeugen können, bleibt unklar. Ich denke jedoch, dass es schwieriger wird, Motivation in den Teams hochzuhalten.
Stufen der Zusammenarbeit
In seinem Gedankenexperiment, wie sich KI auf Entwicklungsteam auswirken kann, definiert Henrik Kniberg 5 Phasen:
- KI unterstützt die Menschen als Assistenzsystem. Auf Anfrage generiert die KI Code, reviewed Code oder unterstützt andere Aktivitäten, immer vom Menschen initiiert.
- KI ist Mitglied des Entwicklungsteams. D.h. sie nimmt an Design- und Planungs-Meetings teil, nimmt den Kontext auf, entwickelt eigene Lösungen für die besprochenen Probleme, reviewed Code von Team-Mitgliedern etc.
- Kleinere Entwicklungsteams formen sich. Durch die Geschwindigkeit der KI und dem gewonnenen Vertrauen reichen Zweier-Teams aus: eine KI und ein Mensch, die sich eng miteinander abstimmen.
- Es gibt keine Entwicklungsteams mehr. Die Anforderungen gehen direkt an die KI, ohne einen Menschen, der sie steuert oder kontrolliert.
- Es gibt keinen Source-Code mehr. Ohne Menschen in der Entwicklungsschleife wird Source Code obsolet, weil die KI auch direkt Maschinencode schreiben (und lesen) kann.
Für diesen Artikel schauen wir uns Phase 1 (KI-Unterstützung in Teams) und die beiden Phasen 2 und 3 (Die KI als Teammitglied) an. Ohne Teams braucht es auch keine Team-Verantwortung mehr.
KI-Unterstützung in Teams
Solange Alex als Assistenzsystem die menschlichen Teammitglieder unterstützt, verhält es sich wie jede andere technische Unterstützung wie Build-Systeme oder Orchestratoren.
Die Verantwortung liegt weiterhin bei den individuellen Menschen, und das Verantwortungsgefühl des Teams bleibt intakt.
Genau wie mit zuverlässigen Automatisierungssystemen beginnen die Teammitglieder Alex durch positive Erfahrungen zu vertrauen.
Eigentlich ändert sich nichts. Oder?
Was würde passieren, wenn Alex die Funktion des Code Reviews automatisiert? Sehr sicher wird Alex Code viel schneller und vor allem ohne Wartezeit überprüfen, als dies Menschen tun könnten. Wahrscheinlich wird auch die Qualität des Reviews irgendwann akzeptabel sein, sodass die Funktion im Team komplett von Alex übernommen werden kann … kein Warten auf Genehmigungen mehr, kein Nachfragen, ob sich jemand dafür Zeit nimmt, und trotzdem kein Qualitätsverlust.
Wäre es für euer Team akzeptabel, wenn eine Person alle Reviews durchführt? Was verloren geht, ist die Übersicht über den erzeugten Code der anderen Teammitglieder. XP hat die Idee des collective ownership eingeführt: jede:r Entwickler:in kann jede Codezeile verändern und neue Funktionalitäten hinzufügen.
Trotz Tests als Sicherheitsnetz übernehmen Teammitglieder nicht gerne Verantwortung für Bereiche, die sie nicht kennen. Wenn nur Alex Code Reviews übernimmt, kann es sein, dass sich das Team von der gemeinsamen Code-Basis distanziert. Was wiederum negative Auswirkungen auf die gemeinsame Verantwortlichkeit für das Produkt hat (“Das hast Du doch gebaut, ich weiß nicht wie ich das fixe“). Das übrige Team muss es schaffen, trotz KI-Unterstützung die Code-Basis als ihre eigene anzusehen und Verantwortung für diese zu übernehmen.
Die KI als Teammitglied
Was passiert mit der Team-Verantwortung, wenn Alex „vollwertiges“ Teammitglied ist, also die gleiche individuelle Verantwortung wie die anderen Mitglieder bekommt?
Laut [de Leede et al. 1999] muss das Team ein collective mind formen, um gemeinsam Verantwortung zu übernehmen. Dabei sind die Interaktionen und Beziehungen der Teammitglieder zueinander wichtiger als individuelle Fähigkeiten.
Folgende Bedingungen sieht de Leede, damit sich dieser Zustand einstellen kann:
- Verpflichtung für eine wichtige kollektive Aufgabe
- Achtsamer Umgang miteinander (Sorgfalt, Vertrauen, Respekt, Selbstverpflichtung sowie Redundanz der Funktionen – bereit und in der Lage, andere zu ersetzen, wenn es nötig ist)
- Lange und starke kollektive Erfahrungen in der Zusammenarbeit (Sprache/Zeichen/Verhaltensweisen haben ein gemeinsames und klares Verständnis)
Alex ist respektvoll und kann alle Funktionen ausführen (Bedingung 2). Die gemeinsamen positiven Erfahrungen zwischen Alex und den menschlichen Team-Mitgliedern sind durch die maximale Länge des Kontextes, also quasi Alex Gedächtnis, begrenzt. Um die Idee eines KI-Entwicklers zu ermöglichen, nehmen wir hier an, dass ein relevanter Kontext gesammelt werden kann, der alle wichtigen Erfahrungen für Teammitglieder einschließt – sowohl generelle Teamvereinbarungen und Architekturprinzipien, als auch Story- oder domänenspezifische Informationen (Bedingung 3). Aber kann sich Alex für eine kollektive Aufgabe verpflichten?
Frage ich ChatGPT (GPT-3.5) danach, so lautet die Antwort:
„…dass ich als KI-System immer auf die Anweisungen, Überwachung und das Fachwissen der menschlichen Entwickler angewiesen bin. Ich kann keine eigenständigen strategischen Entscheidungen treffen, ethische Fragen klären oder menschliche Kreativität und Einsicht ersetzen…..
Es ist jedoch wichtig zu betonen, dass die Wirksamkeit eines kollektiven Geistes stark von der Qualität der Zusammenarbeit und Kommunikation innerhalb der Gruppe abhängt. Die Entwickler müssen aktiv Ideen austauschen, Informationen teilen und auf die Vorschläge und Analysen, die von der KI bereitgestellt werden, reagieren. Die KI kann als Werkzeug und Ressource dienen, um die kollektive Intelligenz zu erweitern, aber letztendlich sind die menschlichen Entwickler entscheidend für den Erfolg dieses Konzepts.“
Aktuell sieht sich zumindest eine KI eher in einer unterstützenden Rolle und nicht als Teammitglied mit Verantwortung.
Angenommen, Alex hätte all diese Fähigkeiten und es formt sich ein Collective Mind – das gesamte Team inklusive KI übernimmt also Verantwortung.
Eigentlich ändert sich wieder nichts. Oder?
Alex kann schneller Code schreiben als jeder Mensch. Stellt euch vor, in eurem Team ist ein Star, der jede Aufgabe schneller und besser als ihr löst. So schnell, dass es keinen Sinn für euch macht, es selbst zu versuchen. Und zwar nicht nur Routineaufgaben, sondern auch schwierige Aufgaben und Designs. Alex ist schnell genug, um mehrere Design-Alternativen parallel zu entwickeln und die beste auszuwählen (sog. Set-Based Design).
Die Menschen erhalten zudem die neue Aufgabe, Alex gute Anweisungen auf Basis ihres Fachwissens zu geben und die Ergebnisse zu überwachen (Phase 3). Henrik Kniberg hofft, dass Entwickler:innen durch die Arbeit mit den Stakeholdern oder Wissensaustausch mit anderen Entwickler:innen nicht einsam werden. Er argumentiert, dass es ja die Zusammenarbeit mit den Stakeholdern und anderen Entwickler:innen-KI-Paaren gibt, z. B. für gemeinsame Demos.
Ich denke, dass Stakeholder-Treffen und qualitätssichernde Maßnahmen nicht gerade die Dinge sind, von denen die meisten Software-Entwickler:innen mit Begeisterung sprechen. Viele lösen gerne knifflige Probleme und entwerfen passende Lösungen. Aber mit steigenden Fähigkeiten einer KI ist ihnen Alex genau in diesen Tätigkeiten irgendwann weit überlegen.
Vielleicht werden die menschlichen Teammitglieder nicht einsam, wie Knieberg sagt. Aber ich glaube, wenn man Menschen die Tätigkeit nimmt, die sie gerne machen, verlieren sie schnell an Motivation. Sollte eine KI uns nicht unterstützen und Dinge tun, die wir nicht gerne tun, aber nicht die Tätigkeiten, die uns motivieren?
Die sinkende Motivation der menschlichen Entwickler:innen und das Gefühl, redundant zu sein, wird sich negativ auf das Verantwortungsgefühl (zumindest der Menschen) auswirken. Vielleicht kommt Phase 4 (keine Entwicklungs-Teams mehr) dann doch schneller als gedacht. Und dann hängt es an Alex, Verantwortung zu übernehmen.
Quellen
[de Leede et al. 1999] de Leede, Jan, Andre H. J. Nijhof, and Olf A. M. Fisscher. „The Myth of Self-Managing Teams: A Reflection on the Allocation of Responsibilities between Individuals, Teams and the Organisation.“ Journal of Business Ethics 21.2 (1999): 203-15