Obecnie pracuję dla małej firmy, która ma niewiele skomplikowanych technicznie produktów. Jestem jedynym programistą dla jednego z nich. Około rok temu dostałem starszą wersję produktu i zacząłem go „wspierać”.
Klient mówi tylko o nowej funkcji, wartości biznesowej i innych tego typu. Problem polega na tym, że chociaż kod jest w języku C #, jest dość proceduralny. Nie ma żadnych abstrakcji, klasy są używane tylko tam, gdzie wymaga tego Visual Studio - na przykład formularze. Implementacje tych klas są naprawdę okropne, a kod naprawdę trudny do utrzymania.
Przez cały rok spędzam swój czas na refaktoryzacji. W najnowszej wersji są całkiem abstrakcje i takie tam. Musiałem ponownie wdrożyć wiele składników od zera i naprawdę czuję, że dodanie nowej funkcji lub zmiana zachowania tych elementów jest DUŻO łatwiejsze niż dla innych.
Problem polega na tym, że spędzam swój czas. Naprawdę lubię wyniki, ale nie lubię pracować 12 godzin dziennie. Czy byłeś kiedyś w podobnej sytuacji? Co powinienem spróbować Próbowałem już o tym dyskutować, ale nadal nie udało mi się.
Boję się tylko momentu, w którym zdecydujemy się wdrożyć nową funkcję, która wymaga wielu zmian w starszym kodzie. To może być szokujące dla klienta: dlaczego potrzebujesz 8 godzin na zmianę tych ikon? Klient po prostu nie dba o to, że w kodzie jest 500 miejsc, które muszę zmienić. I powinienem najpierw znaleźć te wszystkie 500 miejsc.
Jakieś pomysły?