Dziennik zdarzeń w IT

Jak ugryźć temat monitorowania czasu pracy programistów?

08 października, 2021
monitoring czasu pracy programisty

Nie da się ukryć, że praca programisty(-tki) jest pracą kreatywną, wymagającą dużego skupienia oraz częstego przełączania się pomiędzy różnymi kontekstami. Nieodłącznym aspektem jest również estymacja zadań, która czasami z rozmaitych przyczyn rozmija się z rzeczywistością. Monitorowanie czasu pracy może nam wskazać takie przypadki. W końcu warto wiedzieć, na co spalane są kosztowne godziny prac deweloperskich. Należy jednak zastanowić się, po co dokładnie są timesheety, czego tak naprawdę są miarą, a dodatkowo odpowiedzieć na pytanie, jak powinien wyglądać sam proces ich wypełniania, żeby deweloperzy nie czuli się tym sfrustrowani.

Cofnijmy się w czasie

Jedna z pierwszych maszyn dedykowanych do logowania czasu pracy została skonstruowana w 1888 roku w Nowym Jorku przez Willarda Le Grand Bundy’ego. Był to początek nowej ery, której echo słyszymy do dziś. Korporacja Bundy Manufacturing stanowiła jedną z czterech firm składowych Computing-Tabulating-Recording Company, która rozszerzyła swoją działalność i w 1924 roku zmieniła nazwę na IBM.

Z kolei inny XIX-wieczny amerykański wynalazca Charles Babbage, projektant maszyny analitycznej, w swoich zapiskach porównywał działanie fabryk do działania zmechanizowanych systemów komputacyjnych. W takim systemie według Babbage’a każda podjednostka ma konkretne zadanie, a dzięki monitorowaniu działania pracowników możliwe jest podniesienie wydajności i jakości całego systemu.

Ze względu na historię nadzoru pracowników wielu osobom logowanie czasu pracy może się kojarzyć ze ścisłą kontrolą i powodować awersję do tego typu systemów. 

Po co monitorować czas programistów(-stek)?

Wróćmy do zdigitalizowanej ery, opartej na wielu skomplikowanych systemach informatycznych. Dla firm pracujących na zasadzie body leasingu bądź w oparciu o kontrakty w rozliczeniach godzinowych monitorowanie czasu pracy programistów i programistek jest rzeczą niezwykle istotną. Często właśnie na podstawie logów czasowych powstają rozliczenia z kontrahentami. Organizacje pracujące nad własnymi produktami, chcąc trzymać w ryzach budżet, także stosują różne systemy śledzenia spalonych man-daysów. Zatem po pierwsze trzeba się jakoś rozliczać, ale czy coś jeszcze?

Aby zmienić nastawienie do kwestii monitorowania czasu, na początku należy jasno określić, że ma ono służyć jako pomocny wskaźnik, a nie jako bat. Przypuśćmy, że jakieś zadanie zabiera więcej czasu niż deweloperzy początkowo estymowali. Jest to dobry moment na zastanowienie się, co można poprawić, aby zarówno to konkretne zadanie, jak i kolejne były wykonywane efektywniej. Warto postawić na transparentność i klarowną komunikację, która odbywa się na bieżąco np. podczas codziennych standupów. Dzięki temu możemy kontrolować liczbę spalonych godzin oraz regularnie informować o nieprzewidzianych koniecznych pracach. Takim podejściem będziemy budować wzajemne zaufanie w zespole oraz unikniemy zakłamania timesheetów lub wykorzystywania ich w negatywny sposób.

Po trzecie, może to być również cenna informacja dla samych programistów(-stek). Pomaga to zestawić ze sobą początkową estymatę, która jest subiektywną miarą, z rzeczywistym czasem implementacji. Dzięki tej praktyce z doświadczeniem zwiększa się adekwatność wycen. Co więcej, w dobie popularnej pracy zdalnej możemy łatwiej rozdzielać pracę od życia prywatnego i śledzić ewentualne nadgodziny. 😉

Jest jednak jeszcze kilka szczegółów, o których organizacje powinny pamiętać, żeby logowanie czasu było sensowne i miarodajne.

Nie pracuję, bo loguję…

Pytanie, które powinno pojawić się w każdej organizacji stosującej monitorowanie czasu pracy, to: Jak to zrobić dobrze?”. Nie ma co ukrywać, programiści nie lubią całej otoczki z logowaniem czasu. Dlaczego tak się dzieje? Niestety często dochodzi do takich absurdów, że gdy proces ten nie jest zoptymalizowany, marnujemy czas na… samo logowanie czasu pracy. To przykre, ale można spotkać się z rozwiązaniami polegającymi na tym, że deweloper loguje czas w kilku systemach osobno, dla różnych projektów, a synchronizacja całości nie działa poprawnie. Jaki z tego efekt? Strata czasu, energii oraz sfrustrowany zespół deweloperów.

Proces ten powinien być prosty i szybki. Należy za wszelką cenę unikać dodatkowych kroków np. sumowania godzin z różnych systemów, sprawdzania, czy synchronizacja czasu jest poprawna, pisania zbyt obszernych opisów poszczególnych logów. Zminimalizowanie zbędnych czynności i uproszczenie procesu zdecydowanie pomoże poprawić nastawienie zespołu do procesu monitorowania czasu pracy. 

Monitorowanie czasu pracy a kreatywność

Źle zaimplementowany tracking czasu bywa niestety zabójczy dla kreatywności. Rozliczanie programistów(-stek) z ich pracy co do sekundy (a wierzcie mi, są takie przypadki) niestety generuje dużo stresu. Przy takim podejściu ciężko wejść w stan tzw. flow, kiedy zapominamy o całej otoczce i możemy skupić się wyłącznie na swoich obowiązkach. W tym przypadku dużo lepszym rozwiązaniem jest zaokrąglanie logów czasowych do interwałów np. 15-minutowych. Ciągle tykający w tle minutnik może powodować poczucie niepotrzebnej presji. 

Warto pamiętać, że koncepcyjna praca nie jest liniowa. Często skomplikowane problemy rozwiązywane przez programistów(-stki) potrzebują inkubacji albo świeżego spojrzenia na daną kwestię. Dodatkowo praca deweloperów to nie tylko samo kodowanie, to jeszcze wrzucanie zmian na odpowiednie środowiska, testowanie, udział w spotkaniach, komunikacja z innymi członkami zespołu. Z tych względów zmierzony czas nie zawsze odzwierciedla faktyczny czas potrzebny do rozwiązania problemu.

Trzeba też mieć na uwadze to, że pisanie większej linii kodu w krótszym czasie bądź odhaczanie większej ilości zadań w ciągu dnia nie zawsze idzie w parze z jakością. Lepiej zainwestować więcej czasu na analizę problemu, niż robić taski na wyścigi” i kilka razy poprawiać.

Przepis na efektywne monitorowanie czasu pracy

Warto pamiętać o jednej z dwunastu zasad podejścia zwinnego, czyli tworzenie projektów wokół zmotywowanych ludzi, zapewniając im potrzebne środowisko oraz wsparcie i zaufanie, że wykonują powierzone zadanie”.

Kluczem do sukcesu w kontekście monitorowania czasu pracy jest prosty i efektywny proces samego wypełniania timesheetów oraz pozytywne nastawienie zarówno deweloperów, jak i managerów. Dzięki temu logowanie czasu może faktycznie stać się pomocne w wypracowaniu cennych wniosków oraz zidentyfikowania obszarów, które wspólnymi siłami jako zespół można optymalizować. Dodatkowo dobrym pomysłem będzie częste prioretyzowanie zadań oraz implementacja dodatkowych metryk np. poprzez odpowiednie filtry w Jira, tj. ilość zadań starzejących się czy ilość zadań, które są pomiędzy statusem to do”, a kolumną done”.

A jak w Twojej organizacji wygląda monitorowanie czasu pracy? Jakie masz doświadczenia? Czy uważasz, że jest to potrzebna praktyka? Koniecznie daj nam znać w komentarzu pod tym postem!

Oceń artykuł
(0 / 5)
Subscribe
Powiadom o
guest
0 komentarzy
Informacje zwrotne w tekście
Wyświetl wszystkie komentarze
This site is registered on wpml.org as a development site.
123