Posts mit dem Label It's a Trap! werden angezeigt. Alle Posts anzeigen
Posts mit dem Label It's a Trap! werden angezeigt. Alle Posts anzeigen

Dienstag, 12. August 2025

The AI Build Trap

An sich klingt es erst einmal wie etwas Positives: mit Hilfe der immer besseren und intuitiveren KI-Tools ist es heute so einfach wie nie, Software zu erstellen. Sei es als Programmier-Unterstützung, wie im Fall des Github Copilot, oder als ein Programm, dass einem den Grossteil der Arbeit abnimmt, wie Lovable - es gibt eine ganze Reihe von Möglichkeiten, die eigene Produktivität in bisher ungeahnte Höhen zu schrauben. Und doch steckt auch ein Risiko dahinter.


Vereinfacht gesagt: wenn es auf einmal so einfach ist, neue Programme und Features zu erstellen, wird das auch mit grösserer Bereitwilligkeit getan werden als bisher. Statt aufgrund der begrenzten Kapazität der IT-Abteilungen nur die wirklich wichtigsten Anforderungen umzusetzen, kann jetzt jeder Kundenwunsch, jede einzelne Stakeholder-Anforderung und jede Entwickler-Idee in Produktion gebracht werden. Und das ist bei weitem nicht so positiv, wie es klingen mag.


Die offensichtlichste Folge eines derartigen bereitwilligen Umsetzens aller Wünsche ist die Entstehung von Bloatware, also von Anwendungen, die derartig mit Funktionen überladen sind (von denen viele nur eine sehr kleine oder ggf. sogar lediglich eine hypothetische Anwendergruppe haben) dass sie unübersichtlich werden, schlecht zu bedienen sind, hohe Ladezeiten haben und viel Speicherplatz einnehmen. Mit anderen Worten - es wird ein aus Kundensicht schlechtes Produkt.


Und auch unterhalb der Benutzeroberfläche führt das massenhafte Erzeugen von Funktionalitäten (und damit von Code) zu Problemen. Auch hier ist die Unübersichtlichkeit ein zentrales Problem. Je grösser die Codebase wird, desto schwieriger wird es zu sagen, an welcher Stelle was passiert. Die Überprüfung der KI-Ergebnisse durch einen Menschen (deren Verzicht einem Kontrollverlust gleichkäme) wird immer schwieriger und irgendwann sogar unmöglich.

 

Diese Phänomene erinnern nicht ohne Grund an die Build Trap (sinngemäss die Produktivitäts-Falle), die 2019 von Melissa Perri in ihrem gleich benannten Buch beschrieben wurde. Auch ihr selbst ist diese Parallele aufgefallen, und sie hat sie in mehreren Social Media-Posts thematisiert. Von ihr stammt auch die Erweiterung des ursprünglichen Begriffs zu dem der AI Build Trap, der damit als zusätzliche und spezifische Ausprägung dieses Antipatterns beschrieben ist.


Um auch hier zu einem konstruktiven Ausblick zu kommen: in die AI-Produktivitäts-Falle zu geraten, ist zum Glück kein Naturgesetz, man kann (und sollte) es auf verschiedene Weisen verhindern. Zum einen, indem man durch kleine, schnell veröffentlichte Incremente überprüft, ob es für die neuen Funktionen überhaupt Bedarf oder Akzeptanz gibt, zum anderen indem intern regelmässig sichergestellt wird, dass der Code von Menschen verstanden wird und ggf. verändert werden kann.


Das kann sich natürlich wie eine Entschleunigung der gerade erst gewonnenen Programmier-Höchsgeschwindigkeit anfühlen - und es ist auch eine. Trotzdem ist es sinnvoll, sich darauf einzulassen, wenn man nicht riskieren will, sich in der Build Trap wiederzufinden, und Produkte gebaut zu haben, die vom  Kunden nicht gewollt und von den eigenen Entwicklern nicht verstanden werden.

Montag, 26. Juni 2023

Die Verflechtungsfalle (II)

Bild: Flickr / Oregon State University - CC BY-SA 2.0

Unter den gedanklichen Konstrukten, die ich aus der Politikwissenschaft in meinen Beruf übernommen habe, ist die Verflechtungsfalle einer meiner Favoriten. Sie beschreibt die Situation in der sich überschneidende Verantwortlichkeiten zu einer Koordinations-, Kooperations- und Kontrollbürokratie führen, die alles lähmt, die aber auch einen derartigen Komplexitätsgrad hat, dass sie nur mit erheblichen Aufwänden wieder auflösbar ist. Fast alle grossen Organisationen sitzen in dieser Falle.


In welcher Form sie auftritt kann von Fall zu Fall unterschiedlich sein, es gibt aber einen grossen, immer wieder anzutreffenden Klassiker: eine Matrix-Organisation, die einer auf dem Anforderungsmanagement basierenden Budgetplanung unterliegt. Eine derartige Struktur ist ein fast sicherer Garantiefaktor für das Zuschnappen der Verflechtungsfalle - und bemerkenswerterweise ist sie trotzdem die Grundlage für das Organisationsdesign vieler Grossunternehmen.


Wie sieht das in der Realität aus? Zunächst so, dass die Verantwortung für einzelnen Programme, Projekt- oder Produktteams aufgeteilt wird. Häufig ist eine Trennung in Personal- und Produktverantwortung, auch die lassen sich aber nochmal unterteilen. Die Produktverantwortung lässt sich z.B. trennen in Entwicklung und Betrieb, der Personalverantwortung in Disziplinarisch und Fachlich. Es wirken also zwei, drei, vier (oder noch mehr) Manager gleichzeitig auf die Menschen der Umsetzungs-Ebene ein.


Das verkompliziert sich nochmal dadurch, dass die Gruppen, auf die die jeweiligen Manager einwirken, sich nur zum Teil überschneiden. So sind z.B. die Projektleiter für ihre jeweiligen Projekte zuständig, die Abteilungsleiter für jeweils eine über alle Projekte verteilte Gruppe von Spezialisten (etwa die Frontend-Entwickler) und die Architekten dafür, dass diese Menschen sich in bestimmten Themenfeldern (etwa bei der Weiterentwicklung des Intranets) an bestimmte system- und projektübergreifende Standards halten.


Alleine das wäre schon ausreichend, um für regelmässige Abstimmungsprobleme zu sorgen, aber jetzt kommt die Budgetierung dazu. In solchen Konstellationen verfügen in der Regel die Programm- oder Projektleiter über die Budgets. Diese nutzen sie um auf einem unternehmens-internen Markt von den Abteilungen jeweils die Spezialisten einzukaufen, mit denen die gerade anliegenden Anforderungen umgesetzt werden können. Und nur damit werden diese dann beauftragt.


Die anderen Manager bringt das in ein Problem. Die Ziele der Personalentwicklung (z.B. alle lernen regelmässig neue Programmiersprachen) oder der Architektur (z.B. alle Anwendungen bestehen aus Self Contained Systems) können den Zielen der Produktentwicklung widersprechen, da sie die Umsetzung von Anforderungen temporär oder dauerhaft verlangsamen würden. Da aber an der Produktentwicklung das Budget hängt, droht allen anderen Zielen permanent das Schicksal "wegpriorisiert" zu werden.


Um diesem Schicksal zu entgehen, wird oft versucht, auf einem anderem Weg als über das Budget Einfluss auf die Produktentwicklung zu nehmen. Es gibt beispielsweise Organisationen, in denen Architekten unternehmensweit geltende Entwicklungsvorschriften machen können, deren Einhaltung in einer Qualitätssicherungsphase überprüft wird. Und die Abteilungsleiter können ihre Ziele in die Jahresziele ihrer Untergebenen schreiben, wodurch die versuchen werden, sie irgendwie unterzubringen.


Die häufige Folge eines solchen Organisationsdesigns ist eine auf allen Ebenen ausgetragener ständiger Zielkonflikt, bestehend aus Verhandlungen, Eskalationen, verweigerten Freigaben, zurückgehaltenen Informationen, Kompromissen und Versuchen vollendete Tatsachen zu schaffen, wodurch sich alle Beteiligten gegenseitig behindern. Und wenn dann auch noch jeder Manager Teile seines Gehalts mit der Erreichung seiner Ziele verknüpft hat, wird er für ein solches Verhalten sogar noch belohnt.


Wenn es das Ziel einer Organisation ist, agile Produltentwicklung zu betreiben, ist das alles natürlich nicht zielführend. Wie man davon wegkommt hängt sehr von der Ausgangssituation ab, gute Ideen sind aber, Produkt- und Personalverantwortung zusammenzulegen, die Verfolgung gegenläufiger Ziele nicht zu belohnen (alleine das wäre ein Thema für sich) und die Budgetierung nicht mehr auf Anforderungen beruhen zu lassen sondern auf stabilen, produktorientierten Teams.


In fast allen Fällen sind das tiefgreifende Eingriffe in die bisherigen Strukturen und Abläufe, wodurch das unschöne Kriterium erfüllt wird, das aus einer Verflechtung die Verflechtungsfalle macht - man kommt nur schwer wieder heraus. Aber man kommt heraus, wenn man es darauf anlegt. Ganz nebenbei ist das auch ein guter Test um herauszufinden, wie ernst es mit der Agilität gemeint ist. Dort, wo es keine derartigen Anpassungen gibt, im Zweifel nicht so sehr.

Montag, 21. März 2022

Die Diktatoren-Falle

Bild: Wikimedia Commons / Museo del Templo de Santo Domingo de Guzmán - Public Domain

Ein Blick über den Telerrand kann interessante Inspirationen bringen. Auf The Atlantic schreibt Brian Klaas über die Dictator Trap, hinter der sich verbirgt, dass die Inhaber bedeutender Machtpositionen gefährdet sind die Realität nur noch gefiltert wahrnehmen zu können, mit schlechten Entscheidungen als Folge. Was beim Lesen ins Auge fällt: vieles von dem was Klaas hier beschreibt trifft auch auf Manager in grossen Firmen zu.


Um mit einem Disclaimer anzufangen: natürlich ist nicht jeder Manager ein Autokrat, es gibt auch solche die einen jener Führungsstile pflegen die als "lateral", "partizipativ" oder "auf Augenhöhe" bezeichnet werden. Sehr viele setzen aber in ihrer Berufsausübung stark auf einsame Entscheidungen, Einweg-Kommunikation, direktive Führung und Absonderung von der "Ausführungs-Ebene".1 Um diese zweite Gruppe soll es hier gehen.


Wie so häufig steht auch hier am Anfang eine rationale Entscheidung: wer neu in eine zentrale Position aufgerückt ist will sich meistens mit Mitstreitern umgeben die die eigenen Ziele und Überzeugungen teilen, umgekehrt macht es Sinn sich von Menschen mit gegenläufigen Zielen und Ansichten zu trennen.2 Das sorgt zu Beginn für grössere Handlungsfähigkeit, steigert aber das Risiko, dass Group Think entsteht und auch relevante abweichende Einwände unter den Tisch fallen.


Selbst dort wo sogar die ähnlich denkenden Unterstützer der Meinung sind, dass eine getroffene Entscheidung falsch ist, wird Widerspruch mit der Zeit immer weniger stattfinden. Wenn die eigene Karriere auf das Wohlwollen des Chefs angewiesen ist, ist es naheliegend von jetzt an dessen Ansichten zu den eigenen zu machen. Und für den der das irgendwann mit seinen Überzeugungen nicht mehr vereinbaren kann ist es naheliegend zu gehen und bei einem anderen Förderer Karriere zu machen.


Auch das lässt sich aber noch steigern. Wenn falsche Entscheidungen an der Spitze zu Misserfolgen geführt haben kann es sein, dass diese aus Angst um die eigene Karriere oder als Loyalitätsbeweis verschwiegen oder umgedeutet werden - die fehlgeschlagene System- oder Methodenumstellung wird dann nach oben als Erfolg reportet, im Zweifel durch kreative Auslegung und selektive Nutzung von Daten oder Ergebnissen.3 Ein Phänomen das häufiger ist als man denken sollte.


Die Diktatoren-Falle ist damit zugeschnappt. Der Manager an der Spitze hat aus seiner Sicht alles richtig gemacht - sich mit Unterstützern umgeben und diejenigen unter ihnen gefördert die Erfolgsmeldungen statt ständiger Bedenken vorgetragen haben. Das Ergebnis ist aber eine Abkoppelung von der Realität. Probleme und Fehlschläge werden verschwiegen, Erfolge aufgebauscht oder künstlich konstruiert. Und wenn dieses Konstrukt irgendwann zusammenbricht ist es für ihn überraschend.


Um dieser Situation zu entgehen gibt es verschiedene Wege. Einer besteht darin, sich bewusst mit einigen kritischen Geistern zu umgeben, die auch dezidiert abweichende Meinungen vertreten. Das kann zwar die Tendenz zum Groupthink aufbrechen, führt aber häufig dazu, dass nur wenige "Hofnarren" das Recht haben unsanktioniert zu widersprechen, während die Dysfunktionen in der umgebenden Organisation erhalten bleiben.


Der erfolgversprechendere Ausweg aus der Diktatoren-Falle ist dagegend verblüffend schlicht - man muss nur aufhören sich wie ein Diktator zu benehmen. Wer Entscheidungen delegiert, kritisches Feedback fördert, Fehler und Misserfolge als Chance zur Verbesserung und zum Lernen sieht und Beförderungs-Entscheidungen versachlicht und von persönlichen Beziehungen trennt, bei dem ist eine Abkoppelung von der Realität deutlich unwahrscheinlicher.


1Warum solche Menschen häufig in Führungspositionen landen wäre nochmal ein Thema für sich
2Natürlich läuft diese Trennung in Unternehmen deutlich zivilisierter ab als in Diktaturen
3Gerade bei "Weichen Themen"wie z.B. Kulturwandel ist das einfach möglich

Montag, 20. September 2021

The agile Bookshelf: Escaping the Build Trap

Bild: CCNull / Tim Reckmann - CC BY 2.0

Es gibt Bücher, deren Autor ein seltenes Kunststück fertigbringen: schon nach wenigen Seiten hat man das Gefühl, dass die Kernbotschaft übermittelt wurde und eigentlich kaum noch ein relevanter Mehrwert kommen kann, aber wenn man doch weiterliest wird man postitiv überrascht, erhält zusätzlichen Wissensgewinn und wertvolle Impulse. Melissa Perri's Erstwerk Escaping the Build Trap gehört in diese bemerkenswerte Kategorie.


Dass früh der Eindruck aufkommt, dass schon alles Pulver verschossen sein könnte, liegt daran, dass bereits im Vorwort abschliessend erklärt wird was die "Build Trap" ist - das im Akkord stattfindende Einbauen immer neuer Features in ein Produkt, ohne zu überprüfen ob diese von den Anwendern gewünscht oder benutzt werden. Auch der verdeutlichende Erfahrungsbericht (der natürlich einen die Botschaft unterstreichenden Aha-Effekt enthält) findet sich bereits hier.


Einen Hinweis darauf, warum dieser merkwürdig frühe Kulminationspunkt gewählt wurde, liefert Perri in der Einleitung selbst: insgesamt dreimal hat sie ihr Werk vor der Veröffentlichung überarbeitet und dabei jedesmal den Focus geweitet - von der in der "Produktionsfalle" feststeckenden urprünglichen Zielgruppe (den einzelnen Produktmanagern) über immer grössere Einheiten bis zuletzt zu einem Gesamtblick auf ganze Firmen. Der Titel und die frühe Auflösung dürften noch Teil der ersten Version sein.


In der veröffentlichten Fassung1 wird auch über die Build Trap hinaus das ganz grosse Bild des Produktmanagements gezeichnet, angefangen von der Frage, was überhaupt ein Produkt ist, über die Produktvision, die Produktstrategie, die produkterzeugende Organisation (und deren idealen Aufbau), die Budgetierung, die Rolle und die Karrierepfade des Produktmanagers und die Erfolgsmessungen, bis hin zu den Lern- und Erkenntnisprozessen und zahlreichen anderen Themen.


Dass das Buch den Anspruch verfolgt, für alle Karriere- und Erfahrungsstufen geeignet zu sein, merkt man ihm manchmal an,2 zumindest wenn man selbst bereits einige Erfahrungen mitbringt und daher einen Teil der beschriebenen Inhalte bereits kennt, es entsteht aber dadurch ein stimmiges Gesamtbild, das Einsteigern eine gute Orientierung über alle relevanten Themengebiete ermöglicht und erfahrenen Produktmanagern vieles wieder in Erinnerung rufen dürfte.


Eine weitere Besonderheit besteht darin, dass Perri sich (z.T. explizit, z.T. unterschwellig) an den dominierenden agilen Frameworks Scrum und SAFe, bzw. an deren Rollen des Scrum-Product Owners, des SAFe-Product Owners und SAFe-Product Managers abarbeitet. Unter anderem kritisiert sie die häufige Besetzung der Product Owner mit relativ unerfahrenen Personen und die Entkoppelung von Team-orientierten und Kunden-orientierten Rollen in SAFe. Man kann ihr da nur zustimmen.


Ungeachtet dessen lässt sie aber keinen Zweifel daran, dass sie eine Befürworterin der agilen Produktentwicklung ist und betont auch ihren eigenen Lean Startup-Hintergrund. Die Aussagen von Escaping the Build Trap sind daher gut mit den gängigen agilen Frameworks (ausser SAFe) vereinbar, so dass man allen derartig arbeitenden Menschen das Lesen bedenkenlos empfehlen kann, gerade als Ergänzung zu der häufig dominierenden Prozess- oder Technologie-Sicht.


Etwas kurios (aber nicht weiter störend) ist die in unregelmässigen Abständen auftauchende fiktive Firma Marquetly, der Melissa Perri in verschiedenen fiktiven Erlebnisberichten hilft, ihr Produktmanagement zu optimieren. Vermutlich war eine der früheren Fassungen des Buches in Romanform verfasst, vergleichbar mit Gene Kim's Phoenix Project, was dann durch die weiter oben erwähnten Überarbeitungen in den Hintergrund getreten ist.


Zuletzt bietet das Buch in seinem letzten Kapitel auch eine praktische Hilfe für die Selbsteinschätzung. Mit einem kurzen Fragenkatalog und einer Erläuterung der passenden Antworten kann jeder selbst überprüfen wie produktorientiert seine Firma ist, bzw. ob sie in der Build Trap feststeckt. Ist das letzte der Fall, kann es ein guter nächster Schritt sein, allen Entscheidungsträgern dieses Buch zu empfehlen.


1Genauer gesagt in der zweiten Auflage, auf der diese Besprechung beruht
2Perri schreibt selbst, dass sie das beabsichtigt

Montag, 19. April 2021

Die Autonomie-Falle

Bild: Flickr / Royalty Free - CC BY 2.0

In der Theorie ist es ganz einfach: das Management erkennt, dass es für Flaschenhälse und Stille Post-Effekte sorgt wenn es alles zentral entscheiden will, also delegiert es Kompetenzen auf die niedrigeren Hierarchieebenen. Dort können die Mitarbeiter jetzt selbst Entscheidungen treffen ohne für alles nach Erlaubnis zu fragen und auf die Genehmigung warten zu müssen. Beschwingt wird in die neue Arbeitswelt gestartet - und zu oft ist eine Bruchlandung die Folge.


Dass es häufig zu diesen Bruchlandungen kommt hat Gründe. Wer in seiner Karriere noch keine wichtigeren Projekt- oder Produktmanagement-Entscheidungen treffen musste wird häufig nicht das Wissen über alle dazugehörigen Aspekte haben und darum wichtige vergessen und unwichtigen zu viel Aufmerksamkeit geben. Der amerikanische Wirtschaftswissenschaftler Claus W Langfred hat das schon 2008 unter dem Namen der "Autonomie-Falle" in einer Studie beschrieben, später ist dieser Begriff vom ebenfalls amerikanischen Informatik-Professor Cal Newport weitergedacht worden.


Langfred und Newport beschreiben vor allem zwei Aspekte. Zum einen durch welche System-Defizite es überhaupt dazu kommt, dass niemand die Delegation von Verantwortung mit einer Weiterqualifizierung der Mitarbeiter verbindet (überspitzt zusammengefasste Antwort: weil zuwenig mitgedacht wird), zum anderen was die Folgen davon sind (nochmal überspitzt: es entsteht ein hyperaktives Schwarm-Bewusstsein, das ständig irrelevante Arbeit erzeugt). Mindestens genauso interessant ist aber eine andere Frage - welches Wissen hätte eigentlich zusammen mit der Delegation vermittelt werden müssen?


Als erstes dürfte hier das Kontextwissen zu nennen sein. In welchem Umfeld sind die Entscheidungen zu treffen für die man auf einmal zuständig ist? Zu welchen anderen Organisationseinheiten bestehen Abhängigkeiten und wer ist dort jeweils der Ansprechpartner an den man sich zuerst wenden sollte? Bereits bei Personen auf der gleichen Hierarchie-Ebene ist in dieser Hinsicht schon viel zu beachten, noch komplizierter wird es wenn andere Hierarchiestufen beteiligt sind. Die Frage wo Selbstorganisation aufhört und wo man weiter eine Genehmigung braucht ist hier von elementarer Bedeutung.


Ein weiterer Punkt ist das technische Wissen. Ist das was zur Entscheidung ansteht überhaupt mit den vorhandenen Systemen umsetzbar oder müssten die umkonfiguriert oder sogar umgebaut werden? Und wenn das zweite der Fall ist - wer könnte (und darf) das machen? Wer benutzt diese Systeme sonst noch und sollte daher in die Entscheidung einbezogen werden, welche Architekturparadigmen sind zu beachten, gibt es bereits Pläne für eine Ablösung oder Weiterentwicklung und was sind erfahrungsgemäss die Teile die besonders kompliziert oder instabil sind?


Auch Wissen um die Prozesse gehört dazu. In welchem Kommunikations-Kanal, mit welchen Informationen und mit welchen Fristen müssen Informationen verschickt und Änderungen angekündigt werden, welche Gesetze und Vorschriften sind relevant und was muss wie dokumentiert werden? Auch die inoffiziellen Prozesse sind wichtig. Wer hat beim jeweiligen Thema Interesse und Einfluss, wer könnte ein Unterstützer sein und wer gilt eher als Quertreiber? Wer das nicht weiss wird sich mitunter an unerwarteten Stellen schwertun.


Genug der Problembeschreibung, wie kann die Befreiung aus der Autonomiefalle gelingen? Schulungen sind verbreitet aber meistens ineffektiv, Peer Groups sind hilfreich, stehen aber oft vor dem selben Problem. Coaching durch die bisherigen Entscheidungsträger könnte die beste Lösung sein, oft sind diese aber mit dem Konzept nicht vertraut (nochmal eine spezielle Ausprägung der Autonomiefalle: viele Manager haben wenig Erfahrung damit Anderen zu helfen ohne die Entscheidung an sich zu ziehen).


Eine mögliche Lösung kommt aus David Marquets Buch Turn the Ship Around. In einem (z.B. wöchentlichen) Regeltermin kann man dem bisherigen Entscheidungsträger erzählen was man vorhat (ich möchte Folgendes erreichen) und wie man es angehen will (dazu plane ich Folgendes zu tun). Der kann dann auf mögliche Probleme hinweisen und Erfahrungswerte weitergeben, ohne dass er die Entscheidung übernimmt oder genehmigt. Mit der Zeit kann dieser Termin dann immer seltener werden, so dass man dadurch nach und nach aus der Autonomiefalle herausgeführt wird.

Mittwoch, 28. Oktober 2020

Die Testautomatisierungs-Falle (und wie man ihr entkommt)

Bild: Flickr / Karen Rustad Tölva - CC BY 2.0

In den Diskussionen um Psychologische Sicherheit, Kultur, "Agile Mindset" und Change Management geht es manchmal unter, aber zumindest im IT-Kontext hat Agilität auch immer eine sehr technische Seite, ohne die schnelle Reaktions- und Lieferfähigkeit weder denkbar noch umsetzbar ist. Einer der wichtigsten Aspekte ist dabei die Automatisierung der Software-Tests, also der Qualitätssicherung der neu erstellten Funktionalitäten. Und wie so oft gilt auch hier - es reicht nicht es zu machen, man muss es auch richtig machen.


Zur Erinnerung: während die Abnahme-Tests im Sprint noch irgendwie mit manueller Arbeit zu stemmen sein können ist das bei den Regressionstests nicht mehr der Fall. Unter denen versteht man das regelmässige Überprüfen aller (!) älteren Funktionen, womit sichergestellt wird, dass diese nicht versehentlich durch neuere Entwicklungen beschädigt wurden. Bei grösseren IT-Systemen kann das eine fünfstellige Anzahl an Tests erfordern, was bei manuellem Durchklicken Wochen und Monate dauern kann.


Die einzige Lösung wenn man schnell sein will ist das Automatisieren möglichst aller Regressionstests. Erst wenn diese von einem Computerprogramm ausführbar sind können die erforderlichen Mengen und Geschwindigkeiten erreicht werden die nötig sind um Fehler schnell entdecken und beheben zu können. Ohne Testautomatisierung kommen bei grösseren Systemen die Jahres- und Quartals-Releases zurück. Aber (Ironie der Geschichte): auch eine falsch durchgeführte Testautomatisierung kann den selben Effekt haben.


Um aussagekräftig zu sein müssen die automatisierten Testsuiten immer dem aktuellen Stand der jeweiligen Anwendungsentwicklung entsprechen, sonst geben sie Fehlermeldungen aus sobald ein Feature verändert wurde, die Aktualisierung der Tests aber noch nicht stattgefunden hat. Das Risiko ist schnell erkennbar: wenn bei grösseren Änderungen hunderte von Tests aktualisiert werden müssen kann das einen Pflegeaufwand bedeuten, der wieder Wochen und Monate dauert - damit ist man wieder bei den Zeiträumen die man vorher hatte.


Um diesem Phänomen (der so genannten "Testautomatisierungs-Falle") zu entgehen müssen Erstellung und Struktur der automatisierten Tests an die agilen Entwicklungsprozesse angepasst werden. Wie das im Einzelfall aussieht kann von Fall zu Fall anders aussehen, folgende Grundsätze sind aber sehr häufig: Zusammenlegung von Test- und Entwicklungsteam, Modularisierung und Parametrisierung.


Die Zusammenlegung von Test- und Entwicklungsteam ist die einfachste, weil eher organisatorische Massnahme. Statt zwischen Entwicklung und Test einen kleinen Wasserfall aufzubauen werden die Tests jetzt gleich vom Entwicklungsteam erstellt, wodurch sie schneller fertig und aktueller sind. Ein unterschätzer Nebeneffekt kommt dazu: die "Tester" können in diesem Vorgehen selbst programmieren, was die Voraussetzung für Automatisierung ist.


Die Modularisierung sorgt dafür, dass der Instandhaltungsaufwand sinkt. Wenn z.B. nicht mehr in jedem von 100 Tests die Login-Schritte separat ausgeführt werden, sondern diese Schritte nur noch aus einem einzigen zentral gepflegten Modul abgerufen werden, muss ein geänderter Login-Vorgang nur noch einmal geändert werden statt 100 mal. Der Instandhaltungsaufwand sinkt damit auf 1% seines Umfangs (!).


Ähnliche Auswirkungen hat eine Parametrisierung. Bei ihr werden veränderbare Variablen (Testumgebungen, Browser, Testdaten, etc.) nicht mehr hart in den Test gecodet sondern ebenfalls zentral gepflegt. Bei der Test-Suite einer Web-Anwendung reicht es dann eine einzige zentrale Einstellung zu ändern und hunderte Tests laufen auf Firefox statt auf Chrome. Auch hier sinkt der Instandhaltungsaufwand immens.


Es ist offensichtlich, dass (und warum) die Testautomatisierungs-Falle und die dazugehörenden Gegenmassnahmen von zentraler Bedeutung für agile Software-Entwicklung sind. Und ganz nebenbei ergibt sich aus ihnen übrigens auch ein brauchbarer Lackmustest für Agile Coaches und Scrum Master. Die müssen nicht selbst Tests automatisieren können, sie sollten die Testautomatisierungs-Falle aber beschreiben können. Wenn das nicht geht sind sie (noch) zu technikfern.

Freitag, 17. Juli 2020

Die Thukydides-Falle

Bild: Wikimedia Commons / Museo Antonino Salinas - CC BY 2.5
Vor langer Zeit entwickelte ein griechisches Tal namens Lakonia eine einzigartige Kriegerkultur. Von der Kindheit an wurde jeder Einwohner in den Kampfkünsten ausgebildet, was zur Herausbildung einer Armee führte die so stark war, dass sie als die mächtigste in ganz Griechenland galt. Erst Jahrhunderte später entstand auf den weiter östlich gelegenen Inseln und Halbinseln ein Militärbündnis vergleichbarer Stärke, der attische Seebund. Es kam wie es kommen musste - schon nach wenigen Jahrzehnten führten die beiden Krieg gegeneinander.

Dass wir diesen Krieg (auch bekannt als Krieg zwischen Sparta und Athen oder Peleponnesischer Krieg) heute als zwangsläufig ansehen verdanken wir dem griechischen General und Historiker Thukydides, der in seiner Geschichte des Peleponnesischen Krieges davon ausging, dass die Umstände nichts anderes zugelassen hätten - Sparta hätte seine hart erkämpfte dominante Position nicht aufgeben wollen, Athen hätte aber auf den eigenen Aufstieg nicht verzichten wollen, so dass alles auf einen Konflikt zusteuerte.

The real cause [of the war] I consider to be the one which was formally most kept out of sight. The growth of the power of Athens, and the alarm which this inspired in Lacedaemon, made war inevitable.

Diese Analyse von Thukydides wurde mehr als 2000 Jahre später vom amerikanischen Politik-Professor Graham Allison in eine generelle Regel überführt, die er die "Thukydides-Falle" nannte. Ihr zufolge führt eine Situation in der sich eine bestehende Kraft durch eine neue Kraft bedroht fühlt fast immer zu einer feindseligen Auseinandersetzung. Der Grund dafür ist, dass dieses Gefühl des Bedroht Werdens alles andere überlagert, wodurch auch eigentlich beherrschbare Meinungsverschiedenheiten dramatisiert werden und zu einer Eskalationsspirale sich ständig steigernder Reaktionen und Gegenreaktionen führen.

A risk associated with Thucydides’s Trap is that business as usual - not just an unexpected, extraordinary event - can trigger large-scale conflict. When a rising power is threatening to displace a ruling power, standard crises that would otherwise be contained [...] can initiate a cascade of reactions that, in turn, produce outcomes none of the parties would otherwise have chosen.

Angelehnt an Allison können die genannten Phänomene nicht nur in der Politik beobachtet werden sondern auch in Organisationen die gerade Veränderungen durchlaufen. Es gibt die Inhaber bestehender Machtpositionen, die bisher das Recht hatten Prozesse zu gestalten, Budgets zu verplanen, Ziele zu setzen oder den Zugang zu Kunden und Top-Management zu gewähren oder zu verweigern, und es gibt auf der anderen Seite die Anhänger und Vertreter von neuen Ansätzen, von New Work, Lean, Agile oder Beyond Budgeting, die mit diesen Themen anders umgehen und zunehmend mit ihren alternativen Ansätzen Gehör finden.

Da diese neuen Ansätze sehr häufig die bestehenden Machtstrukturen und Karrierepfade in Frage stellen kann sich für die Vertreter des Status Quo auch hier ein Bedrohungsgefühl einstellen. An dieser Stelle besteht dann das Risiko, dass die Thukydides-Falle zuschnappt. Normale Meinungsverschiedenheiten über Produktentwicklung, Beförderungen, Umorganisationen, Budgetierungen, etc. können dann als Teil einer sich ständig verschärfenden Auseinandersetzung zwischen "alt" und "neu" wahrgenommen werden und diese auch weiter befeuern.

Sich dieser Mechanismen bewusst zu sein ist bereits ein erster Schritt in Richtung zu ihrer Überwindung, was folgen muss ist das in Veränderungsvorhaben übliche Konfliktmanagement. Ist den Beteiligten klar, dass hier ein Richtungs-, bzw. Machtkonflikt auf andere Bereiche übergreift? Sind sie bereit dieses Übergreifen zu verhindern? Sind sie überhaupt gewillt diesen (möglicherweise unterschwelligen) Konflikt zu thematisieren?

Im Zweifel braucht es in diesen Momenten auch eine klare Positionierung der oberen Hierarchieebenen: klar zu kommunizieren was das zukünftige Zielbild der Organisation sein soll kann den Konflikt und seine Entscheidung vorwegnehmen. Das wird natürlich nicht jedem Beteiligten gefallen, es kann aber verhindern, dass "in den Krieg gezogen wird".

Dienstag, 4. Oktober 2016

Die Verflechtungsfalle

Bild: Wikimedia Commons / Fallaner - CC BY-SA 4.0
Wieder einmal ist eine großartige Agile Cologne vorbei und für mich hatte sie diesesmal den gefühlten Schwerpunkt "Scrum und Management". Während meiner Session, aber auch in vielen anderen stellte sich dabei immer wieder die Frage, warum es auf allen höheren Hierarchie-Ebenen Menschen gibt, die sich vehement gegen die agile Transition stemmen. Neben einigen (zu) einfachen Erklärungsansätzen (z.B. der Angst vor Macht- oder Statusverlust) kamen auch komplexere zur Sprache, von denen ich einen hier vorstellen möchte: die Verflechtung, bzw. die Verflechtungsfalle. Ursprünglich für die Analyse politischer Systeme gedacht lassen sich diese von Prof. Fritz Scharpf entwickelten Begriffe auch auf sonstige Organisationen anwenden und bieten eine nachvollziehbare Deutung für scheinbar irrationales Managementverhalten.

Verflechtung

Verflechtung kann entstehen, wenn verschiedene organisatorische Ebenen oder Einheiten eine gemeinsame Verantwortung für eine Organisationseinheit oder ein Ergebnis haben, für die sie sich eng abstimmen müssen. Eine typische Folge davon ist eine umfangreiche Koordinations-, Kooperations- und Kontrollbürokratie, die zum einen hemmend und dysfunktional ist, aber auf der anderen Seite immer weiter ausgebaut wird (basierend auf dem Irrglauben, damit die Dysfunktionalität auflösen zu können). Ab einem gewissen Punkt wirken die Prozesse und Vorschriften so stark verlangsamend und verkomplizierend, dass die Beteiligten nach Wegen suchen sie zu umgehen: es entstehen informelle Parallelstrukturen, in die sich immer weitere Entscheidungswege verlagern - die so genannte brauchbare Illegalität, über die ich letztes Jahr geschrieben habe. Die Überlagerung und Zunahme der formellen und informellen Strukturen ergibt in Summe das Phänomen der Verflechtung.

Die Verflechtungsfalle

Anders als man denken könnte liegt es häufig nicht im Interesse der Beteiligten die Verflechtung aufzulösen. Wer informell bestimmte Entscheidungskompetenzen gewonnen hat will sie nicht verlieren, umgekehrt wollen viele der formell zuständigen Personen sie nicht zurückhaben, da sie Überarbeitung oder Überforderung fürchten. Das obere Management will die Koordinations- und Kontrollprozesse nicht aufgeben, da sie ein Gefühl (bzw. die Illusion) von Kontrolle vermitteln, die mittleren Hierarchieebenen wiederum verdanken diesen Prozessen häufig ihre gesamte berufliche Existenzberechtigung und verteidigen sie entsprechend verbittert. Ein spezieller Fall liegt vor, wenn Teile des Managements kontraproduktive oder fehlerhafte "Verbesserungsmassnahmen" durchgeführt haben, z.B. die Einführung von Scrum nur in einigen IT-Teams bei gleichzeitiger Beibehaltung von Wasserfall im restlichen Unternehmen. Da der eigene Name und häufig die eigene Karriere mit diesen Massnahmen verbunden sind werden ihre negativen Auswirkungen oft auch dann noch abgestritten wenn sie für alle Beteiligten offensichtlich sind.

Der gordische Knoten

Ist ein Unternehmen in eine Verflechtungsfalle getappt kann es sich aus den genannten Gründen nur sehr schwer aus ihr befreien. Ähnlich wie im Fall des gordischen Knotens ist die Situation in vielen Fällen so verworren, dass eine Entwirrung einen Komplexitätsgrad am Rand der Unlösbarkeit erreicht. Als einzige Lösung bleibt dann die Zerschlagung des Knotens, was in diesem Fall ein komplettes Zurücksetzen aller Prozesse auf Null und einen sauberen Neustart bedeutet. Das ist eine radikale und nicht immer machbare Methode, allerdings eine die die verschiedenen Widerstände abschwächen kann. Da das Gesamtsystem zurückgesetzt wird kommt es nicht zu individuellen Schuldzuweisungen oder Karriereknicks von Einzelpersonen, zudem bietet der Neustart allen Beteiligten die gleichen Möglichkeiten die umstrittenen Zuständigkeiten und Verantwortlichkeiten zu bekommen, zu behalten oder abzuwehren. Natürlich ist auch das mit Risiken verbunden, weshalb es auch hier zu Abwehrreaktionen kommen kann. Durch die Loslösung von Einzelfällen, bzw. Einzelpersonen gibt es allerdings weniger Anreize diese bis zur letzten Konsequenz durchzuziehen.