Interview mit Michael Simons
Interview mit Michael Simons
Die Architektur von Software richtig zu planen, ist alles andere als einfach. Oft kommt es während oder nach Abschluss eines Projektes zu Problem. Was man dagegen tun kann, erklärt Michael Simons, Senior Consultant bei innoQ Deutschland, im Interview. Darüber hinaus sprachen wir mit ihm über seine Lieblingsfeatures in Spring Boot 2 und welche interessanten Entwicklungen es im Spring-Universum derzeit gibt.
JAXenter: Hallo Michael und danke, dass du dir die Zeit genommen hast. Auf der JAX 2018 hast du, gemeinsam mit einigen Kollegen, einen Workshop zum Thema Architektur Retreat, in dem ihr Konzepte vorstellt, die Qualität eines Softwareprojekts zu verbessern. Vielleicht grundsätzlich daher erst einmal die Frage: Was kann man zu Beginn und auch während eines Projektes alles falsch machen? Bzw. was sind für dich Anzeichen einer schlechten Qualität?
Michael Simons: Um Edward Berard, einen amerikanischen Software Engineer zu zitieren: „Walking on water and developing software from a specification are easy if both are frozen.“ Es scheint eine Trivialität zu sein, dass Spezifikationen, Anforderungen und Qualitäten betrachtet werden müssen, bevor wir ohne Plan loslaufen, Dinge implementieren und Technologien etablieren, aber merkwürdigerweise passiert das an vielen Stellen.
Planlosigkeit beim Start spiegelt sich dann auch in der Zugänglichkeit eines Softwaresystems wieder.
Qualität als Wort bezeichnet zuerst einmal eine Eigenschaft, ob diese gut oder schlecht ist, ist ein anderer Aspekt. Es ist für mich essentiell, die Qualitäten zu benennen und zu fixieren, die das Ergebnis eines Projektes haben kann. Ohne zu wissen, wohin und warum, ist es fatal, Technologien um ihrer Selbstwillen einzusetzen und im schlimmsten Fall im Projektverlauf – je nach geänderter Anforderung – wieder zu entfernen oder anders als geplant anzuwenden.
Planlosigkeit beim Start spiegelt sich dann auch in der Zugänglichkeit eines Softwaresystems wieder: Ist ein System zeitnah auch von einem fachfremden zugänglich? Oder braucht es Spezialisten für jeden, eigentlich üblichen Schritt bei der Entwicklung, sei es bei der Entwicklung selbst, beim Testen oder beim Deployment.
JAXenter: Welche Konzepte gibt es, die die von dir angesprochenen Probleme bereits zeitnah – oder auch im Nachhinein – lösen können?
Michael Simons: Zunächst gilt es, nachvollziehbare Dokumentationen zu schaffen, hinsichtlich Anforderungen, gewünschter Qualitäten und Fachlichkeit. Dann gehört auch dazu, Technologieentscheidungen nicht in Isolation zu treffen, sondern ins Team zu vermitteln und dieses zu schulen. Und zu guter Letzt ist es wichtig, wiederkehrende Aufgaben, wie Testen und Deployment, von Anfang an zu automatisieren.
JAXenter: In deiner Session mit Michael Plöd stellt ihr die wichtigsten Neuerungen zu Spring Boot 2 vor, auf JAXenter hattest du hierzu eine sehr beliebte Artikelserie geschrieben. Welches ist denn dein absolutes Lieblingsfeature von Spring Boot 2?
Michael Simons: Es gibt viele interessante Neuerungen, ganz weit vorne steht natürlich die Tatsache, dass Spring Boot 2 zusammen mit Spring 5 als etablierte Enterprise-Technologie reaktive Softwareentwicklung auch in Bereiche bringt, die für alternative Frameworks und Technologien nicht in Frage kommen. Das hört hinsichtlich das etablierten Stacks nicht auf: Entwickler, die mit Spring Web MVC und den bekannten Annotationen arbeiten können, können dieses Programmiermodell für den reaktiven „Web-Flux“-Stack fast wie gewohnt weiter verwenden.
Für mich ganz persönlich ist die konsequente Pflege des mittlerweile vier Jahre alten Projektes ein Highlight: „Falsche“ Namen, Package-Strukturen und Lücken in der Dokumentation werden konsequent korrigiert, bereinigt und gefüllt. Das bringt mich zu den Eingangsfragen: Spring und Spring Boot schaffen es seit mehr als 10 Jahren, wartbar und weiterentwickelbar zu bleiben. Technische Schulden können aufgenommen werden, aber sie müssen auch regelmässig beglichen werden.
JAXenter: Ohne weiter auf die derzeit verfügbaren neuen Features einzugehen, vielleicht einmal ein Blick nach vorne: Welche spannenden Entwicklungen können wir für das zweite Halbjahr 2018 in Spring Boot und Spring Security erwarten?
Michael Simons: Das Team um Spring Security treibt meines Wissen die Integration von OAuth 2 und Open ID Connect weiter voran. Die Integration sollte stetig besser werden.
JAXenter: Was ist die Quintessenz eures Workshops und eurer Session, die jeder Besucher mit nach Hause nehmen soll?
Michael Simons: Unsere Besucher sollen am Ende des Talks eine Vorstellung davon haben, was mit dem reaktiven Spring Stack nun möglich ist, welche neuen Features Actuator bringt, aber insbesondere eine Art Checkliste an der Hand haben, anhand derer sie entscheiden können, wie aufwendig das Upgrade einer Spring-Boot-1.x-Anwendung ist.
JAXenter: Zum Schluss würde ich gerne auf die EUregJUG Maas-Rhine zu sprechen kommen, deren Leader, Gründer und Organisator du bist. Welche spannenden Themen und Aktionen sind für den Rest des Jahres geplant?
Michael Simons: Für 2018 haben wir Vorträge zum Thema Servleress mit Niko Köbler, funktionaler Programmierung mit Rabea Gransberger und einen nicht-technischen Vortrag von Jens Schauder zum Thema Kommunikation geplant.
Aktuell führe ich Gespräche, wie es uns als EuregJUG gelingen kann, lokale Entwicklerinnen und Entwickler zu motivieren, auf unserer Plattform einen Vortrag beliebiger länge zu halten. Räumlichkeiten und Support stünden diesbezüglich schon bereit. Ich selber würde – nach meiner positiven Erfahrung als Mentor auf dem JavaLand – selber auch gerne wieder dabei helfen, einen Vortrag zu erstellen.