10 Take-aways von der JAX 2017: Microservices, Container, Java 9 & More

Brandaktuell ging es dieses Jahr auf der JAX in Mainz zu. Kurz nach den Tumulten rund um Java 9 und Jigsaw konnten die Teilnehmer die Experten aus den Java-Gremien mit Fragen löchern. Dauerbrenner waren Themen wie Microservices und Cloud. Einen neuen Funken entfachen wollten wir mit dem Thema Diversität, das mit einer Keynote und einem BoF-Panel vertreten war.

1. Scheitern als Chance

Kevin Goldsmith, CTO bei Avvo, gab mit seiner Keynote den offiziellen Startschuss für die JAX. Unter dem Titel „Fail Safe, Fail Smart, Succeed!“ gab er dem Auditorium mit in die Konferenzwoche, dass Innovationen Fehlschläge brauchen. Denn wer sich nicht traut, zu scheitern, traut sich auch nicht, Neues auszuprobieren. Deswegen ist für den Softwareentwickler, in dessen Lebenslauf so klangvolle Namen wie Adobe, Microsoft und Spotify stehen, eine Arbeitsumgebung wichtig, die „fail-safe“ ist.

Für ihn bedeutet fail-safe aber nicht, dass Fehler nicht vorkommen, sondern, dass es sicher ist, zu scheitern. Es darf nicht darum gehen, Fehler unter den Teppich zu kehren oder einen Sündenbock zu finden.

„Nehmt den schnellsten und günstigsten Weg zum Lernen“, war ein weiterer seiner Tipps. Dann bleiben das Risiko und die Kosten von Fehlschlägen überschaubar. Als Gegenbeispiel nannte er den grandios gescheiterten Assistenten von Microsoft Karl Klammer. Er entstand im stillen Kämmerlein ohne jegliches Nutzerfeedback, und auch wenn die Idee dahinter gut war, fanden die Anwender den Assistenten einfach nur nervtötend.

Im Anschluss an seine Keynote haben wir Kevin zum Interview gebeten. Im Gespräch mit Sebastian Meyen geht er auf die Notwendigkeit ein, eine Experimentalkultur im Unternehmen zu etablieren, die Innovation fördert. Wie kann ein Unternehmen es schaffen, Fehler zuzulassen und sie als Gelegenheit zu begreifen, zu lernen? Wie lassen sich Systeme bauen, die, anstatt nur auf Fehlervermeidung ausgelegt zu sein, Fehler antizipieren und diese verarbeiten?

2. Mehrsprachigkeit macht glücklich

Keine Angst vor der polyglotten Programmierung war die Botschaft der Session von Mario-Leander Reimer, Cheftechnologe bei QAware. Er zeigte seine Idealvorstellung einer Anwendungsentwicklung, samt Tools und Sprachen. Unter anderem brach er eine Lanze für Kotlin. Die Sprache treffe genau „den Sweet Spot zwischen Java und Scala“. Er ermutigte seine Zuhörer, mit Sprachen zu experimentieren. Man müsse nicht jede Sprache so gut beherrschen wie die Muttersprache Java. Oft reiche ein Grundverständis aus, um „langweiliges Zeug“ beispielsweise in Groovy mit Skripten wegzuautomatisieren.

3. Sein oder Nichtsein: Java 9 und die Debatte um Jigsaw

Punktgenau zur Eröffnung der JAX 2017 ließ das Exekutivkomitee des Java Community Process (JCP) die Bombe platzen: Das Java-Kerngremium hatte sich in einer Abstimmung gegen den Entwurf des Java-9-Modulsystems (aka Jigsaw) entschieden. Lange Gesichter bei Oracle. Ergebnis dieses negativen Votums: Die Jigsaw-Spezifikation muss nochmals überarbeitet werden. Und, wie sich dann herausstellte, wurde dadurch auch eine erneute Verschiebung des gesamten Java-9-Release notwendig.

Das Thema wurde auf der JAX natürlich ausführlich diskutiert. Da prominente Vertreter aus dem Java-Kernteam vor Ort waren, haben wir die Gelegenheit für Interviews genutzt. Rémi Forax aus der Jigsaw-Expertengruppe machte deutlich, dass an dem Modulsystem an sich kein Weg mehr vorbei führt.

Die Weichen für Jigsaw sind längst gestellt: Bereits seit Java 8 ist ein Modulkonzept Teil des JDK, viele der geplanten Features für Java 10 bauen auf Jigsaw auf. Nicht zuletzt hängt die Strategie, neue Java-Versionen zukünftig häufiger und agiler zu veröffentlichen, von Jigsaw ab. Fazit: Das Modulsystem wird kommen – daran führt kein Weg vorbei!

4. Modularisierung – aber bitte mit Fokus auf die Fachlichkeit!

Entspannt sieht übrigens Java-Champion Adam Bien die Jigsaw-Debatte: „Ich warte schon seit 2007 auf Jigsaw“, hat er uns im Interview verraten. Kommt es da also wirklich auf weitere acht Wochen Verschiebung an? Aber Adam äußerte auch Bedenken: Mit Jigsaw sollte man nicht in die Falle tappen, sich mehr mit der Modularisierung als mit der eigentlichen Fachlichkeit auseinanderzusetzen!

Denn um genau diese Fachlichkeit ging es Adam in seiner Session „Bare Metal Design“. Ausgangspunkt war hier die Idee der Microservices, die Adam auf das Prinzip der Shared-Nothing-Architekturen zurückführt. Wenn wir es mit voneinander unabhängigen Komponenten zu tun haben, von deren interner Organisation die anderen nichts wissen, so lässt sich das Design des Quellcodes extrem optimieren. Viel Boilerplate, den gerade Java mit sich bringt, kann entfallen. Vorhang auf für das Bare Metal Design!

Starten sollte man aber nicht gleich mit einer verteilten Microservices-Architektur. Für Adam ist es sinnvoller, zunächst mit einem schlanken Monolithen zu beginnen – den er auch Thinlith oder Minilith nannte –, um dann Anforderungen aus den Fachabteilungen zu sammeln. Erst durch dieses Domänenwissen lassen sich kohärente Microservices schneiden, die auch abgeschlossene Einheiten in der realen Welt abbilden.

Das Take-away hier: Modularisierung und Microservices sind kein Selbstzweck. Nur wenn die Fachlichkeit es hergibt, sollte man diesen Ansatz wählen. Microservices zahlen sich aber dann aus, wenn eine Software aus unterschiedlichen Teilen besteht, die unabhängig voneinander ausgetauscht werden müssen oder wenn verschiedene Entwicklerteams autonom an bestimmten Komponenten arbeiten wollen.

5. Öfter mal Nein sagen

Wieder und wieder werden agile Teams, aber auch Stakeholder und Scrum Master, mit Anforderungen konfrontiert, die so nicht erfüllbar sind: ein fixer Abgabetermin bei festem Budget und Scope, die sehr dringende Anforderung an der Kaffeemaschine, am besten gestern. Viele Entwicklerteams kennen solche Schwierigkeiten.

Die Speaker des Agile Days der JAX 2017 waren sich in dieser Sache einig: Ein „Nein“ ist an der richtigen Stelle gar nicht schlimm. Volker Schmidt, Agile-Coach bei Cegeka Deutschland, verwies bereits in seinem Talk darauf, dass man sich als Entwickler kaum Sorgen darum machen muss, seinen Job zu verlieren. Und, wie im Abschlusspanel zur Sprache kam, erst Recht nicht dann, wenn man Recht hat. Agile funktioniert nämlich nur dann, egal ob auf Team- oder auf Organisationsebene, wenn eine ehrliche Kommunikation stattfindet und nicht zu bewältigende Anforderungen offen benannt werden. Die 59. Idee des Stakeholders sollte man also lieber ablehnen, falls man eh nicht vor hat, sie jemals anzugehen. Das ist besser für den gesamten Prozess und alle Beteiligten.

6. Diversität ist Trumpf

Was bedeutet Diversität für dich? Sind diverse Communitys effizienter oder innovativer? Im BoF-Panel haben wir darüber gesprochen, warum wir Diversität in unseren Unternehmen und Teams dringend brauchen. Jeder Teilnehmer hatte die Chance zu erläutern, was Diversität für ihn bedeutet und ob seine Firma versucht, Diversität nahtlos in die Unternehmenskultur zu integrieren.

Wir sprachen über die Teilnahme der Männer in der Diskussion und kamen zu dem Schluss, dass sie ihre Kolleginnen unterstützen und dabei helfen müssen, die Mauern des sogenannten Männerclubs einzureißen. Unser Panel war der lebende Beweis dafür, dass Männer Teil der Diskussion sein wollen. Denn es gab mehr männliche als weibliche Teilnehmer und sie äußerten deutlich, dass Diversität nicht nur zu einer besseren Arbeitsumgebung, sondern auch zu besserer Performance und Innovationen führt.

Unser Fazit war, dass wir die Unterhaltung weiter führen müssen, um Diversität wirklich nicht nur auf einem Makrolevel (Unternehmen), sondern auch auf einem Mikrolevel (Teams) zu implementieren.

Mit der JAX-Keynoterin Tracy Miranda haben wir uns über die Rolle von Diversität in der modernen Gesellschaft unterhalten. Auch die Fragen, was man tun kann, um die Dinge wirklich zu verändern und wie man Inklusion, Diversität und Gleichheit vorantreiben kann, werden besprochen.

7. Omen auf der JAX: Die Roboter-Challenge

Auch in diesem Jahr war der einzigartige Bernhard Löwenstein mit seiner LEGO MINDSTORMS Challenge ein substanzieller Teil der JAX in Mainz. Seit vielen Jahren begeistert er mit diesem festen Segment der JAX die Besucher, für viele ist der Workshop das Highlight unserer Konferenz.

Nachdem bei der W-JAX im vergangenen November die Roboter gegeneinander im Ring angetreten sind und sich gegenseitig herausschubsen mussten, ging es in Mainz diesmal friedlicher zu: Gleich zwei Herausforderungen galt es für die LEGO-Roboter zu meistern, zum einen die sichere Fahrt entlang einer vorgelegten Strecke, zum anderen die korrekte Auslieferung eines Java-9-Startpakets in Form einer Streichholzschachtel.

Treffenderweise konnten nur wenige Pakete abgeliefert werden – war das etwa ein Omen für die nahende Verschiebung von Java 9? Möglich wäre es. Dennoch waren die Einfälle wieder einmal grandios und die Teams kombinierten ihr Fachwissen um die Programmierung auf höchst professionelle Weise mit kreativen Konstruktionsideen. Fast jedes Team hatte eine individuelle und kreative Idee dafür parat, wo die Sensoren in den Roboter eingebaut und wie die Transportproblematik gelöst werden sollte. Die Gewinner konnten sich am Ende über ein kostenloses Tutorial aus unserem entwickler.tutorials-Angebot und eine Tasse mit dem Schriftzug I ♥ Java freuen.

8. Ohne Feedback kein Big Data

Früher entschied der Chef, und er hatte entweder ein gutes Gespür oder es ging eben schief. Heutzutage fallen immer mehr Entscheidungen auf der Grundlage von gesammelten Daten, wie Hendrik Saly, Senior IT Consultant bei codecentric, in seinem Talk zum Datengoldschürfen erklärte.

Aber damit wirklich aus Daten Gold wird, setzt er auf den OODA-Loop. OODA steht für „observe“, „orient“, „decide“ und „act“. Das Konzept beschreibt eine Feedbackschleife, die aufgrund von neuen Ereignisse immer wieder durchlaufen wird. Entscheidungen und Änderungen, die zu Taten führen, die dann aber nicht erneut gemessen werden, sind nur der halbe Weg. „Big Data ohne Feedbackzyklus lohnt nicht“, war sein knappes Statement.

9. Container drinnen und draußen

Das reichhaltige Aufgebot an Containerschiffen, die während der JAX aus der Rheingoldhalle beobachtet werden konnten, war ziemlich auffällig. Es kam einem fast so vor, als seien sie ganz speziell von den Reedereien in dieser Woche auf die Reise geschickt worden, um die Besucher der Konferenz in die richtige Stimmung zu versetzen.

Aber um Container ging es auch in zahlreichen Sessions, zum Beispiel in Philipp Garbes Talk. Er sprach über Continuous Delivery von Docker-Containern mit Amazon ECS. Im Interview mit JAXenter erläuterte er dann auch, dass sich ECS vor allem durch die gute Weboberfläche und das ECS CLI auszeichnet. Gerade Letzteres sorgt für angenehmes Arbeiten, da man mit einem Befehl ganze Cluster erzeugen und deployen kann.

10. Serverless heißt nicht less Server

Längst werden Anwendungen und Microservices zu einem großen Teil in der Cloud erstellt. Seit einer Weile geht das sogar serverless, wobei das nicht bedeutet, dass gar keine Server zum Einsatz kommen. Im Vergleich zur klassischen Methode kümmert sich allerdings der Cloud-Anbieter um das gesamte Servermanagement, nicht mehr das Unternehmen oder der User selbst.

Wie man die neue Technologie einsetzen kann, hat Niko Köbler in seinem Workshop und seiner Session auf der JAX eindrucksvoll vermittelt. Für Best Practices, so verriet uns der freiberufliche Softwareentwickler, sei es allerdings noch zu früh. Daran liegt es auch, dass das Tooling der Technologie noch nicht besonders ausgereift ist. Ein paar „Lessons Learned“ gibt es aber, nämlich unter anderem, dass es wichtig ist, auf die Latenz und das Caching zu achten.

 

Wir sehen uns im November!

Viel los war wieder auf der JAX. Und unser kleiner Rückblick ist sicher kein umfassendes Spiegelbild von über 170 Sessions, Workshops und Keynotes. Wir sehen uns wieder in München zur W-JAX 2017. Dann hoffentlich mit Java 9 und einer ganzen Wagenladung weiterer Themen aus und von der Java-Community.

Top Articles About Agile, People & Culture

Alle News der Java-Welt:

Behind the Tracks

Agile, People & Culture
Teamwork & Methoden

Clouds & Kubernetes
Alles rund um Cloud

Core Java & Languages
Ausblicke & Best Practices

Data & Machine Learning
Speicherung, Processing & mehr

DevOps & CI/CD
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Performance & Security
Sichere Webanwendungen

Serverside Java
Spring, JDK & mehr

Software-Architektur
Best Practices

Web & JavaScript
JS & Webtechnologien

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Domain-driven Design
Grundlagen und Ausblick

Spring Ecosystem
Wissen in Spring-Technologien

Web-APIs
API-Technologie, Design und Management

ALLE NEWS ZUR JAX!