Individualität durch und durch
Was würde herauskommen, wenn man für Softwareentwicklung und Softwarearchitektur ein bisschen bei der Natur selbst abschaut?
Im ganzen Universum gibt es keine zwei Wesen, die wirklich identisch sind. Die Unterschiede ziehen sich dabei auch durch alle ihre Komponenten hindurch.
Wenn man Komponenten versucht wiederzuverwenden, macht man immer wieder die Erfahrung, dass es eigentlich nie so richtig passt. Da man aber gelernt hat, dass nicht so viele Varianten von Softwareprogrammen oder Komponenten entstehen dürfen, nimmt man lieber ein bisschen Umständlichkeit in Kauf, um die Komponente doch unverändert ins neue Programm einzupressen. Sie nimmt sich aber dort dann wie ein Fremdkörper aus: Das neue Programm muss in der Umgebung der starren unveränderlichen Komponente nämlich mit Kompromissen angepasst werden.
Aber warum sollen wir nicht dürfen, was die Natur sich in aller Großzügigkeit herausnimmt, nämlich beliebig viele Varianten erzeugen? Was meint, die Komponente die wiederverwendet wird, einfach perfekt ans neue System anzupassen?
OK, die Antwort lautet natürlich: Wir dürfen doch! Und zwar mit folgender Begründung:
Jede Entwicklung und zwar wirklich jede wird durch einen individuellen Zweck (emotionales Bedürfnis, ein bestimmtes Ziel zu erreichen) mit Energie versorgt. Würde sie es nicht, wäre sie ganz einfach überflüssig. Und diese Energie hat die Eigenschaft dafür zu sorgen, dass alle notwendigen Lösungen zur Verfügung stehen.
Das scheinbare Problem entsteht, wenn man losgelöst von allen Zwecken auf die Vielfalt von Varianten draufschaut und dann eine Chaos-Phobie bekommt, die vielleicht in einem Vereinheitlichungswahn mündet. Dann fängt man an, alles vereinheitlichen zu wollen oder "Ordnung zu schaffen". (Eine Ordnung, die die Natur selbst nicht nötig hat.) Eine solche Entwicklungstätigkeit findet aber losgelöst von allen Zwecken statt. Entsprechend wird sie auch nicht vernünftig mit Lösungs- bzw. Antriebsenergie versorgt. Sie resultiert nämlich nur aus der Anwandlung, die Vielfalt nicht ertragen zu können oder zu wollen.
Tatsächlich interessiert es aber gar nicht, wieviele Varianten existieren und wenns Tausend wären. Denn es ändert sich nur etwas an einer der Varianten, wenn einer der Zwecke für seine Variante eine Änderung einfordert. Und dann geht es genau um diese eine Variante. Für die liefert der Zweck mit seiner Energieversorgung bei Bedarf die Lösungen. Da aber immer nur eine einzelne Variante zweckgebunden betrachtet wird, ist es eigentlich so, als gäbe es überhaupt nur eine Variante.
Es gibt noch eine weitere Varianten schaffende Kraft bei der Wiederverwendung von Komponenten:
Wann immer man eine Komponente neu einsetzt, ergibt sich ein gewisser Weiterentwicklungsdrang für diese Komponente. Natürlich kann der mit der Zeit auch nachlassen. Aber es ist klar, dass vernünftige Softwarequalität nur entstehen kann, wenn diese Weiterentwicklungsimpulse sich frei entfalten können.