W zbiorze moich lekcji projektowych od dawna widnieje kategoria: „Jeżeli masz juniora w zespole”. Spisuję tam rozwiązania, których genezą były wpadki związane z delegowaniem zadań osobom początkującym.
Zasady, które tam zbieram, sprawdzają się też w delegowaniu jakichkolwiek zadań, każdemu. Są jednak niezbędne, gdy współpracujesz z początkującymi osobami.
W tym artykule pokażę Ci najważniejsze wpadki i ich rozwiązania.
Delegowanie zadań a klątwa wiedzy
Utrzymujemy rozwiązanie, które już działa na produkcji. Wpada nowa zmiana.
– „Przetestujesz czy to działa?”
– „Jasne, przetestuję” – potwierdza tester o krótkim stażu
Testy trwają. Junior tester regularnie potwierdza, że już niewiele zostało i będzie ok. W końcu zmiana jest gotowa do wdrożenia.
Przed wdrożeniem okazuje się, że to działa zupełnie inaczej, niż było opisane.
Tester zweryfikował głównie frontend i podstawowe operacje. Nie miał świadomości całej logiki pod spodem, którą też trzeba było zweryfikować. Trzeba w pośpiechu kończyć testy i fixować błędy.
Wniosek: To, że coś wiesz, nie oznacza, że inni też to wiedzą (klątwa wiedzy).
Prawie utopione UATy
Mamy zaplanowane formalne testy akceptacyjne z klientem (UAT). Scenariusze są opisane od kilku tygodni. Domykamy ostatnie funkcjonalności. Scenariusze testowe są przypisane do kilku osób. Każdy opiekuje się innym obszarem.
Na dzień przed rozpoczęciem testów z klientem wszyscy raportują gotowość w swoich obszarach. Ponieważ to ja będę na spotkaniu z klientem, to chcę się upewnić, że w pełni rozumiem jak wykonać każdy scenariusz.
Proszę więc każdą z osób o prezentację swojego obszaru. Jeden moduł doprowadza mnie prawie do zawału. Funkcjonalność nie działa zgodnie ze scenariuszem! UATy są mocno zagrożone. W ostatniej chwili wdrażamy poprawki.
Jednak się udało domknąć projekt. Uff…
Wniosek: To, że coś jest spisane, nie oznacza, że jest zrozumiane tak samo.
Spojrzenie biznesowe
Młody programista kończy kilka zadań, które mają być wgrane na produkcję. Przed przekazaniem do klienta rzucam jeszcze okiem czy wszystko jest ok.
– „Na tym ekranie to po naciśnięciu w przycisk X nic się nie dzieje.” – zgłaszam braki w implementacji
– „A to już nie moje zadanie” – poniekąd zgodnie z prawdą odpowiada junior
– „No ale Ty wypuszczasz tę funkcjonalność. Klient nie może dostać pół-gotowego produktu”
– „To co mam zrobić?”
– „Jak nie działa, to ukrywamy to na razie”
W tej implementacji zabrakło spojrzenia biznesowego, czyli z punktu widzenia klienta. Początkujący inżynierowie zwykle koncentrują się na technicznym aspekcie zadania. Jest konkretny task do zrobienia. Jak wszystko się zgadza, to git push i następne. Bywa, że pomijają przy tym etap wdrożenia, którego nie są często świadomi.
Wniosek: W delegowaniu zadań juniorom bardzo ważne jest wyjaśnienie, dlaczego coś jest do zrobienia. Kto będzie tego używał i jak.
Delegowanie zadań juniorom – wnioski i podsumowanie
Po tych i podobnych wydarzeniach nauczyłem się kilku rzeczy o delegowaniu zadań zwłaszcza początkującym osobom:
- Opisuję kroki powtarzalnych procesów. Nawet jeżeli na razie ich nikomu nie deleguję. Pomaga mi to oszczędzać czas, bo mam gotowy schemat działania. Łatwiej też mi oszacować czasochłonność i określić efekt na wyjściu. W każdej chwili mogę wtedy takie czynności oddelegować, bo mam spisaną procedurę. W notatniku mam obecnie takie listy na przykład dla:
- Przejmowania trwającego projektu.
- Organizowania warsztatów itd.
- Jeżeli przekazuję taką procedurę komuś do wykonania, to łączę to z indywidualnym wdrożeniem. Czyli:
- Wysyłam procedurę do przeczytania.
- Na spotkaniu 1:1 omawiamy przebieg krok po kroku i wyjaśniamy wątpliwości.
- Regularnie wyjaśniam, dlaczego coś jest do zrobienia i jakie będą konsekwencje niewykonania tego zadania.
- Organizuję cykliczne przeglądy efektów pracy. Nie chodzi o micromanagement, ale ustalenie co zostało zrobione. Dzięki temu możemy na bieżąco korygować ewentualne nieporozumienia.
- Biorę pełną odpowiedzialność za delegowanie zadań zwłaszcza juniorom. Jeżeli czegoś nie wiedzieli, to jest to wyłącznie zaniedbanie po mojej stronie.
Zobacz proces delegowania na przykładzie:
Zobacz też jak zarządzać zespołem zdalnym.
Nie rób tych rzeczy, jeżeli zespół pracuje zbyt wolno!