Blog & Artikel

Blog-Post

Communicating organizational changes with “Team Topologies”

Whenever the need arises to set up a new team, split a team into two or move responsibilities between teams it is necessary to have a good idea of where you are and where you want to be after the change. Additionally to the current and final states you will very likely have phases with intermediate states. To help everyone involved to have a shared understanding of which phases you will transition through - and when responsibilities and communication channels have to be created or changed - a visual representation of these states can be used to paint a (literal) common picture.

Artikel

Wie gemacht für Legacy-Code

In diesem Artikel geht es um Menschen, die leidenschaftlich gerne Legacy-Systeme verbessern. Sie sind motiviert, technische Schulden stetig abzubauen, damit Softwaresysteme dauerhaft erweiterbar bleiben. Vorurteile und Stereotypen unserer Branche verhindern es, das Potenzial dieser Menschen bestmöglich zu nutzen.

Artikel

Identifikation von Team-Grenzen

Wie man Grenzen für autonome, cross-funktionale Teams identifizieren kann

Artikel

Compliance in hybriden Betriebsumgebungen

Compliance ist ein wesentlicher Bestandteil der Unternehmensführung und trägt dazu bei, die Rechtskonformität und Qualität entwickelter Software sicherzustellen. Es ist auch ein unvermeidbares Kriterium bei der Modernisierung einer Systemlandschaft, die häufig mit der Migration in die Cloud einhergeht.

Blog-Post

Extending the OpenTelemetry Java Agent for Spring Auto-Instrumentation

OpenTelemetry is great. A few days ago, I was diving a bit more into the intrinsics of the OpenTelemetry standard and the Java auto-instrumentation in particular.

Artikel

Zukünftige Features des JDK

Ein Blick in die Glaskugel

Blog-Post

Entwickeln mit ChatGPT

In der Welt der Softwareentwicklung ist das Wissen darüber, wo man Informationen findet, oft wertvoller als alles auswendig zu wissen. Doch was, wenn ein Werkzeug nicht nur Informationen liefert, sondern auch lernt, Probleme zu lösen und beim Entwickeln zu assistieren? In diesem Blog Post berichte ich aus meinem Alltag als Entwicklerin und wie mich ChatGPT bei beruflichen Aufgaben unterstützt - sei es bei der Einarbeitung in neue Programmiersprachen, dem Schreiben von Skripten oder dem Umsetzen von kreativen Ideen.

Artikel

Der Evolutionist

Die heutige Aus- und Weiterbildung von Softwareentwicklern und Softwareentwicklerinnen konzentriert sich stark auf die Neuentwicklung von Software. Auf Konferenzen und in Fachmagazinen gibt es eine große Bandbreite an neuen Programmiersprachen, neuen Tools, neuen Hypes, an denen man sich anscheinend nie sattsehen kann. Schnelle Ergebnisse, direktes Feedback und noch nie dagewesene Produktivität werden suggeriert. Der Drang, das Neue auch in die eigene Software einzubringen, ist geweckt – bis man wieder von der Realität eingeholt wird: dem eigenen Legacy-System.

Blog-Post

Rate Limiting with Spring Boot, Bucket4j, and Redis

Blog-Post

Lokale LLMs mit Ollama und Spring AI nutzen

Egal, ob wir wollen oder nicht, um AI und speziell Large Language Models (LLM) kommen wir aktuell nicht herum. Mich schrecken solche Hypes zwar aus Reflex eher ab. Allerdings sieht es so aus, als würde von diesem Hype mehr bleiben als vom letzten, der Blockchain. Deshalb wollen wir uns in diesem Post einmal anschauen, wie man ein LLM lokal aufsetzen kann und dieses mittels Spring AI in eine Spring Boot-Anwendung einbinden kann.

Blog-Post

Rate Limiting with Spring Boot

Let’s implement rate-limiting protection for your Spring Boot server without the need for any additional dependencies beyond those included in the Spring Boot Starter package.

Blog-Post

Compacted State Feeds

Artikel

Es lebe die Bürokratie!

Die Digitalisierung hilft, Bürokratie zu reduzieren, glaubt man. Warum das so einfach nicht ist, erklärt diese Kolumne.

Artikel

GitOps geht auch ohne Kubernetes

Im Kubernetes-Universum ist GitOps erfolgreich. Dank der Versionskontrolle mit Git lässt sich die Betriebsumgebung transparenter und zuverlässiger konfigurieren. Aber GitOps klappt auch ohne Kubernetes.

Artikel

Kombinierbare Elemente für Benutzungsoberflächen im Web

Komponenten in Webanwendungen

Blog-Post

Was treibt dich an?

In der heutigen schnelllebigen Welt der Softwareentwicklung ist die Modernisierung von Software eine unerlässliche Aufgabe, um mit ständig ändernden Anforderungen und Technologien Schritt zu halten. Es gibt immens viele Ansätze zur Modernisierung von Software. Aber es ist eine Herausforderung, die richtigen Werkzeugkästen in den richtigen Situationen zu finden. Wie schön wäre es, die eine «Ultimative Softwaremodernisierungsmethode™️» in den Händen zu halten, die all die Probleme mit den in die Jahre gekommenen Softwaresysteme lösen kann?

Artikel

Automatisierte Code-Wartung mit OpenRewrite

In Teil 1 dieser Serie habe ich gezeigt, wie OpenRewrite im Rahmen von Softwareentwicklungsprojekten zur Automatisierung von Code-Wartungsaufgaben verwendet werden kann. In diesem Beitrag zeige ich nun, wie man eigene OpenRewrite-Rezepte schreibt. Das hilft Dir nicht nur dabei, Refactoring-Aufgaben auszuführen, für die es keine öffentlich zugänglichen Rezepte gibt, sondern auch dabei, zu verstehen, wie OpenRewrite unter der Haube funktioniert.

Artikel

Abhängigkeitsupdates mit Renovate automatisieren

Immer auf dem neuesten Stand bleiben

Blog-Post

Rooting Out Issues: JPA and Lombok Combination Problems Demystified

Ever encountered perplexing issues with JPA and Lombok’s @Data annotation when handling entities in Java? This blog post explores unexpected behaviors, especially with auto-generated IDs, in conjunction with equals and hashCode methods. Learn about identity and uncover how you can resolve these challenges forever.

Artikel

Technologien zur Integration von Services

Im Zuge einer internen Studie haben wir mehrere INNOQ Berater*innen nach ihren Erfahrungen in aktuellen oder vergangenen Entwicklungsprojekten befragt. Ein interessantes Thema war dabei die Integration von Microservices und Self-Contained Systems (SCS). Um bessere Skalierbarkeit, stärkere Resilienz und losere Kopplung zu ermöglichen, wird in verteilten Systemen häufig auf asynchrone Kommunikation gesetzt. In diesem Beitrag erfahrt ihr, welche Erkenntnisse wir in den Gesprächen erlangt haben.

Blog-Post

Die Anatomie eines erfolgreichen Teams

…und worauf Sie bei der Zusammenstellung eines erfolgreichen Software-Entwicklungsteams achten sollten

Blog-Post

Schema Evolution

Bei der Benutzung von Kafka wird häufig ein Schema definiert und benutzt, das die verwendeten Datenstrukturen spezifiziert. Da Software im Laufe der Zeit stetig weiterentwickelt wird, ist es irgendwann notwendig das Schema anzupassen. Dieser Artikel erörtert Ansätze, die sich dabei bewährt haben und Hilfsmittel, die verwendet werden können, um eine solche Schema Evolution durchzuführen.

Artikel

Automatisierte Code-Wartung mit OpenRewrite

Bei der großen Anzahl von Softwareentwicklungsprojekten in den meisten Unternehmen kann es herausfordernd sein, diese Projekte mit den neuesten Sicherheitspatches und Framework-Updates aktuell zu halten. OpenRewrite ist eine Bibliothek, die eine automatisierte Lösung für dieses Problem bietet. In diesem Artikel erkläre ich, wie OpenRewrite funktioniert und wie Du es für die Wartung Deiner Code-Basis einsetzen kannst.

Blog-Post

Micro Frontends With Ionic And Capacitor

Artikel

Die Ökonomie von Gut & Crypto I

Der Hype um Crypto-Technologien ist etwas abgeklungen. Ein guter Zeitpunkt, die Möglichkeiten und ihre soziotechnischen Aspekte strukturiert zu betrachten. Die folgenden Kolumnen betrachten einige der Themen, die im Zusammenhang mit Crypto-Technologien immer wieder benannt werden oder für die sie Lösungen versprechen.