Kiosk-Artikel

Cruft oder Craft: Wie relevant sind Software-Crafting-Techniken heute noch?

Wir schreiben das Jahr 2020. Wenn die werten Lesenden diesen Artikel zu Gesicht bekommen, wird es 2021 sein – mehr als 25 Jahre, nachdem Kent Beck Extreme Programming entwickelt und damit ein Umdenken hinsichtlich unserer Art, Software zu entwickeln, angestoßen hat. Zeit, sich zu fragen, ob die Programmierpraktiken, die mit agiler Softwareentwicklung verbunden werden, den Anforderungen des 21. Jahrhunderts noch gewachsen sind.

Das agile Klassenzimmer: Homeschooling und Agilität

Schule zu Corona-Zeiten war gerade in den ersten Monaten oft kein Distanzunterricht, sondern viel zu häufig Homeschooling mit viel elterlicher Unterstützung. Das war ungewohnt und wir mussten uns zu Hause entsprechend organisieren. Wie es uns dabei ergangen ist und welche Parallelen mir dabei zu den Voraussetzungen für gelungene Agilität in Softwareentwicklungsteams aufgefallen sind, wo wir oft auch spontan, aber einigermaßen geordnet auf neue Situationen reagieren müssen, davon handelt dieser Artikel.

Das eierlegende Truffle-Schwein: Neue polyglotte Programmierung auf der JVM

Viele, die im Java-Umfeld unterwegs sind, werden von ihr gehört haben: der sagenumwobenen GraalVM. Diese „magische“ neue Virtual Machine für Java soll vor allem für blanke Performance sorgen, indem sie den Java-Bytecode in nativen Code kompiliert. Dadurch fällt insbesondere der Start-up-Overhead weg, da weite Teile der Initialisierung bereits vom Compiler erledigt werden. So oder so ähnlich ist es vielerorts zu lesen [1], [2]. Doch das ist bei weitem nicht das einzige Feature, das Oracle der GraalVM gegeben hat. Hinzu kommt, dass sie zu nichts weniger das Potenzial hat, als eine neue Ära der polyglotten Programmierung auf der JVM einzuläuten. Die Rede ist vom Truffle API, einem generischen Framework zur Implementierung von Interpretern.

Agile ist tot, lang lebe Modern Agile! Weiterentwicklung des Agilen Manifests

Das Agile Manifest ist mittlerweile 20 Jahre alt und seitdem unverändert. Was einerseits für gute Ideen spricht, läuft Gefahr, nicht mehr zu aktuellen Entwicklungen zu passen. Zudem gibt es zunehmend Kritik an dem, was heute alles als „Agile“ verkauft wird. Modern Agile versucht, darauf eine angepasste, neue Antwort zu geben – oder vielmehr neue Fragen zu formulieren, die uns besser beim Finden möglicher, für uns passender Lösungen helfen.

Tribuo Concepts: Im Überblick

Tribuo ist eine statisch und stark typisierte, in Java geschrieben Machine-Learning-Bibliothek. Sie arbeitet mit Objekten und nicht mit mehrdimensionalen Arrays, d. h., dass die Modelle Example-Objekte akzeptieren und typisierte Prediction-Outputs erzeugen. Tribuo verwendet auch das Typsystem, um zu erzwingen, dass die Trainings-Data-Sets mit den erwarteten Modellen übereinstimmen (zum Beispiel, dass Classification Trainer auf einem Classification Data Set verwendet wird).

Was geht, GraalVM? Eine ausführliche Einführung in die GraalVM

Nun ist sie also draußen, die neue Java Virtual Machine (JVM) mit dem Namen GraalVM, über die einer von uns (Stephan) schon im vergangenen Frühjahr gebloggt hat [1]. Seit damals hat sich viel getan, die GraalVM hat die Java-Landschaft deutlich verändert. Twitter verwendet sie schon seit Jahren für seine Scala Microservices [2]. Die GraalVM beginnt jetzt auch in der etwas konservativeren Businesswelt Fuß zu fassen, insbesondere im Bereich der Cloud-nativen Anwendungen. Grund genug also, sich die GraalVM noch einmal genau und ausführlich anzusehen und die Frage zu beantworten, ob es sich lohnt, die gute alte JVM durch etwas Neues zu ersetzen.

Chaos Engineering bei der DB: Grundlagen, Prinzipien, Mehrwert und Praxis

Die Deutsche Bahn (DB) hat sich einer großen Herausforderung gestellt. Sie baut im laufenden Betrieb die komplette Vertriebsplattform neu. Dabei kommen moderne Technologien zur Anwendung wie etwa Microservices und Continuous Deployment. Conways Law berücksichtigend entsteht eine verteilte Systemlandschaft, in der fachliche Zuständigkeiten wie Ticket- oder Angebotserstellung klar verortet und fachlich separiert sind. Sie bietet die notwendige Flexibilität für eine kontinuierliche und zukunftsfähige Weiterentwicklung der Plattform.

Einstieg in das Full-Stack-Framework RedwoodJS: Bringing Full Stack to the JAMstack – Teil 1

Wie kann ein Technologiestack für eine moderne Webapplikation aussehen? React im Frontend, GraphQL für die Kommunikation zwischen Frontend und Backend, ein Serverless-Backend auf Basis von Node.js, die Datenbankabstraktion erfolgt über Prisma und die Datenbank selbst ist relativ frei wählbar. Deployt wird die Applikation in einem solchen Set-up im Idealfall weitestgehend automatisiert und auf Basis des Versionskontrollsystems. Klingt das interessant? Dann ist Redwood vielleicht genau das Richtige für Sie.

Von Daten zum Modell und wieder zurück: Tools und Prozesse für MLOps

Ein Machine-Learning-Modell zu trainieren, wird immer einfacher. Aber das Modell zu bauen und zu trainieren, ist auch der einfache Teil. Die eigentliche Herausforderung besteht darin, ein Machine-Learning-System in Produktion zu bringen und dort verlässlich zu betreiben. Im Bereich der Softwareentwicklung haben wir dazu eine wesentliche Erkenntnis gewonnen: DevOps ist nicht länger nur nice to have, sondern absolut notwendig. Warum also nicht DevOps-Werkzeuge und Prozesse auch für Machine-Learning-Projekte einsetzen?

Auf pythonischen Spuren: Schließt Tribuo den Feature-Gap zwischen Python und Java?

Nicht zuletzt ob der breiten Verfügbarkeit von Bibliotheken hat sich Python im Laufe der letzten Jahre als Quasistandard im Bereich Machine Learning etabliert. Logisch, dass man bei Oracle diesem Trend nicht wirklich gern zusah – schließlich und endlich muss Java ja große Verbreitung haben, möchte man am Produkt ernsthaft Geld verdienen. Vor einiger Zeit stellte Oracle deshalb die hauseigene Bibliothek Tribuo unter eine quelloffene Lizenz.