Utrzymanie starszej wersji buduje pragnienie programisty w zakresie dobrych praktyk
Chcę tylko dodać perspektywę głównego programisty, ponieważ jako programista zgadzam się, że nie chcę utrzymywać starego kodu, ale jako główny programista Nie radzę, aby jakikolwiek programista tego unikał.
Posłużę się praktycznym przykładem, aby przedstawić swoją argumentację. Jako konsultant często jestem wysyłany do firmy / projektu z problemami z jakością kodu, gdzie moim zadaniem jest naprawianie rzeczy. Jak można się domyślać, zły kod prowadzi do wielu prac konserwacyjnych w starszej wersji.
Z mojego doświadczenia wynika, że programiści piszący zły kod znajdują się w jednym z dwóch obozów:
- Ci, którzy nie wiedzieli nic lepszego
- Ci, którzy uważają, że postępują właściwie
Z pierwszą grupą łatwo sobie poradzić, ponieważ natychmiast się poprawią kiedy pokażesz im dobre praktyki. Tę ostatnią grupę znacznie trudniej jednak przekonać, ponieważ nie widzą korzyści płynących z dobrych praktyk, które często wymagają więcej wysiłku w krótkim okresie. Na dłuższą metę to się opłaca, ale ta druga grupa często nie docenia tego punktu.
Prawie każdy deweloper, z którym miałem do czynienia, a który był w tym drugim obozie, był programistą, któremu udało się przeskoczyć z projektu do projektu pomijanie utrzymania własnego kodu . Ponieważ nigdy nie mieli do czynienia z konsekwencjami swoich niedoskonałych decyzji projektowych, nigdy nie byli zachęcani do prób uniknięcia tych problemów przed ich wystąpieniem, gdy aplikacja była początkowo budowana.
Rozwiązanie jest proste: programiści muszą przejąć prawo własności . Jeśli napiszesz błędny kod, poradzisz sobie z wynikającymi z tego błędami. Jeśli nie chcesz spędzać czasu na naprawianiu błędów, to od Ciebie zależy, czy napiszesz kod, który ich nie generuje.
Stwarza to bardzo prostą zachętę dla programistów do doskonalenia się, a nie do tego ich woli i bez ich zrozumienia, dlaczego jest to lepsze podejście.
Chcę, żebyście od tego wzięli, że konserwacja starszej wersji jest niezbędna dla programistów, aby pamiętali, dlaczego potrzebują dobrych praktyk .
Analogicznie, generał, który jest w okopach z jego ludzie podejmą lepsze decyzje (dla żołnierzy) niż generał, który wygodnie siedzi w pałacu na drugim końcu kraju. Deweloper musi zabrudzić sobie ręce, aby kiedy był generałem (= budując nową aplikację), wiedział, jaki jest wpływ ich decyzji projektowych.
Sprzątanie po innych
Nie masz jednak do czynienia z własnymi błędami, ale raczej z tymi, które wystąpiły przed tobą. Obecnie jeżdżę na tej samej łodzi i zgadzam się z Tobą, że nie jest to dająca się oprzeć sytuacja.
Nikt nie lubi starszej konserwacji i wydaje się, że Twój kierownik nie wziął pod uwagę tego, w jaki sposób wykonujesz wyłącznie starszą konserwację wpływają na Twoje morale i rozwój Twojej kariery.
Spędziłem 3 lata zajmując się starszą konserwacją, ale była to wygodna praca z bardzo luźną polityką w domu. Zajęło mi trochę czasu, zanim zrozumiałem, że chociaż równowaga między życiem zawodowym a prywatnym nie była zła, moja kariera utknęła w martwym punkcie, ponieważ nie zdobywałem aktualnej wiedzy w branży. Gdybym został zwolniony z tej pracy po 5 latach, moje umiejętności byłyby tak przestarzałe dla innych firm, że musiałbym walczyć, aby nadrobić stracony czas.
Z drugiej strony ktoś musi wspierać ten projekt. Nie możesz więc po prostu przyjąć podejścia „nie ja”, ponieważ każdy programista będzie reklamować to samo podejście „nie ja”, a wtedy kierownictwo może po prostu wyznaczyć kogoś, kto wyciągnął krótką słomkę (może to być sposób, w jaki skończyłeś na początku tej pozycji).
Rozwiązanie problemu
Skontaktuj się ze swoim menedżerem i wyjaśnij mu, że chociaż rozumiesz, że stary projekt wymaga wsparcia, to szkodzi morale, gdy nie robisz nic oprócz starego kodu. Zapytaj, czy Twój kierownik rozważyłby przydzielenie Cię do innego (innego niż dotychczasowy) projektu w niepełnym wymiarze godzin.
Z mojego doświadczenia wynika, że większość rozsądnych menedżerów to zrozumie (prawdopodobnie zostałeś do tego przydzielony, ponieważ pozostałych 5 programistów, którzy opuścili wszystkich, spierało się o ten sam punkt) i dostrzeże korzyść z utrzymania Ciebie (kogoś, kto już wie starszego projektu) w projekcie w niepełnym wymiarze godzin, w przeciwieństwie do konieczności odejścia i znalezienia nowego programisty, który nie zna starego projektu.
Ale z mojego doświadczenia wynika, że są też firmy, w których morale pracowników jest znacznie niższe na liście priorytetów, gdzie stosują bardziej rygorystyczne podejście „rób to, co każemy”.
Jedyną radą, jaką mogę tu dać, jest pozostawienie tak toksycznego środowiska. Nie pozwól swojej karierze zmarnować pracy, której nienawidzisz, dla firmy, która nie ceni Twojej satysfakcji z pracy (w rozsądnym stopniu).