Myślę, że powinieneś zacząć od zadania sobie pytania, które wydaje się być pominięte. W jaki sposób kod jest zły? I przez to naprawdę zadajesz sobie następujące pytania:
- Czy kod nie robi tego, co powinien?
- Czy kod powoduje problemy podczas konserwacji oprogramowania?
- Czy kod jest całkowicie samodzielny?
- Czy planujesz aktualizację lub wymianę kodu w dowolnym momencie w dającej się przewidzieć przyszłości?
- Czy istnieje uzasadnienie biznesowe, które możesz zrobić, aby zaktualizować kod, który Cię dotyczy?
Jeśli nauczyłem się przez te lata jednej rzeczy, nie możesz sobie pozwolić na drugie zgadnięcie po fakcie. Za każdym razem, gdy rozwiązujesz problem w kodzie, uczysz się czegoś i prawdopodobnie zobaczysz, jak twoje rozwiązanie - lub coś podobnego - mogło być lepszym rozwiązaniem problemu, który rozwiązałeś inaczej lata temu. To dobra rzecz, ponieważ pokazuje, że nauczyłeś się na podstawie swoich doświadczeń. Prawdziwe pytanie brzmi jednak, czy kod, który napisałeś wcześniej, prawdopodobnie stanie się problemem, który z czasem staje się trudniejszy do rozwiązania.
Naprawdę mówimy tutaj o tym, czy kod, który Ci przeszkadza, jest łatwy czy trudny w utrzymaniu, a także o tym, jak kosztowna będzie ta konserwacja w miarę upływu czasu. Zasadniczo jest to pytanie dotyczące Długu Technicznego i tego, czy warto spłacić ten dług przy użyciu niewielkiej konserwacji chirurgicznej, czy też dług jest na tyle mały, że można pozwolić mu na chwilę się przesunąć.
Są to pytania, które naprawdę musisz porównać z obecnym i przyszłym obciążeniem pracą, i powinny zostać szczegółowo omówione z kierownictwem i zespołem, aby lepiej zrozumieć, gdzie zainwestować zasoby i czy twój stary kod jest wart czas, który możesz poświęcić na to - jeśli w ogóle. Jeśli potrafisz zrobić dobry argument biznesowy do wprowadzenia zmiany, zrób to z całą pewnością, ale jeśli masz ochotę majstrować przy kodzie, ponieważ czujesz się zawstydzony sposobem, w jaki to napisałeś, sugeruję, że nie ma miejsce na osobistą dumę, jeśli chodzi o zachowanie starego kodu. To działa albo nie działa, albo jest łatwe w utrzymaniu, albo kosztowne w utrzymaniu, i nigdy nie jest dobre ani złe po prostu dlatego, że dzisiejsze doświadczenie nie było dla ciebie dostępne wczoraj.