

27. September 2024
Von Dr. Nikola Milanovic
Das erste Mal, dass ich โSmall is beautifulโ* in einer Computerzeitschrift las โ eine, die in den 1980ern sehr populรคr war โ, besuchte ich gerade die Grundschule und fing an (oder versuchte), mir selbst das Programmieren beizubringen. Ich erinnere mich nicht mehr genau, worum es in dem Artikel ging, wahrscheinlich, weil ich damals das meiste davon nicht verstand. Aber der Satz โSmall is beautifulโ blieb irgendwie bei mir hรคngen.
Spรคter im Berufsleben bin ich diesem Satz immer wieder begegnet, selbst wรคhrend meines Studiums, als ich etwas รผber modulare Entwurfsprinzipien lernte. Trotzdem schrieb ich, als ich bei meinem ersten Job die Aufgabe bekam, ein Medienimport-Tool zu erstellen, letztlich eine โGottklasseโ mit รผber 1.000 Zeilen Code. Das passierte aus verschiedenen Grรผnden: Ich kam frisch von der Uni und hatte wenig Praxiserfahrung, die Anforderungen waren unklar oder gar nicht definiert (โHier, nimm diese 10 CDs mit Bildern und importiere sie bis Freitag.โ), spรคter tauchten Randfรคlle und Eskalationen auf, die schnelle Fixes erforderten, ohne dass man viel nachdenken konnte, und so weiter.
Noch spรคter habe ich dann die Bedeutung klarer Architekturprinzipien verstanden. Nicht-funktionale Eigenschaften wie Performance, Sicherheit und Fehlertoleranz รผber Funktionen zu stellen, ist entscheidend. Gepaart mit kontinuierlichem Refactoring fรผhrt dieser Ansatz zu Produkten, die mit minimalen Ausfallraten laufen, gut skalieren und keine ernsthaften Sicherheitsprobleme haben.
Gleichzeitig habe ich erlebt, wie Produkte regelrecht explodiert und gescheitert sind, weil viel mehr versucht wurde als eigentlich nรถtig war. Zu viele Funktionen, zu viele Stakeholder, zu viele โMust-havesโ, zu viele โDas brauchen wir auch unbedingtโ.
Als wir vor ein paar Jahren bei OPTIMAL SYSTEMS mit der Entwicklung von yuuvisยฎ Momentum begannen, haben wir uns auf einen kleinen, aber festen Satz von nicht-funktionalen Eigenschaften geeinigt. Wir haben beschlossen, dass wir, egal wie komplex die zukรผnftigen Anforderungen werden, diese niemals auf eine Weise umsetzen, die diese grundlegenden Eigenschaften gefรคhrdet. Zum Beispiel haben wir uns auf eine minimale Import-Rate fรผr eine bestimmte Clustergrรถรe festgelegt. Sollte eine zukรผnftige Funktion diese Rate gefรคhrden, mรผsste sie neu implementiert, aus dem Kernprodukt entfernt oder schlichtweg abgelehnt werden.
Wir haben auch das Konzept der โZwiebelarchitekturโ eingefรผhrt. Im Kern dieser Architektur โ also im โZentrum der Zwiebelโ โ muss das System zu jeder Zeit die vereinbarten nicht-funktionalen Eigenschaften ohne Kompromisse gewรคhrleisten. Alle Services im Kern sind essenziell fรผr den Betrieb des Systems und folgen dem Prinzip โSmall is beautifulโ. Andere Funktionen, die um den Kern herum gebaut werden โ wie die Schichten einer Zwiebel โ, kรถnnen entfernt werden, ohne den Betrieb des Systems zu beeintrรคchtigen. Auch diese Schichten sollten die nicht-funktionalen Eigenschaften einhalten, dรผrfen sie jedoch bewusst fรผr einen speziellen Anwendungsfall verletzen. Dies darf jedoch niemals das gesamte System gefรคhrden; andere Funktionen dรผrfen durch solche Kompromisse nicht beeintrรคchtigt werden.
Das klingt auf dem Papier sehr einfach. Diese Entscheidung im Arbeitsalltag zu leben, ist jedoch schwierig, und es ist oft notwendig, Kompromisse einzugehen. Wir haben versucht, auf dem Weg so wenige Kompromisse wie mรถglich zu machen. Es hilft auch, einen leitenden Softwarearchitekten im Team zu haben, dessen Lieblingszitat lautet: โPerfektion ist nicht dann erreicht, wenn man nichts mehr hinzufรผgen kann, sondern wenn man nichts mehr weglassen kann.โ** Deshalb ist yuuvisยฎ Momentum heute eine sehr leistungsstarke ECM-Plattform, die fรผr die Cloud entwickelt wurde und viele spannende Features bietet, wie etwa eine revisionssichere Schriftgutverwaltung, eine leistungsstarke Suche, ein intelligentes Schema, einen flexiblen Workflow, ein schnelles Sicherheitssystem, eine integrierte KI und vieles mehr. Trotz dieser Fortschritte bietet es weiterhin nahezu unendliche Skalierbarkeit, bleibt wartbar und ist genauso schnell und sicher wie vor ein paar Jahren, als es โnurโ ein sehr schnelles Dokumentenarchiv war.
Small is indeed beautiful.
* Small is beautiful ist der erste Grundsatz der Unix-Designphilosophie von Mike Gancarz
** Antoine de Saint-Exupรฉry
Verwalten Sie Milliarden von Dokumenten in einer einzigen Systemlandschaft:
Erleben Sie die neueste Generation des Content Managements!
Haben Sie noch Fragen?
Nehmen Sie Kontakt mit uns auf!