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: 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…
Kategorie: Development
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)…
Sprechende Fehler: Wie klare Fehlermeldungen Support und Entwicklung optimieren
In der Welt der Softwareentwicklung ist die Kreation 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…
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. Tatsächlich haben wir im Team schon oft…
Incus statt KVM
Mein alter „Keller“-Server, ein Intel-Nuc ist so langsam in die Jahre gekommen. Mit einer Intel(R) Core(TM) i5-7260U CPU @ 2.20GHz konnte ich immerhin 4 Kerne für meine Virtualisierungsexperimente verwenden. Bisher habe ich KVM verwendet und so inzwischen 11 VMs in Betrieb genommen. Und so langsam merkt man doch, dass die Leistung dafür nicht mehr ausreicht….
Cmd-E: Der Game-Changer in IntelliJ’s Keyboard-Shortcut-Arsenal
Als Entwickler in der Welt der Software sind wir ständig auf der Suche nach Wegen, unsere Effizienz zu steigern. Jede Sekunde, die wir sparen können, ist wertvoll – nicht nur für uns selbst, sondern auch für unsere Teams und Projekte. Heute möchte ich über eine kleine, aber mächtige Funktion in IntelliJ sprechen, die vielen vielleicht…
Fix It Now Or Delete It
Vor inzwischen mehr als 5 Jahren bin ich über ein Buch gestolpert, das ich inzwischen wieder vergessen hatte. Nach langer Zeit habe ich mal wieder meine leanpub Bibliothek durchstöbert. Und hier war es: https://leanpub.com/fixitnowordeleteit Vereinfacht beschreibt diese kurze Buch die Idee, Bugs entweder sofort zu löschen, oder sie zu löschen. In der Realität sieht es…
Caddy again
Für das Evang. Waldheim Esslingen, in dem ich lange Jahre ehrenamtlich aktiv war, betreibe ich die Website und dahinterliegende Webanwendung (siehe Projekte – Waldheim). Bisher sorgte der apache2 als Webserver und Reverse-Proxy für die Auslieferung der Seiten. Um etwas mehr Performance zu erreichen habe ich in diesem Fall die meisten statischen Inhalte aus der Webanwendung…
Wer hat hier „Unit Tests“ gesagt?
Vor längerer Zeit habe ich als Product Owner mit einem Entwickler-Team zusammengearbeitet. Das Team entwickelte mit Java + Vaadin eine Webanwendung. Als sich die Probleme und Bugs häuften und auch teilweise wiederholten, erkundigte ich mich, ob zu den aufgetretenen Bugs auch dazugehörige Unit-Tests beim Beheben erstellt worden seien. Für jeden Bug ein Unit-Test Das Prinzip,…
Post-Mortem in der Entwicklung
Ein Post-Mortem wird häufig im Projekt-Management eingesetzt, um zu analysieren, warum ein Projekt nicht erfolgreich abgeschlossen werden konnte. Im Bereich IT Operations habe ich das Konzept als RCA (Root Cause Analysis) kennengelernt. In der Software-Entwicklung habe ich dieses Konzept bisher noch nicht angetroffen. Auf Störungen im Betrieb wird meistens durch das Erstellen und Bearbeiten von…