Momencik, trwa przetwarzanie danych   loading-animation

#87489

przez (PW) ·
| Do ulubionych
Jestem programistą i jakieś sześć miesięcy temu zacząłem pracować w pewnym software housie. Dla niewtajemniczonych jest to firma, która na zlecenie kontrahentów tworzy różnego rodzaju oprogramowanie. Pierwszy miesiąc spędziłem z ekipą, która już praktycznie kończyła swój projekt i w tym czasie jedynie wdrażałem się i dowiadywałem jak ta firma w ogóle działa. Po tym okresie przydzielony zostałem do nowego projektu jako kierownik jednej z dwóch grup programistycznych. Nade mną stał tylko główny project manager.

Aplikacja z jaką przyszło mi się zmierzyć miała dwa moduły (stąd dwie grupy programistów), które w pewnych kwestiach komunikują się ze sobą. Natomiast estymowany czas zakończenia projektu to jakieś dwa - trzy lata.

Historia będzie dotyczyć zarządcy drugiej grupy, dla porządku niech będzie Maciuś. Na samym początku projektu nie miałem z nim zbyt wiele do czynienia. Ogólnie działamy na takich zasadach, że komunikujemy się ze sobą w dwóch przypadkach. Gdy przychodzi potrzeba komunikacji pomiędzy systemami, omawiamy wtedy jak będzie wyglądało API (tłumacząc na ludzkie sposób komunikowania się dwóch rożnych systemów między sobą). Oraz podczas comiesięcznych spotkań z głównym project managerem.

Po pierwszym spotkaniu nie miałbym Maciusiowi nic do zarzucenia. Ot facet po czterdziestce, taki trochę śmieszek, kucharz z zamiłowania. Na tym właśnie spotkaniu otrzymaliśmy od project managera wstępne założenia do naszych aplikacji. Niestety firma nie była w stanie wyłożyć od razu pełnych wymagań, więc byliśmy zmuszeni budować aplikację modularną (stąd też taka rozbieżność w estymacji czasu pracy nad całą aplikacją).

Pierwszy miesiąc prac nad projektem przeleciał dość spokojnie. Pierwsze dwa dni spędziliśmy nad ogarnianiem założeń i wybraniem odpowiedniego środowiska i strategii. Dalej ekipa zajęła się stawianiem środowiska a ja w tym czasie zgłębiałem założenia i spisywałem zadania do wykonania na kolejne 2 miesiące. Na początku drugiego tygodnia zaakceptowałem środowisko i zaczęliśmy pracę.

Dlaczego to opisuję? Ano dlatego, że na pierwszym comiesięcznym spotkaniu spotkaniu okazało się, że grupa Maciusia ma gotowe około 30% ze wstępnych założeń a moja niecałe 15%. Śmieszków od strony Maciusia nie było końca... "Łuki (imię zmienione) co wy tam robicie? Kawkę cały czas pijecie?", "Jak tak dalej pójdzie to moja ekipa pół projektu w chill roomie przesiedzi czekając na was.", "Oddam ci dwóch swoich, może wtedy będą równe szanse.". Już tutaj zapaliła mi się lampka ostrzegawcza. Znacie to, szybko ale ujowo, albo wolno i porządnie?

Po tym spotkaniu zostałem na rozmowie z project managerem. Ten kazał mi po prostu działać dalej. Ogólnie koleś konkretny, ale istny milczek.

Dalsze problemy nadeszły gdy pojawiła się pierwsza potrzeba zintegrowania dwóch systemów. Gdy wiedziałem w planach, że coś takiego będzie potrzebne, pisałem do Maciusia mail z tygodniowym wyprzedzeniem, że będziemy potrzebowali to, to i to. Zwykle odpowiedź dostawałem po kilku dniach i brzmiała ona zawsze tak samo: "Nie wyrobimy się, dajcie nam jeszcze X dni", Gdzie ostatecznie X zwykle okazywało się X + Y. Natomiast z jego strony wyglądało to tak: "Na jutro potrzebujemy to, to, to i to". Na odpowiedź, że nie ma szans zwykle dostawałem mail typu: "Łuki kurde wstrzymujecie nas...". I tutaj informacyjnie, przygotowanie takiego API, nawet ze sztucznymi danymi, gdy nie mamy danego modułu skończonego, to około dwa, trzy dni pracy.

Na drugim comiesięcznym spotkaniu Maciuś nie omieszkał naskarżyć, że stopuję ich pracę. Tutaj obyło się bez śmieszków, gdyż Maciuś nie był do końca świadomy, że PM widzi całą naszą korespondencję (nie wiem czy wspomniałem, ale Maciuś też jest nowym pracownikiem). Na tym spotkaniu zapadła decyzja o przeprowadzeniu tak zwanego code review, czyli sprawdzeniu kodu pod kątem poprawności i dobrych praktyk. W tym przypadku obie grupy miały sprawdzić swój kod nawzajem, ale nieoficjalnie dowiedziałem się, że sprawdzi go też dwóch niezwiązanych z projektem programistów. Na ten moment druga grupa wyprzedzała nas mając 80% gotowych założeń, gdy my mieliśmy 55%. Kolejne założenia miały dojść za dwa miesiące, czyli grupa Maciusia mogłaby spędzić ponad miesiąc na nic nierobieniu.

Kod drugiej ekipy do przeglądu mieliśmy dostać dwa tygodnie od w/w spotkania. W tym czasie dostawałem od PMa informacje o skargach na mnie od Maćka, które dementowałem jednym mailem. A Maciuś miotał się z lewa na prawo próbując udowodnić mi, że API, które wystawiła moja drużyna nie działa. Oczywiście nie był w stanie nic ugrać, bo kod działał tak jak opisał, że ma działać.

I nadszedł dzień gdy dostaliśmy kod Maciusia do przejrzenia. I tu nastaje trudny moment tej historii, gdyż muszę się postarać by wyjaśnić jaki dramat wtedy ujrzałem. Po pierwsze od czasu gdy dowiedzieliśmy się o code review moja grupa zdołała dotrzeć do 65% założeń a grupa Maćka stanęła na 80%. I to jest najbardziej piekielne, wiedział, że piszą totalne bagno i postarał się zredagować kod dopiero gdy nastało widmo jego sprawdzenia. Ale co dadzą dwa tygodnie poprawek do dwóch miesięcy pisania kodu? Ano dały jeszcze większe bagno... I na prawdę nie wiem jak wam to opisać. Kod wyglądał jakby kilkunastu malarzy z kilku odrębnych epok spotkało się i postanowiło namalować razem obraz. Istny miszmasz bez ładu i składu. Bez jakiejkolwiek szansy na rozbudowę. A przypominam, że kolejne założenia mieliśmy dopiero dostać.

W efekcie Maciuś został zwolniony. Ja na miesiąc zostałem kierownikiem dwóch grup, a teraz z nowym kierownikiem nowej grupy staramy się ogarnąć projekt tak aby go dostarczyć bez opóźnień. Niby mamy ponad dwa lata, ale druga aplikacja jest do wywalenia. Aktualnie staramy się ją zaprojektować od nowa.

Skomentuj (11) Pobierz ten tekst w formie obrazka
Ocena: 153 (159)

Komentarze

Momencik, trwa ładowanie komentarzy   ładowanie…