Martin Thompson: "Wir müssen uns auf Einfachheit und Eleganz zurückbesinnen"
In seiner Keynote auf der JavaLand-Konferenz Ende März 2017 wird Java Champion Martin Thompson einen ungewöhnlichen Entwicklungsansatz präsentieren. Vorab erklärt er den Druck des Designs und wie sich auf diese Weise die Softwarearchitektur weiterentwickeln kann.
![Martin Thompson: "Wir müssen uns auf Einfachheit und Eleganz zurückbesinnen"](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/1/4/2/8/5/8/javaland-fd49628664b565e7.jpeg)
- Alexander Neumann
heise Developer: Martin, wie sieht die Zukunft von Softwarearchitektur in 20 Jahren und darüber hinaus aus?
Martin Thompson: Ich denke, dass Qualitätseigenschaften mit unserer zunehmenden Verbindung mit dem Internet eine wesentlich zentralere Rolle spielen werden. Wir müssen uns viel mehr Gedanken über Sicherheit machen. Diese muss ein Grundanliegen werden. Wir müssen effizienter werden. Unsere Prozessoren werden nicht mehr bedeutend schneller. Wir müssen also die vorhandenen Prozessoren wesentlich effizienter nutzen. Wir müssen lernen, effizienter zu programmieren und nicht so verschwenderisch zu sein. Es gibt noch etliche andere Anliegen in Bezug auf gute technische Bearbeitung: Wir müssen uns auf Einfachheit und Eleganz zurück besinnen. Wir müssen das Richtige tun, statt wie derzeit barocke Softwaremonstrosität zu kreieren.
heise Developer: Du hältst auf dem JavaLand 2017 eine Rede über Projekte, in denen sich das Team unter einem enormen Design-Zwang befindet. Was genau verbirgt sich dahinter?
Thompson: Wenn die wichtigsten Anforderungen aus dem Bereich Servicequalität kommen, ergibt sich daraus ein bestimmter Zwang auf das Design. Dies können beispielsweise Performance, Sicherheit oder Ausfallsicherheit sein. Viele Leute nennen diese Anforderungen "nichtfunktional", aber ich mag dieses Wort nicht. Wenn diese Servicequalitätsanforderungen am wichtigsten sind, dann lassen sie einen auf eine Weise arbeiten, dass man nicht mehr den Trends folgen kann.
Design-Muster, beziehungsweise Design-Entscheidungen, werden angewandt, die sich von dem unterscheiden, was üblicherweise verwendet wird. Wir können dennoch voranschreiten, wenn wir die Design-Muster anwenden, die von den Anforderungen aus dem Bereich Servicequalität diktiert werden.
heise Developer: Worum geht es hierbei genau?
Thompson: Es geht darum, sich darüber im Klaren zu sein, was wichtig ist. Wir leben in einer Welt, in der Menschen Trends folgen und dann Design-Entscheidungen für eine Architektur treffen, obwohl sie die Anforderungen gar nicht verstehen. Es ist nicht wie in anderen technischen Fachrichtungen. Andere technische Fachrichtungen werden durch die Anforderungen getrieben und nicht so sehr durch Trends. Im Bereich der Softwaretechnik sind wir als Industrie recht unreif und lernen das Ganze nach und nach.
heise Developer: Gibt es einen Nutzen für die Softwarearchitektur?
Thompson: Ja, auf jeden Fall! Wenn man am extremen Ende der Performance arbeitet, denken die meisten Leute: Oh, ich muss viele Threads benutzen, und Sachen müssen parallel laufen, damit die Performance gesteigert wird. Wenn man dann allerdings misst, merkt man oft, dass die Dinge dadurch nicht schneller laufen und in vielen Fällen sogar langsamer werden. Das liegt daran, dass man bei Zugriffskonflikten landet und dann beim universellen Gesetz der Skalierbarkeit. Die Mathematik dahinter fängt an, alles zu bestimmen. Manchmal ist es wesentlich besser, mit einem einzelnen Thread zu arbeiten. Dann läuft das System viel schneller, und das ist entgegen der Logik der meisten Leute.
heise Developer: Würdest du sagen, dass Design-Zwang eine Art Methode oder Strategie für das Projektmanagement in der Softwarearchitektur ist?
Thompson: Es ist nicht wirklich eine Projektmanagement-Strategie. Es ist eher die Art, wie wir Design angehen. Es geht darum, das Design mit einer offenen und neugierigen Art anzugehen, sich von den Anforderungen und den Daten zu den Design-Entscheidungen leiten zu lassen und dabei die Grundlagen auszuüben. Statt also das neueste Produkt zu kaufen oder das neueste coole Open-Source-Projekt aufzunehmen, sollte man einfach auf die Anforderungen schauen. Werden durch diese Anforderungen Koppelungen notwendig? Oder ist eher eine Entkoppelung erforderlich? Wo wenden wir Kohäsion an? Wo wenden wir das Prinzip "Trennung von Belangen" an? Ich schlage vor, dass wir den Zwang des Designs annehmen. Wir müssen auf diesen Zwang hören. Wir müssen das mehr tun, als wir es derzeit tun.
heise Developer: Was kann das Publikum von deinem Vortrag lernen?
Thompson: Ich möchte veranschaulichen, dass man bei strengen Anforderungen nicht den Trends folgen kann. Man muss sich auf die Grundlagen zurückbesinnen, mit guter technischer und wissenschaftlicher Arbeit. Wenn man diesen Pfad geht, kommt oftmals ein Design heraus, das von dem abweicht, was die Leute üblicherweise erwarten. Auf diese Reise möchte ich die Leute mitnehmen, damit sie selbst sehen und verstehen, dass wir öfter zu den Grundlagen zurückkehren sollten. Du stellst keine Vermutungen an, welches Design du anwenden wirst. Du lässt deine Design-Muster von den Anforderungen treiben und dich von Messungen führen.
heise Developer: Du bist das erste Mal auf der JavaLand. Was erwartest du von der Konferenz?
Thompson: Ich hoffe, dass ich einige gute Gespräche mit den Leuten führen kann. Es ist immer gut, sich mit Leuten zu unterhalten, damit man lernen und Wissen teilen kann. Hoffentlich werde ich davon genauso profitieren wie alle anderen. Und hoffentlich wird mein Vortrag die Leute zu Diskussionen anregen.
Das Interview führte Sebastian Höing von der Deutschen Oracle Anwendergruppe (DOAG), auf deren Webeite es auch zuerst erschien. DOAG und heise Developer sind zusammen mit dem iJUG, der Interessengemeinschaft deutschsprachiger Java User Groups, Ausrichter der JavaLand-Konferenz. (ane)