To posłuchaj tego ;)
Kwiecień 2022
Od tej pory przez 8 miesięcy pracowałem w projekcie B, który miał być rzekomo super-hiper-zayepisty. Jak się okazało - to nie był nawet średni. Soft dla małej firmy, ale serwowany przez duża firmę, w teamie był tylko jeden backend (zw dalej master-dev), PM/tester , no i mnie dorzucili. Myślałem, spoko, może coś z tego wyjdzie, zależy jakie będzie tempo, wymagania itp itd. Jednocześnie była to już czerwona lampka, że jeden techniczny gościu trzyma w ryzach cały projekt. Ale skoro dorzucili i mnie - to myślałem sobie "pewnie master-dev) sam już nie wyrabia i potrzebna pomoc". Był jeszcze PM, który jednocześnie robił za testera manualnego... no cóż... mały klient, może jakoś się uda....
Stan zastany: 0 testów, zero wzorców (nie, nie mówię tu o tym, by na siłę pchać jakiekolwiek), ogólnie to śmietnik w kodzie.
Od samego początku stawiałem na jakość i powiedziałem że przy takim projekcie (związany był z "pieniążkami" :D) musimy mieć testy.
No to zacząłem pisać, a po 3 miesiącach info od klienta:
"No Panie... za te testy to tylko płacimy, a błędy w systemie jak były tak są".
Mój pracodawca stwierdził "Spoko, pisz te testy dalej, bo to ma sens, tylko nie będziemy tego komunikować otwarcie klientowi, bo on kodu i tak nie widzi"
Maj 2022
Mając już świadomość co w projekcie piszczy, sporządzam raport w którym punktuje wszystko aktualne i potencjalne problemy. M.in problemem jest wyliczanie cen, a dokładnie problem z zaokrągleniami. PM pod wrażeniem, management zdumiony, że przyszedł jakiś kolo i od razu sypie jak z rękawa potencjalnymi bugami [*1]
Czerwiec 2022
Sporo rzeczy w projekcie śmierdzi, więc chcę poznać genezę projektu. Okazuje się, że projekt został odziedziczony po jakiejś firmie krzak, dlaczego?
"Bo poprzednia firma, strasznie duzo bledow robila, musieli to dlugo naprawiac i ogolnie to duzo piniedzy chcieli"
Pytam zatem : jak wyglądało przekazanie projektu od strony technicznej?
No to tutaj wyebalo null pointer expcetiona dla managmentu - bo przekazanie projektu, to bylo tylko przekazanie repo na gicie. Zero analizy, zero dokumentacji. Po prostu firma przejela klienta i "zobaczymy co z tego wyjdzie"
Lipiec 2022
Klient zgłasza problem, o którego istnieniu informowałem w [*1] - o dziwo, klient przyznaje się, że problem istniał od samego początku, ale zawsze pracownicy firmy spędzali długie godziny na manualnym fixowaniu kwot, wiec zaplusowałem, bo była szansa na pozbycie się tego problemu.
Wrzesień 2022
Po 5 miesiącach:
- intensywnego refaktoru,
- wdrażaniu wzorców,
- automatyzacji pewnych procesów,
- napisaniu setek testów,
z dwuosobowego zespołu odchodzi master-dev .... a ja zostaję sam. Było ciężko, bo nie dość, że trzeba dowozić nowe ficzery, to trzeba naprawiać istniejące bugi.
Listopad 2022
Resztkami sił, przygotowuje dla PM/testera scenariusze testowe (mimo, że to nie moja rola), ale chcę zeby projekt hulał jak należy. Są to 4 strony A4 z rozpisanymi wariantami akcji, jakie należy podjąć, aby przetestować poprawne działanie systemu. Proszę PM'a/testera, aby dał mi pisemne potwierdzenie efektów jego testów, w szczególności, aby przedstawił wyniki tych testów dla poszczególnych scenariuszy.
Grudzień 2022
PM/Tester daje mi znać, że on przetestował wszystko po swojemu, bo zawsze tak testował i przeklikał kilka miejsc jego zdaniem "najbardziej newralgicznych" i że nie będzie tracił czasu na pisanie jakiegoś raportu.....
Przez te 8 miesięcy napisałem ponad 500 testów (unity i funkcjonalne). Pokrycie kodu w tym momencie to około 60%. Wtedy dowiaduje się, że wypadam z projektu, a na moje miejsce wraca ten pierwotny master-dev :P
No to przekazuje mu projekt, mówię co i jak, tłumaczę, żeby pisał testy, bo to ważne.
Styczeń 2023
Mija miesiąc (jest to końcówka stycznia). Z racji tego że nadal mam dostęp do repo, pomyślałem, że z ciekawości zobaczę co tam słychać.
Odpalam testy - około 30% na czerwono :)
Luty 2023
Dowiaduje się, że ten master-dev dostaje nowego pomagiera , a ja dostaje w gratisie prośbę, aby mu potlumaczyć jak działa projekt :), tlumacze mu, ze pierwsze co powinien zrobic to naprawic to co wywala testy, a jesli jakaś logika mocno się zmienila, to odpowiednio zmodyfikowac testy.
Lipiec 2023
Znowu z ciekawości sprawdzam repo.
45% testów na czerwono.
Pokrycie kodu spadło z 60% na około 20~25 %.
Ilość testów nie uległa zmianie, dwóch kolesi od stycznia nie napisało ani jednego testu, nie naprawili ani jednego, dorzucili tylko masę g**no-kodu.
Sierpień 2023
Tracę dostęp do repo, mój trud skończon :)
PS.1 Tak, ogólnie lubię się grzebać w legacy code
PS.2 Tak, nadal robię w tej samej firmie (w projekcie X)
PS.3 master-dev na czas tej nieobecności był w projekcie X, dlaczego wrocił do projektu B? Bo jak się dowiedziałem od ekipy X, gościu twierdził, że ten kod jest dla niego za trudny.
Kurtyna, oklaski....