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)
  • 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.

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. Weick beruft sich dabei auf Warren Thorngates Postulat der angemessenen Komplexität. 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.

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
  • einfach auf 8 Uhr
Die AGE-Uhr nach Karl E. Weick
Die AGE-Uhr nach Karl E. Weick

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

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.

Die AGE-Uhr nach Karl E. Weick
Die AGE-Uhr nach Karl E. Weick

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 zur Umsetzung 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. Sie erfüllen die Eigenschaft der Genauigkeit, da das Ergebnis ihres Einsatzes sehr klar beschrieben werden kann.

Ä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.

Literatur

  • Gilbert, Seth & Lynch, Nancy: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services; ACM SIGACT News, v. 33 issue 2, 2002, p. 51–59

  • Thorngate, Warren: »In general« vs. »it depends«: Some comments on the Gergen-Schlenker debate; Personality and Social Psychology Bulletin 2, 1976, S. 404–410

  • Weick, Karl E.: Der Prozeß des Organisierens; Suhrkamp, 1995 [@Weick2018]

TAGS