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…
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…
Programmieren – aber defensiv
Dieser Artikel entstand aus einer Diskussion im Team zum Thema Null-Safety in der Programmierung. Dabei haben wir uns über die Bedeutung von defensiver Programmierung und die Vermeidung von Nullpointer-Exceptions ausgetauscht. Im Speziellen ging es um die Verwendung von String.isEmpty: Die Verwendung von StringUtils in diesem Beispiel würde verhindern, dass eine Nullpointer-Exception auftreten kann. Diese Vorgehensweise…
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…
Die Umsetzung der „Definition of Done“
Um bessere Qualität in der Entwicklung zu erreichen, gibt es ein Konzept, das sich „Definition of Done“ (DoD) nennt. Die Idee, dass das Team sich selbst Gedanken darüber macht, was alles nötig ist, damit eine Aufgabe (Story, …) wirklich erledigt ist, finde ich einen schönen Ansatz. Die Herausforderung sehe ich aber in der tatsächlichen Umsetzung….