Sechs braune Zwiebeln fallen aus einem geflochtenen Korb auf eine dunkle Stoffoberflรคche.Sechs braune Zwiebeln fallen aus einem geflochtenen Korb auf eine dunkle Stoffoberflรคche.

27. September 2024

Small is beautiful: Nicht-funktionale Eigenschaften in komplexen Softwaresystemen ODER Warum wir yuuvisยฎ Momentum so und nicht anders entwickelt haben

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.

Von der โ€žGottklasseโ€œ zu klaren Prinzipien

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โ€œ.

Nicht-funktionale Eigenschaften als Fundament

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.

Zwiebelarchitektur: Das Herzstรผck von yuuvisยฎ Momentum

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

Haben Sie noch Fragen?
Nehmen Sie Kontakt mit uns auf!