Strategische Datenbankentscheidung für eine verteilte Plattform-Architektur

Wie eine Datenbankentscheidung zum strategischen Invest wurde

Im Oktober 2022 stand ich vor dem IT-Lenkungskreis Digitalisierung unseres Mutterkonzerns. Auf der Agenda: Ein Vorschlag, der unsere gesamte Datenhaltung grundlegend verändern sollte – und der ein 6-stelliges Investment erforderte. Keine leichte Übung, wenn man bedenkt, dass im Raum Geschäftsführer, IT-Leiter und Entscheider saßen, die vor allem eine Frage hatten: Warum können wir nicht einfach weitermachen wie bisher? Dass die Initiative am Ende nicht nur genehmigt, sondern vom Aufsichtsrat freigegeben wurde, lag nicht an der Technologie selbst. Es lag daran, wie wir die Entscheidung aufgebaut haben. ...

März 2, 2025 · 9 Minuten · 1828 Wörter · Florian Sperber
Code-Refactoring als kontinuierlicher Verbesserungsprozess

Random Refactoring

Heute möchte ich über eine Methode sprechen, die ich “Random Refactoring” nenne, und darüber, wie wir als Führungskräfte die richtigen Rahmenbedingungen dafür schaffen können. Die Methode Der Ansatz ist denkbar einfach: Öffne eine zufällige Datei im Projekt. Analysiere kritisch, was sich verbessern lässt. Führe ein klassisches Refactoring dieser Stelle durch (ggf. Tests schreiben, verbessern, …). Was auf den ersten Blick nach Chaos klingt, hat sich für mich als effektiver Weg erwiesen, die Code-Qualität kontinuierlich zu verbessern. Nebenbei bemerkt kann man sich auch beim zufälligen Auswählen helfen lassen, z. B. mit der “Inspect Code”-Funktion im IntelliJ-Menü “Code”. ...

Dezember 13, 2024 · 4 Minuten · 739 Wörter · Florian Sperber
Pitest Mutation Testing Ergebnisse in der IDE

Mutation Testing mit pitest - Wie gut sind unsere Tests wirklich?

Als Entwicklungsleiter stelle ich mir häufig die Frage: Wie gut testen wir eigentlich wirklich? Eine hohe Code-Coverage ist zwar schön, sagt aber wenig darüber aus, ob unsere Tests tatsächlich alle wichtigen Testfälle abdecken. Hier kommt Mutation Testing ins Spiel. Die Idee dahinter ist einfach aber genial: Der Code wird automatisch an verschiedenen Stellen “mutiert” (verändert) und dann werden die Tests ausgeführt. Wenn die Tests diese Änderungen nicht erkennen, haben wir eine Lücke in unserer Testabdeckung gefunden. ...

November 29, 2024 · 2 Minuten · 354 Wörter · Florian Sperber
Klare und informative Fehlermeldungen in der Softwareentwicklung

Sprechende Fehler: Wie klare Fehlermeldungen Support und Entwicklung optimieren

In der Welt der Softwareentwicklung ist die Erzeugung einer Fehlermeldung oft ein nachgelagerter Gedanke, eine Art notwendiges Übel. Aber was, wenn wir diesen Ansatz umdrehen und Fehlermeldungen als integralen Bestandteil des Nutzererlebnisses betrachten? In diesem Beitrag möchte ich die vielfältigen Vorteile von gut durchdachten, klaren Fehlermeldungen beleuchten. Auslöser für diesen Artikel ist ein Fehler, der im Team aufgetreten ist und von der verwendeten Programmiersprache (Openedge Progress) bzw. von unserem aufrufendem Code zurückgeliefert wurde. ...

Januar 9, 2024 · 4 Minuten · 750 Wörter · Florian Sperber
Zwei Entwickler beim Pair Programming am Bildschirm

Pair-Programming - Experiment

Gemeinsam stark: Unsere Reise ins Extreme Programming bei der SWE Zentrale Zwei Köpfe, ein Code – eine scheinbar einfache Idee, die unsere Art zu arbeiten völlig umkrempeln könnte. Das zumindest ist der Claim, den Kent Beck schon vor über 20 Jahren in seinem Buch Extreme Programming vorgestellt hat. Zwei Entwickler, Ein Arbeitsplatz: Zwei Programmierer teilen sich einen Computer, eine Tastatur und eine Maus. Rollenverteilung: Es gibt den “Driver”, der den Code schreibt, und den “Navigator”, der den Überblick behält, strategisch denkt und Vorschläge macht. Kontinuierliche Kommunikation: Ständiger Austausch von Ideen, Lösungsansätzen und Feedback zwischen den beiden Entwicklern. Qualitätsverbesserung: Das gemeinsame Arbeiten führt zu höherer Codequalität durch sofortiges Peer-Review. Wissensaustausch: Förderung des Wissenstransfers und des gegenseitigen Lernens innerhalb des Teams. Problemprävention: Frühzeitiges Erkennen und Lösen von Problemen durch die gemeinsame Betrachtung des Codes. Flexibilität in der Rollenverteilung: Wechsel zwischen Driver und Navigator, um einseitige Arbeitsbelastungen zu vermeiden. Einsatz für komplexere Aufgaben: Besonders geeignet für schwierige oder kritische Programmieraufgaben. Soziale Komponente: Förderung der Teamdynamik und Verbesserung der Kommunikationsfähigkeiten. Anpassungsfähigkeit: Pair Programming ist flexibel und kann an die spezifischen Bedürfnisse des Teams und des Projekts angepasst werden. ...

Januar 8, 2024 · 3 Minuten · 454 Wörter · Florian Sperber