Tech Lead - czy to ścieżka dla każdego? Na czym polega praca Lead'a?

Tech lead, jest to pierwszy krok w kierunku zarządzania. Jego zadaniem jest zarządzanie zespołem programistów. Jednak żeby być w stanie to robić, Tech Lead musi najpierw zdobyć wysoką wiedzę dot. technologii w której zespół pracuje, oraz musi być nadal na bierząco z nowinkami technologicznymi.

Tech Lead - czy to ścieżka dla każdego? Na czym polega praca Lead'a?

Jakiś czas temu stworzyłem materiał, w którym opowiadałem o tym, czy Senior, to już koniec ścieżki kariery w IT. Dziś postanowiłem opowiedzieć nieco więcej na temat jednej ze ścieżek, które zawarłem w tamtym wpisie. Dlatego dziś opowiem o tym czym zajmuje się Tech Lead.

Tech lead, jest to pierwszy krok w kierunku zarządzania. Jego zadaniem jest właśnie zarządzanie zespołem programistów. Jednak żeby być w stanie to robić, Tech Lead musi najpierw zdobyć wysoką wiedzę dot. technologii w której zespół pracuje, oraz musi być nadal na bierząco z nowinkami technologicznymi.

Jednym z najważniejszych zadań Tech Lead’a jest dbanie o najwyższą możliwą jakość projektu. Chodzi tu o to, że każdy lead powinien dbać o to, żeby rozwiązania dostarczane przez członków zespołu były akceptowalne pod kątem jakości (poprzez proces Code Review), oraz o pozbywanie się długu technologicznego. Oczywiście utrzymywanie jakości może być realizowane na różne sposoby - chociażby przez ustalanie z zespołem coraz to lepszych procesów wytwarzania kodu, używanie dodatkowych narzędzi typu narzędzia do statycznej analizy kodu.

Będąc przy narzędziach do statycznej analizy kodu, nie sposób wspomnieć o drugim, bardzo ważnym punkcie jeśli chodzi decyzyjność Tech Lead’a. W wielu zespołach Tech Lead’zi są odpowiedzialni za dobór narzędzi i bibliotek wykorzystywanych w projekcie. Chodzi tutaj o to, że jeśli trzeba zrealizować jakąś funkcjonalność i jest szansa, że można zaoszczędzić sporo czasu poprzez użycie zewnętrznej biblioteki, lub narzędzia, to tech lead powinien podejmować tego typu decyzje. Oczywiście dobry tech lead będzie brał również pod uwagę zdanie reszty zespołu, tak aby nie zachowywać się jak dyktator projektowy.

Kolejną odpowiedzialnością każdego Tech Lead’a jest ścisła współpraca z Product Ownerem lub Project Managerem. Współpraca ta polega na odpowiednim przygotowaniu zadań do wykonania w projekcie. Podczas przygotowywania takich zadań tech lead musi przeanalizować nową funkcjonalność pod kątem technicznym. Odpowiednio podzielić zadania na mniejsze części, tak aby było dokładnie wiadomo co należy zrobić. Ten etap jest bardzo ważny w kontekście przemyślenia tego, co należy dostarczyć, aby nie doprowadzić do sytuacji, w której nie jesteśmy w stanie dostarczyć nowej funkcjonalności, ze względu na to, że po drodze pojawiają się ciągle nowe rzeczy do dorobienia. Oczywiście bardzo dobrą praktyka jest angażowanie członków zespołu na tym etapie, aby mogli oni dać swoją perspektywę.

Oczywiście angażowanie członków zespołu łączy się z kolejną ważną odpowiedzialnością każdego Tech Lead’a. Chodzi tutaj o mentoring. Czyli przekazywanie wiedzy i dobrych praktyk mniej doświadczonym członkom zespołu. Poprzez angażowanie ich w codzienne aktywności zespołowe można dużo łatwiej i szybciej uczyć ludzi, a to bardzo ważna część pracy w zespole, bo najbardziej doświadczone osoby powinny chętnie dzielić się wiedzą.

Z racji, że Tech lead powinien znać projekt bardzo dobrze, a już napewno nadchodzące prace. Plus na podstawie codziennych efektów pracy poszczególnych członków zespołu, jest on w stanie sugerować, jakie kolejne prace mogą wykonywać poszczególni specjaliści w zespole. Dzięki temu, tech lead może wspierać rozwój członków zespołu

Ok, ale to wszystko brzmi jak zadania, które wymagają sporej ilości spotkań i prac koncepcyjnych, a czy tech lead jeszcze programuje? Bo przecież jak można prowadzić technicznie zespół robiąc tyle rzeczy nie będących związanymi z programowaniem? To powoduje, że się wypada z obiegu!

Odpowiedź jest prosta: TAK!

A rozwijając nieco myśl. Oczywiście tech lead powinien nadal programować. Jednak zadania nad którymi będzie się taka osoba skupiać nie powinny być najważniejszymi zadaniami w projekcie, ze względu na to, że jego codzienna dostępność do takich zadań jest ograniczona. Jednak trzeba przyznać, że inne aktywności w codziennej pracy Tech Lead’a są bardzo angażujące i to nie sprzyja codziennym pracom nad ważnymi lub wrażliwymi z punktu widzenia czasu dostarczenia rzeczami.

A więc idąc ze swoją karierą coraz dalej, może okazać się, że krok w stronę Tech Lead’a zabiera nam potencjalne sporo czasu, z ulubionego życia programisty. Ciągłe spotkania, praca Proof of Concept, analizowanie nowych funkcjonalności. Czasu na pisanie kodu zostaje mało. Często ludzie, którzy zaczynają taką ścieżkę po owocnej karierze full time developera, czują że coś stracili. Tak to jest po zmianie stanowiska i takie odczucie wtedy trzeba przekuć na inspirację nowymi zadaniami. Jednak nie ma się co łamać, to po prostu naturalny krok i nie każdy taki krok musi podejmować 🙂