Lesezeit: 3 Minuten
Keine Angst vor Komplexität - warum Unternehmen offen für neue Technologien sein sollten
Die Softwareentwicklung im 21. Jahrhundert bringt viele neue Herausforderungen mit sich:
- neue Plattformen, die auf Cloud-Technologien aufbauen
- moderne Architekturen, die auf diesen Plattformen gut funktionieren
- eine neue Entwicklerkultur, die auf DevOps-Paradigmen basiert
Mit diesen Herausforderungen steigt auch der Grad an Komplexität in allen drei genannten Dimensionen. Ein Blick auf neue Technologien kann helfen, die Komplexität zu meistern oder sie zumindest beherrschbar zu machen.
Wie heißt es so schön im agilen Manifest: Embrace Change!
Komplexität
Geht es Ihnen auch so, dass beim Begriff der Komplexität immer so ein negativer Unterton mitschwingt? Schaut man sich die Definition an, hört sich das alles doch erst mal ganz gut an:
Komplexität (lateinisch complexum, Partizip Perfekt von complecti „umschlingen“, „umfassen“ oder „zusammenfassen“) bezeichnet das Verhalten eines Systems oder Modells, dessen viele Komponenten auf verschiedene Weise miteinander interagieren können, nur lokalen Regeln folgen und denen Instruktionen höherer Ebenen unbekannt sind.
- Wikipedia -
Liest man sich den Satz ein zweites Mal durch, stößt man auf folgende Formulierungen:
- viele Komponenten
- verschiedene Interaktionsmuster
- verborgene lokale Regeln
So kommt es wahrscheinlich dazu, dass man mit komplex oft kompliziert assoziiert!
Komplexe Systeme sind in der Regel anspruchsvoll, aber sie sind nicht per se kompliziert. Wir müssen aber durchaus lernen, mit Komplexität umzugehen.
Komplexität hat im Wesentlichen zwei Dimensionen:
- Komplexität der Organisation (Größe, Struktur, Ökosysteme, formale und informale Prozesse, Firmenkultur, …)
- Komplexität im Zusammenwirken mit Technologie (Plattformen, Programmiersprachen, Frameworks, Werkzeuge, Tools, Dienste).
Auf der Ebene der Organisation ist Komplexität sehr viel schwieriger zu adressieren als auf der technischen. Das bekannte Mantra “KISS – Keep it simple, stupid” sollte zwar auch auf Organisationen anwendbar sein, diese sind aber über die Zeit gewachsen und zu dem geworden, was sie heute sind. Es bedarf viel Fingerspitzengefühl, Verständnis und Durchsetzungsfähigkeit, um Komplexität auf dieser Dimension anzugehen.
Es gibt im Wesentlichen zwei erfolgsversprechende Strategien, um Komplexität in den Griff zu bekommen:
- Komplexität kann man durch Weglassen, Bündeln und Standardisieren von Produkten, Aufgaben und Prozessen verringern. Hier ist Augenmaß gefordert, denn es können schnell neue Abhängigkeiten entstehen und die Individualität einzelner Kunden oder Alleinstellungsmerkmale der Organisation bleiben auf der Strecke.
- Ein anderer Ansatz im Umgang mit Komplexität besteht darin, Produkte und Dienste modular aufzubauen. Das erreicht man auf einer hohen Abstraktionsebene mit sogenannten Baukastenlösungen, die man geschickt kombiniert. Auf einer niedrigen Abstraktionsebene gelingt das mit geeigneten Technologien.
Neue Technologien können der Schlüssel sein, Komplexität zu verringern und IT-Systeme und damit letztendlich auch die Organisation weniger kompliziert zu machen.
Neue Technologien
Technologie allein löst keine Probleme! Wählt man sie unüberlegt aus, kann sie neue Probleme schaffen. Daraus resultiert oft die Angst vor neuen Technologien, denn sie können Komplexität erhöhen und alles noch komplizierter machen. Moderne Architekturen und Plattformen basieren auf neuen Technologien und versprechen Abhilfe zu schaffen. Schaut man sich zum Beispiel eine Architektur an, die auf Microservices aufbaut, stellt man fest, dass sie viel Flexibilität beim Einsatz neuer Technologien bietet. Das Risiko wird dadurch minimiert, dass man viele “kleine” Services baut, diese auf Fachlichkeit ausrichtet und mit passenden Technologien implementiert. Diese sogenannten polyglotten Systeme werden von kleinen Teams mit überschaubarem Aufwand entwickelt und betrieben und es tut nicht besonders weh, wenn man bei der Auswahl einer Technologie in eine Sackgasse gerät und gegebenenfalls von vorne beginnen muss.
Die Idee des MVP (Minimum Viable Product) ist eine weitere Methode, neue Technologien zu verproben und sicherzustellen, dass die Fachlichkeit passt und die Akzeptanz bei der Zielgruppe hoch ist. Entwirft ein Architekt einen neuen Gebäudekomplex, entsteht für den Wettbewerb in der Regel erst mal ein Modell, welches die Gebäude in ihrer Form und Anordnung im Ensemble idealisiert darstellt.