// wszystkie porady zostały zebrane w podsumowaniu cyklu.
Zarządzaj składem zespołu
Lider nie musi trwać w tym co zastanie lub w tym co zostało mu dane. Warto tutaj być proaktywnym i samemu sprawdzić jakich kompetencji w zespole brakuje. Lepiej jest szybko zareagować na brak osoby o danej kompetencji niż trwać w tym stanie powodując opóźnienia w dostarczaniu aplikacji.
Możemy np. mieć zespół profesjonalistów od tworzenia aplikacji po stronie serwera, ale całkowicie nieposiadających kompetencji w pisaniu front-endu. Zamiast popełniać błędy przy nauce nowych technologii łatwiej będzie wdrożyć do zespołu osobę obeznaną ze światem Javascriptu. Taka osoba będzie mogła uczyć pozostałych dobrych wzorców, przez co ilość problemów się zmniejszy.
Warto również patrzyć na zespół pod kątem osobowości - może się okazać, że zespół stworzony z samych “gwiazd”, nie będzie umiał działać jako team, ponieważ każda osoba będzie chciała zagarnąć całą uwagę dla siebie. Z drugiej strony zespół złożony z samych introwertyków może mieć problem w codziennej pracy z innymi osobami, z obroną własnego zdania czy postawieniem się z sytuacji konfliktowej. Właśnie dlatego, dobrze jest mieć w zespole różne osobowości, ponieważ pozwoli to wypełnić każdą niszę potrzebną by sukcesywnie prowadzić projekt do przodu. Warto przeczytać posta Pawła Klimczyka, który na swoim blogu w dość zabawny sposób opisał 7 rodzajów osobowości programistów.
Niestety, bycie liderem wiąże się także czasami z podejmowaniem decyzji o pomniejszeniu zespołu o osoby, które np. negatywnie wpływają na zespół bądź nie potrafią nawiązać efektywnej współpracy z resztą teamu. Generalnie musimy pamiętać o tym, że nie zawsze jesteśmy w stanie zbudować zespół na podstawie osób, które posiadamy.
Myśl o celach i kosztach
Jako lider jesteś odpowiedzialny za dostarczanie kolejnych wersji produktu i w większości przypadków nie będzie mógł być to software perfekcyjny. Wybór pomiędzy dwoma, niekoniecznie najlepszymi drogami, może być twoją codziennością. Z myślenia taktycznego przechodzimy w strategiczne – musimy się zastanowić nad długofalowymi rezultatami naszych wyborów i patrzeć szerzej na cały proces. Musimy analizować cele, jakie chcemy zrealizować, aby swoimi decyzjami się do nich zbliżać.
Jako developerzy wybieramy najnowsze technologie i narzędzia. Jako liderzy dobieramy te elementy tak, by wiedza w zespole była wystarczająca, by dostarczyć projekt. Proponowane rozwiązania mają spełniać oczekiwania klientów, a nie zaspokajać ego naszych kolegów. Z drugiej strony brak eksperymentów tworzy stagnację i powoduje, że ludzie odchodzą z zespołu. Niestety, tutaj nie ma prostych odpowiedzi.
Lider musi się zastanawiać nad kosztem własnych decyzji, oceniać czy lepiej jest podjąć większy wydatek jednostkowy, czy rozłożyć go w czasie. Możliwe, że zysk z naszej decyzji będzie widziany dopiero po pewnym czasie i trzeba się uzbroić w argumenty, by taką zmianę móc obronić przed osobami z zewnątrz.