---
title: "Die Mikado-Methode: Wie du komplexe Refactorings meisterst, ohne den Verstand zu verlieren"
description: "Eine kleine Änderung führt zu drei neuen Fehlern, und nach vier Stunden kompiliert nichts mehr. Die Mikado-Methode macht aus so einem Refactoring viele kleine Schritte, bei denen das System immer lauffähig bleibt."
canonical_url: "https://pek.dev/blog/mikado-methode-legacy-refactoring"
---

# Die Mikado-Methode: Wie du komplexe Refactorings meisterst, ohne den Verstand zu verlieren

Kennst du das "Kaninchenbau-Syndrom"? Du fängst an, eine kleine Änderung an einem alten Legacy-System vorzunehmen. Vielleicht willst du nur eine Bibliothek aktualisieren oder eine Klasse extrahieren. Plötzlich taucht ein Fehler auf. Du fixt ihn. Drei neue Fehler tauchen auf. Du fixt diese.

Vier Stunden später hast du 50 geänderte Dateien, das Projekt kompiliert nicht mehr, die Tests sind rot, und du hast völlig den Faden verloren. Am Ende bleibt nur eins: `git reset --hard` und Frust.

Als Softwareentwickler, der sich auf **Legacy-Modernisierung** und **Code Health** spezialisiert hat, kenne ich dieses Szenario gut. Die Lösung dafür ist nicht "besser coden" oder "mehr Kaffee", sondern ein strukturierter Prozess: die Mikado-Methode.

## Was ist die Mikado-Methode?

Benannt nach dem bekannten Geschicklichkeitsspiel, bei dem man Stäbchen einzeln entfernen muss, ohne den restlichen Stapel zu bewegen, bietet diese Methode eine Strategie, um komplexe Abhängigkeiten in Software aufzulösen.

Der Kern der Methode ist radikal: Wenn ein Schritt das System bricht, machen wir ihn sofort rückgängig.

### Der Prozess in 4 Schritten

1. **Setz dir ein Ziel (The Goal)**<br />

Schreib auf ein Blatt Papier oder ein Whiteboard, was du erreichen willst.
  - Beispiel: "`User-Modul` von MySQL auf PostgreSQL umstellen".
2. **Der naive Versuch (Experiment)**<br />

Versuch, das Ziel im Code umzusetzen.
  - Ergebnis: Der Compiler meckert, oder Tests schlagen fehl. Wir stellen fest: "Die Klasse `OrderService` hat eine harte Abhängigkeit zur `UserMySQLRepository`".
3. **Visualisieren & Revert (Der wichtigste Schritt!)**<br />

Zeichne diese Abhängigkeit in deinen Graphen (den Mikado-Graphen). Das Blatt (die Abhängigkeit) wird zur Voraussetzung für das Ziel.<br />

Und jetzt kommt der harte Teil: **Mach alle Code-Änderungen rückgängig (Revert)**.
Ja, wirklich. Geh zurück zu einem sauberen, funktionierenden System (Green State).
4. **Die Blätter lösen**<br />

Wähle nun die gefundene Abhängigkeit ("OrderService entkoppeln") als neues Ziel. Wiederhole den Prozess.
So arbeitest du dich von den "Blättern" (einfache Aufgaben ohne Abhängigkeiten) bis zum Kern (das große Ziel) vor.

## Warum das für dein Business wichtig ist

Vielleicht fragst du dich als CTO oder Team-Lead: "Warum sollten wir Zeit mit Zeichnen von Graphen verschwenden? Wir wollen Code schreiben!"

Hier ist der Grund:

1. **Das System ist immer lauffähig (Deployable):** Da wir bei Fehlern sofort zurückrollen, haben wir nie tagelang einen "Broken Build". Du kannst jederzeit einen Hotfix für die Produktion einspielen.
2. **Planbarkeit statt Blindflug:** Der Mikado-Graph macht unsichtbare technische Schulden sichtbar. Du weißt genau, wie viel Arbeit noch vor dir liegt.
3. **Fokus:** Entwickler lösen immer nur ein Problem zur Zeit, statt zehn Bälle gleichzeitig in der Luft zu halten.

## Fazit: Chaos strukturiert auflösen

Legacy-Systeme zu modernisieren ist oft wie Mikado spielen mit verbundenen Augen. Die Mikado-Methode nimmt uns die Augenbinde ab. Sie verwandelt eine überwältigende Aufgabe in viele kleine, machbare Schritte.

Wenn du vor einem großen Refactoring stehst oder das Gefühl hast, dein Team versinkt im "Spaghetti-Code", probier es aus. Ein Blatt Papier und ein Stift sind oft die besten Debugging-Tools.

**Steckst du in einem Legacy-Projekt fest und weißt nicht, wo du anfangen sollst?**
Lass uns gemeinsam deinen "Mikado-Graphen" erstellen. In meinem Code Health Audit analysieren wir eure Architektur und entwickeln einen klaren Fahrplan aus der Legacy-Falle.

👉 [Herauslöse-Check buchen](https://app.bookaslot.de/public/4faazrcaixfp8w3/locations/iqacygtac8iy92q/services/82sfyiwg68wmk1q?employeeId=t0yolmqvytp4un8)

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
