Mission und Hintergrund

Modularität und Veränderbarkeit – die vernachlässigten Erfolgsfaktoren

Unternehmen und ihr Handeln sind dynamische Systeme, die sich stetig verändern um sich zu verbessern, zu vereinheitlichen oder um neuen Anforderungen gerecht zu werden – dafür sind sie ausgelegt – denn Unternehmen sind im Prinzip modular und dadurch fähig, sich durch kontinuierliche Gestaltung evolutionär zu entwickeln.

Unternehmensanwendungen sind dagegen i.d.R große, komplexe Monolithen, die nicht auf Veränderung – sondern auf Bestand ausgerichtet sind und so im direkten Kontrast zu der Welt stehen, die sie abbilden und unterstützen sollen (s.a. Dokumente und Präsentationen). Monolithen verhalten sich dabei im Vergleich zu modularen Systemen – wie gemeißelte Steintafeln zu einem Display.

Das spiegelt sich auch in den Architekturen und Technologien, die zum Bau von Enterprise Systemen verwendet werden wider. Auch sie (z.B. die JEE) sind i.d.R. auf den Bau und den Betrieb von ganzheitlichen (monolithischen) Anwendungen ausgerichtet – das ist das klassische Konstruktionsschema – ob auf dem Host – oder auf dem Application Server.

Eine Folge dieses monolithischen Konstruktionsprinzips ist, dass die Komplexität und damit die Beherrschbarkeit und Entwicklungsfähigkeit direkt von der Systemgröße abhängig ist. Und zwar in der Weise, dass Beherrschbarkeit und Entwicklungsfähigkeit mit zunehmender Systemgröße überproportional (exponentiell) abnehmen.

In der Konsequenz

  • steigen dadurch Aufwände, Risiken und Kosten
  • und sinkt die Fähigkeit zu einfacher und zukunftssicherer Veränderung und Weiterentwicklung

Alles wird mit zunehmender Systemgröße immer zeitaufwendiger, fehleranfälliger und teuerer – gleichzeitig verringern sich parallel dazu zusehends die Möglichkeiten und die Handlungsspielräume. Das macht sich insbesondere in der Entwicklung und Wartung negativ bemerkbar1. Fatal an dem Zusammenhang zwischen Funktionsumfang (Systemgröße) und der Verschlechterung der Handhabbarkeit ist, dass der Effekt erst auftritt, wenn das System oder seine Vernetzung eine bestimmte Größe erreicht hat. Dann aber sind bereits alle Weichen gestellt und die “normative Kraft des Faktischen” bestimmt das Handeln.

Um das zu verhindern, müssen Enterprise Systeme von der Basisarchitektur2 her Modularität unterstützen. Sie müssen für Veränderung, für eine kontinuierliche Evolution - nicht für Bestand ausgelegt sein – anderenfalls sind sie wie eckige Räder am Wagen eines Unternehmens.

Modularität wird häufig als unnötiges Feature betrachtet, das viel Aufwand macht und nur wenig bringt3 – genau das Gegenteil ist der Fall. Modularität ist das Konstruktionsmerkmal, das wenn es vorhanden ist den größten Nutzen mit dem geringsten Aufwand erzielt – weil sie eine Eigenschaft ist – und keine Technik.

Zur Unterschätzung von Modularität trägt auch ihre Einfachheit bei. Das Konzept (Bausteinprinzip) ist so einfach und so intuitiv vertraut, dass selten beachtet wird, dass sie real zumeist gar nicht vorhanden ist. Dazu kommt, dass jedes strukturierte Diagramm Modularität suggeriert und daher nur selten nachgefragt wird, ob und wie sie sich tatsächlich auswirkt.

Modularität ist ein altes und bewährtes Prinzip – das auch schon früh (70er Jahre) erfolgreich Einzug in die Softwareentwicklung gehalten hat. Um so erstaunlicher ist es, dass heute, über 40 Jahre später eine der wichtigsten Plattformen für Enterprise Systeme (JEE) – Modularität nicht unterstützt.

____________________________
1: Entwicklung braucht immer Zeit – Zeit in der Veränderungen stattfinden können, die wiederum rückwirkend die Grundlage der Entwicklung verändern (z.B. Fehler, Change-Requests etc.). Monolithische Systeme sind hier besonders anfällig für sich ausbreitende Rückkopplungseffekte, weil es keine prinzipiellen Grenzen für Auswirkungen gibt.

2: “von der Basisarchitektur” – ist ein zentraler Punkt. Modularität muss Grundprinzip bzw. Ziel auf übergreifender Systemebene sein oder werden. Keine technische “Detailfrage”.   

3: Eine Ursache für diese Einschätzung ist, dass Modularität in erster Linie als technische Herausforderung betrachtet und bewertet wird, weil Java und die JEE von Haus aus keine Modularität bieten. Mit einer Technologie wie Enterprise Apps ist das völlig anders – damit werden Java und die JEE einfach modular und es entstehen keine Aufwände und Kosten für die Entwicklung noch für die Nutzung dieser Modularität.