Im OOP 2008 Konferenz-Blog habe ich grad wieder einen Beitrag von Michael Stal zum Thema "SOA-Leichtgläubigkeit" gelesen. Der hat mich an eine Analogie gemahnt, die mir neulich nach einem Kinobesuch kam. Ich hatte den Film "Transformers" gesehen und war begeistert.
Nicht nur war der Film von seinen Spezialeffekten (wenn man sowas mag ;-) einfach toll - er hat mir auch etwas über Softwareentwicklung klar gemacht. Plötzlich hatte ich ein Bild für das in der Hand für ein weit verbreitetes Missverständnis.
Das Missverständnis ist: Software ist wie eine Maschine. Man kann sie so planen und bauen wie eine Uhr oder ein Auto.
Dieses Missverständnis halte ich für die Ursache vieler Probleme mit Softwareprojekten. Es übt einfach viel Einfluss auf Architekturen und Prozesse aus. Es macht sie starr und linear.
Software ist aber nicht wie eine Maschine, Software ist eher wie ein Lebewesen oder eine Stadt. Sie muss sich ständig neuen Anforderungen anpassen. Unter Beibehaltung ihrer Identität, muss sich ständig... ihre Form verändern, um sich neuen Anforderungen anzupassen. Die interne wie die externe Form.
Wenn schon Software mit Maschinen vergleichen, dann mit Transformers. Das sind nämlich Maschinen, die ihre Form verändern können: eben noch Roboter, werden sie zum Flugzeug oder Lastwagen, wenn es die Situation erfordert.
Wer also weiterhin der Vorstellung anhängen möchte, Software seien Maschinen doch so ähnlich, der schaue sich also den Film "Transformers" an und überlege einmal, wasfüreine Architektur denn so ein Transformer wohl hat, um so flexibel zu sein. Und dann gehe er oder sie noch darüber hinaus! Denn Software muss noch flexibler sein als ein Transformer!
Um auf Michaels Posting zurückzukommen: Wer flexible, evolvierbare, langlebige, anpassungsfähige Software haben will, der muss all diese Eigenschaften in sie von vornherein hineinplanen. Eine SOA kann daher nicht wirklich als "Zuckerguss" auf existierende Systeme "drübergegossen" werden. SOA beginnt vielmehr vor allen Tools im Kopf und zeigt sich in Planung wie Prozess. Eine SOAP-Schnittstelle und ein ESB machen noch keine SOA. Sie mögen vielleicht notwendige Voraussetzungen sein. Vielleicht. Aber sie sind keineswegs hinreichend.
Etwas überspitzt gesagt: Eine SOA implementieren - oder sogar noch allgemeiner: langlebige Software entwickeln - heißt, von den Transformers zu lernen ;-)
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.