An sich ist es vorzuziehen, Code kontinuierlich sauber zu halten. Am besten folgt man dazu dem Muster:
- Prototype: Entwurf erstellen
- Test: Funktionalität testen
- Refactor: Code aufräumen
- Ship: Code in Produktionsumgebung ausliefern
Leider wird der dritte Punkt oft übersprungen – insbesondere dann, wenn einem Manager oder einer Managerin ohne Coding-Erfahrung die Entscheidung obliegt. Die Argumentation ist: Der Code funktioniert doch, also wozu weiterhin Arbeit darauf verwenden? Über einen längeren Zeitraum fängt der Code an zu stinken; technische Schulden sammeln sich an.
Wenn eine bestehende Codebasis Code Smells enthält, ist es nicht möglich, von vorne anzufangen. Dann gilt es, den Code aufzuräumen. Am besten geht man inkrementell vor und grenzt zunächst Bereiche innerhalb der Codebase ab, die sich relativ leicht bereinigen lassen. Man trennt die funktionierenden oder verbesserbaren Bestandteile von den „dunklen Ecken“, die man besser in Ruhe lässt.
Das Abgrenzen der weniger von den stärker stinkenden Code-Bereichen verringert die Komplexität. So wird es einfacher, Code zu testen und Debugging-Schritte vorzunehmen. Helfen können automatisierte Code-Review-Tools, die Code Smells aufspüren und Vorschläge bzw. Hilfen zum Bereinigen anbieten.
Effektiv zum Entfernen von Code-Smells sind Refactoring-Ansätze. Man kapselt Funktionalität in Funktionen bzw. spaltet bestehende Funktion auf. Das Entfernen nicht genutzter Code-Abschnitte und Verbessern der Namensgebung lichtet die Code-Basis. Dabei helfen die goldenen Regeln „Don’t Repeat Yourself“ (DRY) und „You ain’t gonna need it“ (YAGNI) als Richtlinien.