„Technology is inherently fragile“ – Antifragilität in der Softwareentwicklung

25. September 2014Gerrit Beine

Mit seiner „Anleitung für eine Welt, die wir nicht verstehen“ hat Nassim Nicholas Taleb das Konzept der Antifragilität in die Welt gebracht. Und natürlich wird diese Idee auch unter Softwerkern kontrovers diskutiert. Mit diesem Artikel möchte ich die häufigste Frage beantworten, nämlich ob Software selbst antifragil sein kann.

Zunächst muss dazu der Begriff der Antifragilität beschrieben sein. Die Idee der Antifragilität zugrunde liegen die sogenannten Schwarzen Schwäne. Ein Schwarzer Schwan ist ein Ereignis, das nicht vorhergesehen werden kann. Damit geht einher, dass ein solches Ereignis sowohl hinsichtlich seines Eintrittszeitpunktes als auch seiner Wirkung nach nicht planbar ist. Die Wirkung solcher Ereignisse ist aber häufig sehr intensiv – seltene Ereignisse, deren Wirkung gering ist, werden in der Regel gar nicht wahrgenommen.

Oft haben Schwarze Schwäne das Potenzial, ein System nachhaltig zu stören oder gar zu zerstören. Ein solches System ist in Hinsicht auf diese Art Schwarzer Schwäne fragil. Fragt man nach dem Gegenteil eines fragilen Systems, werden üblicherweise robuste oder resiliente Systeme genannt. Diese können im Fall des Auftretens eines Schwarzen Schwanes bestehen.

Antifragilität

Taleb vertritt nun die Ansicht, dass weder Robustheit noch Resilienz ausreichend sind, um als Gegenteil von Fragilität verstanden zu werden. Seiner Meinung nach erhalten beide Eigenschaften den Status quo eines Systems, sorgen also für seine Erhaltung, wirken aber nicht in irgendeine Richtung. In der Abbildung ist dargestellt, dass robuste und resiliente Systeme auf der Nulllinie bleiben, sich also durch Ereignisse nicht verändern. Fragile Systeme verändern sich aber drastisch in die negative Richtung: sie werden beschädigt oder sogar zerstört. Taleb sagt nun, dass Fragilität die Eigenschaft eines Systems zur Veränderung im negativen Bereich beschreibt. Deshalb muss eine Eigenschaft existieren, die eine Veränderung in positiver Richtung beschreibt. Diese Eigenschaft definiert er als Antifragilität.

Betrachtet man Antifragilität intensiver, kristallisieren sich zwei interessante Erkenntnisse heraus. Zum einen gibt es so etwas wie partielle Antifragilität, zum anderen ist Antifragilität sehr eng mit Organischem verbunden. Auch wenn Taleb selbst den Begriff der partiellen Antifragilität nicht verwendet, ist er durchaus naheliegend. Ein System kann in Bezug auf diverse Ereignisse antifragil sein, auf andere wiederum robust oder gar fragil reagieren. Was die Verbindung zum Organischen anbelangt, ist Taleb sehr eindeutig: „Technology is inherently fragile“ ist seine These – und damit ist praktisch alles von Menschen Geschaffene fragil.

Software selbst ist immer Technologie und damit nach Taleb inhärent fragil. Das bestätigt sich auch häufig, wenn Anforderungen an Software gestellt werden, die bei ihrer Planung nicht vorhersehbar waren. Existiert eine Software lange genug, wird irgendwann eine Anforderung auftreten, die ihre Architektur über die Grenze der Fragilität hinaus belastet. Diese Art von Anforderungen entspricht der Definition eines Schwarzen Schwanes. Hat Taleb Recht, ist es unmöglich, solche Anforderungen vorherzusehen und einzuplanen. Unabhängig von ihrer Architektur, kann Software selbst also nicht antifragil sein.

Haben Sie Fragen zum Thema Antifragilität oder vertreten Sie eine andere These in diesem Zusammenhang? Ich freue mich auf Ihre Kommentare.

Gerrit Beine Gerrit Beine ist Managing Consultant bei adesso. Seit 1998 unterstützt er Unternehmen in den Bereichen Software Architektur und Agile Methoden. Mit diesen Schwerpunkten ist er regelmäßig als Sprecher auf Konferenzen und hält Vorlesungen an verschiedenen Hochschulen. Er ist außerdem Autor der Kolumne "Meditations on Agile" und reflektiert über das Thema Agilität.
Artikel bewerten:
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...

Kommentare

Karl-Heinz Brabender 15. Oktober 2014

Es war einmal…der Aufbruch in die Objektorientierung in den 90er Jahren. Alles sprach vom Paradigmenwechsel, alles schien neu (und schöner) zu sein. Einige Paradigmenwechsel später gewinnt man den Eindruck, dass bei aller Objekt,- Komponenten- oder Serviceorientierung irgendwie doch immer die gleichen herausforderungen geblieben sind: je mehr du „high cohesion & lose coupling“ beim Auf-/Ausbau einer größeren Anwendungslandschaft (wie etwa bei Versicherungsunternehmen erforerlich) beachtest, desto eher wirst du diese Anwendungslandschaft rech passabel beherrschen können.
Wo steckt da die Antifragilität?
Etwa (scheinbar) im Prinzip der Vererbung. Vererbung wurde als segensreich propagiert. Große Klassenbibliotheken stellten das Gerüst dar, über das man den eigentlichen fachlichen Klassen die wunderbarsten Eigenschaften vererben konnte. Gab es dann eine unvorhersehbare Änderung (segelte also der schwarze Schwan vorbei), so musste nur „ganz oben“ in der Klassenhierarchie eine winzige Änderung vollzogen werden und alle abhängigen Subklassen durften die Hände (so sie welche hätten) falten und entspannt den Segen der vererbten Änderung zur Kenntnis nehmen.
Hier sollte also (so die OO-Evangelisten) der schwarze Schwan dank Vererbungsmechanismus das Klassengeflecht in Gänze verbssern – hurra, praktizierte Antifragilität.

Nun denn, vor der Objektorientierung (und vielleicht ja auch danach) sprach man bei derartigen Konstellationen doch eher von Abhängigkeiten oder von Kopplung, und das war im Allgemeinen eher schlecht. So gehen hier also die Einschätzungen von OO-Evangelisten und Anderen auseinander; insbesondere wenn unter den Anderen solche sind, die einmal Veränderungen in ihren Klassen beobachten durften, die sie nicht selbst initiiert hatten (und die auch nicht angekündigt waren) und einfach via Vererbung von Klasssen in ganz anderer Zuständigkeit herrührten.

Wer es aus dem bisher Formulierten noch nicht entnommen hat. ja, auch ich glaube an die (zwingende) Zunahme der Entropie in großen Anwendungslandschaften und möchte eine Aussage aufnehmen und noch verschärfen:
Wenn gilt, dass alles von Menschen Geschaffene fragil ist, dann gilt insebsondere, dass alles von vielen Menschen Geschaffene ganz besonders fragil ist.
Was das für große Anwendungslandschaften bedeutet, die von > 1.000 Menschen erdacht und erstellt wurden, dard sich dann jeder selbst ausmalen/ableiten.

Es grüßt herzlich Karl-Heinz Brabender, der beruflich in das Erdenken und Erstellen großen Anwendungslandschaften verwickelt ist 😉

Kommentar hinzufügen:

Ihr Kommentar: