Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Die Angemessenheit von Komplexität

Wenn in der Softwareentwicklung über verteilte Systeme gesprochen wird, findet sich Eric Brewers CAP-Theorem meist direkt um die Ecke. Das CAP-Theorem, obwohl es erst 1998 formuliert wurde, gehört heute zu den fundamentalen Erkenntnissen über verteilte Systeme. Was enthält es an Einsichten für die Betrachtung sozialer Systeme bereit?
Author Image
Gerrit Beine

Author


  • 27.08.2021
  • Lesezeit: 5 Minuten
  • 103 Views

Interessant ist das CAP-Theorem, weil es einen Sachverhalt beschreibt, der absolut logisch erscheint, wenn man es erst einmal kennt: Die Unvereinbarkeit der drei Eigenschaften:

  • Konsistenz (C),
  • Verfügbarkeit (A) und
  • Partitionstoleranz (P)

in einem verteilten System. Die Unvereinbarkeit des gleichzeitigen Erfüllens aller drei Eigenschaften in einem verteilten System wurde einige Jahre später von Seth Gilbert und Nancy Lynch auch bewiesen [Gil02]. Die Erkenntnis, dass maximal zwei der drei Eigenschaften gleichzeitig von einem verteilten System erfüllt werden können, ist aus der Praxis der Softwareentwicklung nicht mehr wegzudenken – und das, obwohl vielen Menschen, die Software entwickeln, vielleicht gar nicht bewusst ist, dass das formal bewiesen wurde. Die gleichzeitige Erfüllbarkeit von Anforderungen ist aber nicht nur in technischen Kontexten interessant. Sie spielt auch bei der Betrachtung sozialer Systeme eine Rolle, was von Karl E. Weick schön gezeigt wurde [Wei95]. Weick beruft sich dabei auf Warren Thorngates Postulat der angemessenen Komplexität [Tho76]. In diesem Postulat erklärt Thorngate, dass ein Modell drei Eigenschaften aufweisen kann Einfachheit, Allgemeingültigkeit und Genauigkeit.

Spannend daran ist, dass ein solches Modell niemals alle drei Eigenschaften erfüllen kann. Wie im Fall des CAP-Theorems können maximal zwei der Eigenschaften erfüllt sein – auf die Erfüllung der dritten Eigenschaft muss verzichtet werden. Die Bedeutung der drei Eigenschaften folgt dem Wortsinn: Die Allgemeingültigkeit erfüllt ein Modell, wenn es kontextunabhängig verwendet werden kann; Genauigkeit weist das Modell auf, wenn seine Aussagen oder Vorhersagen exakt dem entsprechen, was im Fall der Verwendung geschieht. Einfachheit ist gegeben, wenn das Modell selbst aus wenigen Teilen besteht, das Verstehen des Modells also keiner großen kognitiven Leistung bedarf.

AGE-Uhr

Weick konstruiert auf dieser Grundlage das Bild der AGE-Uhr. Das Ziffernblatt einer Uhr wird mit den Eigenschaften:

  • allgemein auf 12 Uhr,
  • genau auf 4 Uhr und
  • einfach auf 8 Uhr

versehen. Mithilfe dieser Uhr wird es gut vorstellbar, dass ein Modell auf 10 Uhr einfach und allgemein ist. Das Modell muss aber, um genau zu werden, entweder Allgemeingültigkeit oder Einfachheit aufgeben – also in Richtung 6 Uhr oder 2 Uhr wandern.

Abb. 1: Die AGE-Uhr nach Karl E. Weick

10-Uhr-Konzept

Beispiele aus der Softwareentwicklung, die in Weicks AGE-Modell passen, gibt es viele. So ist das Konzept loser Kopplung ganz klar ein 10-Uhr-Konzept: Lose Kopplung als Konzept ist kontextunabhängig, kann also allgemein erklärt werden. Sie ist – zumindest auf konzeptioneller Ebene – auch einfach zu beschreiben. Allerdings sagt das Konzept loser Kopplung nichts über die konkrete Ausgestaltung in einem spezifischen Kontext aus – lose Kopplung ist also nicht genau. Ein anderes 10-Uhr-Konzept stellt das agile Manifest dar. Die vier Wertepaare und die zwölf Prinzipien sind allgemein (kontextunabhängig) und einfach – das agile Manifest ist nicht sonderlich umfangreich, verglichen mit den meisten Lehrbüchern über Software-Engineering. Das Fehlen von Genauigkeit kann man an der Vielzahl agiler Frameworks und Diskussionen in der Community erkennen.

2-Uhr-Konzept

Sollen die Modelle an Genauigkeit gewinnen, muss eine Eigenschaft aufgegeben werden – entweder die Einfachheit oder die Allgemeingültigkeit. Ein Beispiel für das Aufgeben der Einfachheit sind Inversion-of-Control-Container. Sie erfüllen noch die Eigenschaft der Allgemeingültigkeit, da sie nicht auf einen Anwendungskontext beschränkt sind. Das Ergebnis ihres Einsatzes kann sehr klar beschrieben werden, sie erfüllen die Eigenschaft der Genauigkeit. Ähnliche Überlegungen lassen sich für Praktiken wie Test-Driven Development anstellen. TDD trifft keine Aussagen über den Kontext der Anwendung, ist also allgemeingültig. Allerdings wird auch bei TDD Einfachheit zugunsten der Genauigkeit aufgegeben: Das Ergebnis von TDD lässt sich recht gut beschreiben. TDD selbst lässt sich aber eben nicht einfach beschreiben. Die kognitive Leistung, die Menschen beim Einsatz von TDD erbringen müssen, ist immens. Sowohl TDD als auch Inversion of Control sind somit 2-Uhr-Konzepte auf Weicks AGE-Uhr. Weick liefert noch zahlreiche Beispiele aus dem Kontext der Organisationsforschung und zeigt: Es ist nur möglich, Modelle zu konstruieren, die zwei der drei Eigenschaften erfüllen – so wie es bei den verteilten Systemen und dem CAP-Theorem der Fall ist. Damit wird auch klar, warum viele Ideen nur auf den ersten Blick plausibel erscheinen: Ihre Einfachheit und Allgemeingültigkeit machen es unmöglich, die Genauigkeit zu erreichen, die eine Anwendung in der Praxis benötigt. Weicks AGE-Uhr ist ein einfaches Werkzeug, um schnell ein Gefühl für die Grenzen eines Modells zu bekommen: Taugt es nur für ein Gedankenexperiment oder werden Sie damit direkt handlungsfähig? Wenn Ihnen also demnächst wieder ein Modell über den Weg läuft, schauen Sie doch mal, zu welcher Uhrzeit es passt.

. . .

Author Image

Gerrit Beine

Author
Zu Inhalten
Gerrit Beine ist Trainer und Berater bei INNOQ. Er arbeitet am liebsten an der Schnittstelle zwischen Softwarearchitekturen und Organisationen und verbindet Informatik mit Soziologie und Organisationsforschung.

Artikel teilen