Interview mit Kevlin Henney

„Alt ist das neue Neu“ – Warum Software-Entwickler immer das Rad neu erfinden

Hartmut Schlosser

Kevlin Henney

Alles ändert sich, alles ist neu. Die IT ist voller neuer Frameworks, Plattformen und Trends. Doch unter der Oberfläche dieser turbulenten Veränderungsökonomie verbirgt sich ein langsamer, konstanter Fluss an Ideen, der sich über die Zeit relativ wenig verändert hat. Wir haben uns mit Kevlin Henney, Software-Consultant und Speaker auf dem Software Architecture Summit, über den Fortschritt der Software-Entwicklung und das „Alte“ am „Neuen“ unterhalten.

JAXenter: Deine Keynote auf dem Software Architecture Summit trägt den Namen „Old Is the New New.“ Weshalb erfinden wir gerade in der IT das Rad immer neu?

Die Zukunft ist bereits hier – sie ist nur nicht sehr gleichmäßig verteilt.

Kevlin Henney: William Gibson hat einmal gesagt, „Die Zukunft ist bereits hier – sie ist nur nicht sehr gleichmäßig verteilt“. Wir haben einen ähnlichen Fall in der Software-Entwicklung. Das Wissen ist zwar kollektiv verfügbar – wir wissen, wie wir effektive Software effektiv entwickeln können. Aber nicht alle wissen, dass wir das wissen. Und nicht alle wissen, was die anderen wissen. Know How ist also gleichzeitig unsere Arbeit und unser Bottleneck.

Wäre Software-Entwicklung ein etwas gesetzteres Feld, wäre auch die Konsolidierung des Wissens einfacher. Aber Software-Entwicklung ist nun mal turbulent und wird von äußeren Einflüssen getrieben, was es schwierig macht, Dinge zum Ruhen kommen zu lassen. Das Wiederentdecken und Neuerfinden von alten Ideen, sowohl in neuen als auch in bereits dagewesenen Kontexten, ist demnach wahrscheinlicher.

JAXenter: Glaubst du, dass die IT eines Tages eine Art Naturwissenschaft sein wird, in der die Menschheit konstant Wissen akkumuliert, ohne es im nächsten Jahrzehnt wieder zu verlieren?

Kevlin Henney: Ich glaube, dass die Wissenskonservierung und -Verbreitung in der Welt der Software sich in gewisser Hinsicht verbessert, obwohl ich es nicht notwendigerweise mit den Naturwissenschaften vergleichen würde.

Artikel, Blogs, Quellcode, Talks, Bücher, Gespräche, Klassen etc. werden geteilt und sind online verfügbar. In der Software-Entwicklung haben wir eine Ökonomie der Ideen, die auf Wissen und Sharing basiert ist. Wenn ich 25 Jahre zurück blicke, ist es einfacher zu erkennen, weshalb wir dabei besser werden.

Mehr Dinge sind offen und allgemein verfügbar, und Wissen ist nicht länger so elitär oder inselartig wie es einmal war. Abgesehen davon, basiert der Wechsel von der Wissens-Verbreitung und der kulturellen Aufbewahrung auf mehr als nur auf Mechanismen: Menschen und Technologie sind auch ein Teil der Gleichung.

Die meisten Software-Entwickler auf der Welt sind neu. Das war eigentlich schon immer der Fall, aber die Anzahl an Personen, die involviert sind, ist größer als jemals zuvor. Das bedeutet, dass Erfahrung im Vergleich zur Unerfahrenheit eigentlich immer in der Minderheit ist, ganz egal wie verfügbar Daten, Informationen, Wissen und Weisheit geworden sind!

Lesen Sie auch: Infografik: Software-Architektur-Trends 2016

Praktische Software-Entwicklung ist ebenso abhängig von den Technologien. Architektonische Optionen, die in der Vergangenheit schlicht nicht existiert haben oder deren Bereitstellung schwierig bis unmöglich gewesen wären, sind jetzt ein Gemeinplatz, und viele technologische Entscheidungen, die weit verbreitet waren, sind in den Ruhestand versetzt worden. Mit anderen Worten, das Fenster dessen, was praktisch Sinn macht, ist abhängig von Märkten, Hardware, anderer Software etc., und all diese sind ständig in Bewegung.

Wenn man Bandbreite, Leistung, Speicher oder irgendwelche anderen technischen Parameter um eine gewisse Größenordnung verändert, schaut man auf potentiell signifikante Verschiebungen in der Software-Architektur, die sinnvoll erscheinen. Systeme, deren Funktionen immer noch Sinn ergeben, deren Architektur aber nicht mehr, werden üblicherweise als Legacy bezeichnet.

Und es lohnt sich daran zu denken, dass die Software-Entwicklung, im Gegensatz zu den Naturwissenschaften, eine utilitaristische Unternehmung ist: Es geht um Dinge, die angewendet werden. Was die Leute als Konsumenten wollen, ist ein weiteres bewegliches Ziel, angetrieben von den Gewohnheiten, der eigenen Kreativität und der sich verändernden Hardware-Landschaft.

Trotz dieser Wechsel und der Instabilität finden wir eine größer werdende Anzahl von Ideen mit einer überraschenden Stabilität und Langlebigkeit.

Software Architecture Summit 2017Treffen Sie Kevlin Henney live auf dem Software Architecture Summit 2017

14. März 2017

Keynote: Old Is the New New

Session: Breaking Rocks

Alle Infos unter: www.software-architecture-summit.de

JAXenter: Das allgemeine Interesse an Software-Architektur ist sehr groß – besonders in Deutschland. Ist das nicht ein Zeichen dafür, dass wir einen etwas reiferen Zusatnd der Entwicklungs-Praktiken und -Ethiken erreichet haben, verglichen mit früheren Zeiten?

Kevlin Henney: Ich würde dem beipflichten. Es gibt ein wachsendes Interesse an vielen Fronten, von der Anerkennung der Software-Architektur als ein Konzept erster Klasse, bis zur Wahrnehmung, dass der Prozess der Software-Kreation sich von der Erzeugung eines physischen Artefaktes unterscheidet. Der Fortschritt auf all diesen Fronten scheint zumindest teilweise dadurch angetrieben zu werden, dass bereits vorhandenes Wissen besser genutzt wird, um Entwicklung ökonomischer und weniger schmerzhaft zu gestalten.

JAXenter: Der Microservice-Ansatz wird gegenwärtig intensiv debattiert. Ist das ein Beispiel für einen alten Ansatz, der zum „New New“ geworden ist?

Kevlin Henney: Nun, es ist nicht so, dass Microservices ein alter Ansatz sind, aus dem ein Neuer geworden ist. Es ist eher die Kombination von Microservices mit einer Anzahl von alten Ansätzen, die zusammengekommen sind und eine neue Gelegenheit geschaffen haben. Die Probleme, die durch Microservices adressiert werden sollen, sind über die letzten Jahrzehnte hinweg von dem einem oder anderen Paradigma bereits berücksichtigt worden.

Die Kombination von Microservices mit alten Ansätzen haben eine neue Gelegenheit geschaffen.

OS-Prozesse als die prinzipielle Einheit für Komposition, Ausführung und Sicherheit von Systemen zu nutzen, lässt sich bis in die 1970er hin zurückverfolgen. Ich wohnte vor 20 Jahren meinem ersten Talk für Service-Orientierung bei, und dessen Blick auf Service-Granularität und Design hat mehr gemein mit modernen Microservices, als das, was als SOA bekannt geworden ist. Die Fragen der Entwickler bezüglich Kapselung, loser Kopplung, Kohäsion, Heterogenität, etc. sind über einen längeren Zeitraum hinweg bei verschiedenen Paradigmen und Technologien wieder aufgetreten. Distribution als ein Mittel der Skalierung und Komposition zu verwenden, ist ebenfalls älter. Und so fort.

Was sich jedoch verändert hat – und das macht die besondere Mischung aus diesen Ideen heutzutage so populär und anwendbar – ist, dass die Höhe der Kosten heruntergegangen ist – monetäre wie auch Laufzeit-Kosten. Zudem sind viele Quellen von Reibung verschwunden – vom Deployment bis hin zum Stack, auf dem man bauen kann. Füge noch die Anforderungen vieler moderner Systeme hinzu, und du hast eine besondere Architektur-Mischung, die sich von „möglich“ zu „wahrscheinlich“ hin verschiebt. Das ist es, was neu ist.

JAXenter: Welches moderne architektonische Konzept stellt für dich etwas völlig Neues dar?

Kevlin Henney: Ich glaube, dass uns maschinelles Lernen in eine neue Richtung führt, die einerseits vorbelastet ist mit ethischen und technischen Schwierigkeiten, die sich andererseits aber durch etliche Vorzüge und Möglichkeiten auszeichnet.

Deep Learning wird häufig als ein Modul oder Feature eines Systems bezeichnet. Aber ich glaube, dass es mit der Zeit seinen Stempel auf unserem architektonischen Denken hinterlassen wird und Ansätze ergeben wird, die viele unserer innigen Überzeugungen darüber über den Haufen werfen werden, was eine gute Architektur ausmacht. Solche selbst-adaptiven, hochgradig verbundenen, nicht entzifferbaren Architekturen werden interne Strukturen haben, die Produkte von Dataset Learning anstatt von menschlichem Wissen und absichtvollem Planen sind.

JAXenter: Vielen Dank für dieses Interview!

Kevlin HenneyKevlin is an independent consultant, trainer, reviewer and writer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for various magazines and web sites, a contributor to open source software and a member of more committees than is probably healthy (it has been said that „a committee is a cul-de-sac down which ideas are lured and then quietly strangled“). He is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know.

 

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare
  1. Guido Zockoll2017-02-19 12:37:37

    Microservices bringen schon einen deutliche neuen Aspekt für die Software-Architekten mich sich. Auch wenn es technisch um eine Kombination von bestehenden Ansätzen handelt, so liegt das Neue in einer Verschiebung des Wertesystems in der Software-Architektur. Die Werte "Unabhängigkeit" und "Redundanzfreiheit" werden völlig anders gewichtet, als es in früheren Architekturparadigmen der Fall war. Und das sehe ich als radikale Neuerung im Bereich der Software-Architektur.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.