Das Seeräuberprinzip

„AARRR“

Patchy the Pirate

Bei der Diskussion welche Methodik am besten geeignet ist, um die Softwarequalität von Legacy Software zu verbessern, wird häufig das Pfadfinder Prinzip hochgehalten. Die Vertreter dieser Methodik möchten die Software in kleinen Refactoring Schritten während der Implementierung neuer Features verbessern. Die Idee ist einfach und einleuchtend, denn wenn ich sowieso gerade zur Stelle bin, kann ich in der Umgebung auch gleich aufräumen.

Leider wird das Motto der Pfadfinder „Jeden Tag eine gute Tat“ in der Praxis dann etwas zu wörtlich genommen. Das Aufräumen im Sourcecode beschränkt sich allzu häufig auf das Entfernen einer nicht verwendeten Variablen, eines sinnlosen Kommentars oder einer Zeile toten Codes. Wie man sich leicht ausrechnen kann, ist die Verbesserungsgeschwindigkeit solcher Maßnahmen häufig bei Null, weil die Entwickler genauso viel Legacy Code produzieren, wie sie entfernen. Ein dynamisches Gleichgewicht stellt sich ein und keine Qualitätssteigerung ist messbar.

Obwohl ich als junger Entwickler auch als Pfadfinder begonnen habe, präferiere ich mittlerweile eine gänzlich andere Herangehensweise. Ich nenne sie das Seeräuberprinzip und dessen Motto lautet „Entern, Plündern, Versenken“. Die Arbeitsweise hier verlangt jedoch nach verlässlichen, automatisierten Tests oder einem guten QA Team.

Bei dem Seeräuberprinzip wird bei der Weiterentwicklung einer Legacy Komponente, Klasse oder Methode erst einmal der Status Quo geprüft (Entern). Entspricht dieser Status Quo nicht den Qualitätsvorgaben, dann wird dieser Source Code neu geschrieben und nur die grundlegenden Ideen übernommen (Plündern). Nachdem der neue Source Code geschrieben und getestet wurde, werden die alten Artefakte gelöscht (Versenken).

Der Nachteil des Seeräuberprinzips ist der erhöhte QA Aufwand durch die größeren Eingriffe in die Software. Aber wer mit Legacy Software zu kämpfen hat, hat generell hohe QA Aufwände. Die Vorteile des Seeräuberprinzips sind die Aneignung des Wissens über den Legacy Code und die deutlich messbare Qualitätsverbesserung.

Außerdem erhöht dieses Vorgehen die Motivation der Crew, denn wir wollen doch alle Piraten sein!

Schreibe einen Kommentar