10 einfache und effektive Refactoring-Maßnahmen

Refactoring ist die Durchführung von Verbesserungen an Struktur und Lesbarkeit des Quellcodes unserer Anwendung, ohne dass dabei am Ablauf des Programms etwas verändert wird. Doch wie sieht das eigentlich in der Praxis konkret aus und welche grundlegenden Refactoring-Techniken lassen sich bei der Übernahme von Legacy-Projekten einsetzen?

Ich werde in diesem Artikel zehn einfache aber äußerst effektive Maßnahmen für Refactorings vorstellen.

Weiterlesen

Wunsch vs. Wirklichkeit, Teil 2: Unstimmigkeiten im Team

Vor welchen Herausforderungen stehen Softwareteams in den unterschiedlichen Organisationen? Wie sehen diese Herausforderungen aus, die der regelmäßigen Lieferung und hohen Qualitätsstandards der Software im Weg zu stehen scheinen?

Im vorherigen Blogpost meiner 3-teiligen Blogpost-Serie habe ich den ersten Grund Fehlendes (Fach)Wissen innerhalb des Teams erläutert.

Neben dem Fachwissen braucht es aber noch eine weitere sehr wichtige Zutat, damit Softwareteams dauerhaft gute Ergebnisse liefern können.

Vielleicht erkennt der ein oder andere eine ähnliche Herausforderung innerhalb seiner Organisation wieder und bekommt durch die Lösungsansätze neue Impulse für sein Umfeld.

Weiterlesen

Wunsch vs. Wirklichkeit, Teil 1: (Fach)Wissen innerhalb des Teams

Eigentlich sollte dieser Artikel den Titel „Drei Gründe, warum Softwareteams es nicht schaffen, regelmäßige Lieferung und hohe Qualität einzuhalten, Teil 1: Fehlendes (Fach)Wissen innerhalb des Teams“ tragen … aber ihr seht selbst.

Es könnte so einfach sein, ist es aber nicht. Kennt ihr den Song noch? Das ist mir als Erstes in den Sinn gekommen, als ich über das zu Grunde liegende Thema des Blogposts nachgedacht habe. Denn wäre es so einfach und ein Softwareteam befähigt, alle Entscheidungen selbstständig treffen zu können, würde ich diesen Blogpost hier nicht schreiben. Aber ihr ahnt es schon: Das ist natürlich Wunschvorstellung.

In der Theorie ist z. B. das Scrum Framework als Liefermodell der richtige Ansatz, möchte man meinen. Vernünftig angewendet, gibt es am Ende eines jeden Sprints immer ein fertiges Inkrement, das qualitätsseitig keine Einbußen hinnehmen muss.

Also: Regelmäßige Lieferung … Check. Hohe Qualität … Check.

Weiterlesen

git auf APFS

Was mir neulich passierte … Danke an meine Kollegin Amina, die in die gleiche Falle getappt ist und mir einen dezenten Hinweis gegeben hat.

Folgende Situation: Du hast einen neuen Mac und hast ihn mit den Voreinstellungen und dem voreingestellten Dateisystem eingerichtet, um schnell loslegen zu können. Was könnte in den nächsten Monaten schief gehen?

Weiterlesen

Bad Leader: Was gute Führung ausmacht – ein Denkanstoß

Führung ist eines der am meisten diskutierten Themen bei Mayflower – selbstverständlich nach Tech-Themen aller Art. Es landet aber selten im Blog.

Deshalb wollte ich nach meinem Wake-up-Call zu Führung & Kultur einen Recap zum Thema Führung geben und euch einen Einblick bieten, was gute Führungskräfte eigentlich ausmacht.

Weiterlesen

Schülerpraktikum bei Mayflower

Jonathan ist ein computerbegeisteter Schüler am Dag-Hammarskjöld-Gymnasium in Würzburg und geht dort in die 10. Klasse. Er hat sich bei Mayflower für das Schülerpraktikum beworben – und das Ende April 2022 auch hinter sich gebracht.

Computer sind seit der Grundschule sein Lieblingshobby; er interessiert sich besonders für das Thema Künstliche Intelligenz. Zwar hat er damit in dem Projekt, in dem er zu Gast war, keine Berührungspunkte gehabt – aber er hat dennoch einiges mitnehmen können.

Weiterlesen

MacOS – Produktivität steigern mit einem Tiling Window Manager

Wer kennt es nicht: Als Software-Entwickler lerne ich ein neues Tool oder eine neue IDE kennen, die oder das mir das Leben vereinfachen kann und mir mehr Produktivität verspricht …

Der springende Punkt, um weniger Zeit an der Maus und mehr Zeit an der Tastatur und damit mit dem Programmieren zu verbringen, ist immer der selbe: lerne deine Tastaturkürzel. Wäre da nicht eine Kleinigkeit …

Weiterlesen

Reminder: Kultur & Mindset

Gemäß der Enzyklopädie der Software-Entwicklung besteht keine offizielle Definition für agile Software-Entwicklung[1].

Die agile Software-Entwicklung wurde von Entwicklern entworfen[2], weshalb sie im starken Kontrast zu traditionellen Vorgehen (Wasserfall, V-Modell) steht. Die agile Software-Entwicklung ist ein Überbegriff für eine Reihe von Frameworks und Praktiken, die auf den Werten und Prinzipien des Manifests für die agile Software-Entwicklung basieren. Dieses Manifest wurde im Jahr 2001 als Folge der Auseinandersetzung mit den bis dahin vorhandenen agilen Disziplinen erstellt und ist als Kulminationspunkt und nicht als Startpunkt zu verstehen[3]. 17 Vertreter der agilen Disziplinen haben sich auf grundlegende, gemeinsame Werte und Prinzipien verständigt.

Dieser Umstand zeigt deutlich, dass agile Software-Entwicklung Kultur- und Mindset-getrieben ist. Nochmal zum Buchstabieren: Es ist systemimmanent. (Systemimmanent bedeutet, dass etwas einem System innewohnt.)

Die Bedeutung von Kultur & Mindset werde ich nun darlegen.

Weiterlesen

(rb)² – Road Bike Route Bot auf Mastodon

Ein Erfahrungsbericht, weil ich …

  • mal wieder was mit Geodaten machen wollte (und mich OpenStreetMap schon eine ganze Weile immer wieder umtreibt)
  • schon länger darüber nachdenke, wie gut es wohl funktioniert, einen zufälligen Fahrrad-Routenvorschlag nach eigenem Gusto zu erzeugen
  • schon länger im Fediverse (Mastodon) bin und während des Alle-Verlassen-Twitter-Hypes einen Bot zu bauen nahe liegt

Also los geht’s. How hard can it be?

Weiterlesen