W firmie, dla której pracuję, wnioski o zmianę przechodzą przez różne etapy, w tym etap rozwoju, etap wzajemnej weryfikacji i etap testowania. W przypadku tej konkretnej prośby o zmianę zostałem przydzielony jako programista, a współpracownik - programista - jako recenzent.
Ten kolega jest tym, który początkowo mnie szkolił. W firmie pracuje od ponad 10 lat, a ja dołączyłem rok temu, tuż po studiach. Ma więcej lat doświadczenia jako programista niż ja. Mimo to nadal jest moim rówieśnikiem, ponieważ obaj jesteśmy programistami „średniego poziomu” (już nie młodszymi, ale nie starszymi).
Ta konkretna prośba o zmianę obejmuje starą, skomplikowaną funkcję. Jest źle napisany zgodnie z jakimkolwiek standardem kodu, ale działa. Kilka godzin zajęło mi znalezienie tego, co muszę zmienić. Klient chciał inną kolejność wyceny w celu określenia początkowej wartości pola (np. Sprawdź adres klienta przed debtor.adres zamiast na odwrót).
Mój kolega zauważył, że trwało to długo i spojrzał przy kodzie źródłowym ze mną. Wskazał jakiś kod i powiedział: „Musisz to usunąć”. Miałem co do tego wątpliwości, ale i tak spróbowałem. Jednak wypróbowanie go uświadomiło mi, na czym polega problem. W końcu musiałem zamienić dwa stwierdzenia.
Udokumentowałem zmianę, przetestowałem ją i zadziałała zgodnie z przeznaczeniem. Przesłałem prośbę o zmianę do mojego przełożonego, który sprawdził, czy działa i przekazałem go do recenzenta. Otrzymałem go z powrotem kilka minut później z komentarzami „to nie zadziała, zmieniłeś zły kod” i „nie zrobiłeś tego, co powiedziałem”.
Powiedziałem, że wypróbowałem to, co on powiedział, ale to nie zadziałało. Kod, do którego się odnosił, nie miał związku z żądaniem zmiany, z wyjątkiem tego, że robili coś z tym samym polem. Odpowiedział, że to, co powiedział, było tylko wskazówką, ponieważ muszę być w stanie samodzielnie wymyślić pewne rzeczy.
Teraz odmawia przekazania prośby o zmianę testerom, dopóki nie naprawię swojego błędu. Poprosiłem go o więcej szczegółów, a on ciągle powtarza, że muszę sam to rozgryźć, bo muszę się nauczyć. Według niego muszę zacząć od usunięcia kodu, o którym wspomina. Ponieważ kod ten nie ma nic wspólnego z żądaniem zmiany, o którym mowa, jestem bardzo niechętny. Poprosiłem naszego menadżera, który powiedział, żebym przedstawił mój argument recenzentowi, ponieważ menedżer nie wie o programowaniu. Próbowałem, ale recenzent jest nieugięty w swoim punkcie i zwalnia mnie, mówiąc „po prostu rób to, co powiedziałem”.
Częściowo ze względu na wiek tego kodu nie ma testów jednostkowych i nie można ich napisać dla nich bez przepisywania połowy kodu.
Jak naprawić tę sytuację?