Die letzten Monate verbrachte ich damit, ein bestehendes System umzugestalten. Die Codebasis war gut, alle wichtigen Komponenten über klare Schnittstellen definiert und trotzdem war es schwierig Änderungen durchzuführen. Bestehende Funktionalität versagte ihren Dienst, ohne das Änderungen in den dafür zuständigen Codeteilen vorgenommen wurden. Hin und wieder beschlich mich das Gefühl, der Code wehrt sich gegen die Änderungen.
Die meisten Zwischenfälle konnten mittels Unit-Tests abgefangen werden. Schwieriger waren Probleme, die durch die Verwendung von Daten an unterschiedlichen Orten zustande kamen.
Eine unschätzbare Hilfe waren alle vorhandenen Tests. Für alle anderen Codeteile war das nachträgliche absichern eine echte Herausforderung. In Anbetracht der Tatsache, dass in Projekten ständig Änderungen durchgeführt werden, sollte sich jeder SW-Entwickler einen Gefallen tun und so viele Tests wie möglich erstellen. Meistens ist man selbst der nächste, der in seinem eigenen Code Änderungen durchführt.