Jak nie zarządzać zdalnym zespołem programistów?
Opublikowany: 2022-03-11Jako programista i właściciel małej firmy miałem spostrzeżenia z obu stron, pracowałem jako zdalny programista i zarządzałem zdalnymi programistami dla różnych projektów i różnych zespołów.
W tym poście podzielę się niektórymi moimi doświadczeniami w nadziei, że ułatwi to życie wszystkim stronom w zdalnych projektach. Jeśli chodzi o nakazy i zakazy zdalnego zarządzania zespołem, zwykle skupiam się na „nie” – ponieważ w przeciwieństwie do „zakazów” mają one zastosowanie do praktycznie każdego zespołu.
Wkraczając w świat zdalnych programistów, największą przeszkodą, jaką muszą pokonać menedżerowie, jest zmiana sposobu myślenia poprzez zaakceptowanie faktu, że programista nie będzie widoczny i gdzie mogą zarządzać wykonywaną pracą i śledzić ją. Ten nowy paradygmat wymaga od firm wdrożenia szeregu mechanizmów śledzenia postępów i unikania zbędnego obciążenia pracą. Takie mechanizmy pomogą zarówno menedżerowi, jak i deweloperowi być bardziej produktywni, co leży w najlepszym interesie wszystkich.
Żeby było jasne, wszystkie te mechanizmy nie powinny być wykorzystywane do kontroli lub mikrozarządzania pracownikiem.
Nie wierz w mity i nieporozumienia dotyczące zespołu zdalnego
Przyjrzyjmy się zaletom i wadom zarządzania zdalnymi zespołami w ramach jednego projektu, zaczynając od komunikacji.
Biznes stał się globalny, a pojawienie się ogromnych, międzynarodowych organizacji stworzyło nowe wyzwania dla milionów profesjonalistów na całym świecie. Złożony i spleciony charakter globalnych zespołów wymaga bardziej dokładnego i przemyślanego podejścia do komunikacji wewnętrznej.
W takich organizacjach i zespołach wiele osób nie ma luksusu pracy w znajomym otoczeniu lub mówienia w swoim ojczystym języku. Zespoły pracujące nad tym samym projektem mogą być oddzielone oceanami, a nie biurami i boksami. Członkowie zespołu pochodzą z różnych kultur i pracują na całym świecie.
Ci specjaliści nie powinni martwić się o komunikację, ale muszą być w stanie współpracować z członkami wielonarodowego zespołu. Wszystkie strony muszą być proaktywne. Kultura korporacyjna musi odzwierciedlać ten paradygmat i pomagać w rozwijaniu produktywnego środowiska, w którym zdalne, wielokulturowe zespoły mogą dobrze prosperować.
Nasz własny Scott Ritter obalił pięć głównych mitów o zdalnych zespołach w niedawnym poście na blogu, który może okazać się przydatny, jeśli interesuje Cię temat. Dyrektor generalny Toptal, Taso Du Val, omówił również sposób działania naszej sieci i sposób, w jaki dążymy do stworzenia najwyższej kultury pracy zespołowej na odległość.
Nie zapomnij o przyjęciu i zachęcaniu do różnorodności
Pierwszy krok w kierunku solidnej strategii komunikacji w zespole zdalnym zaczyna się od uznania, że wielokulturowe zespoły przekraczają granice narodowe i kulturowe, stawiając je w wyjątkowej pozycji umożliwiającej oferowanie spostrzeżeń trudnych do uzyskania w przypadku scentralizowanych, monolitycznych zespołów.
Ale nie martw się; różnorodność jest dobra dla biznesu!
Według badania przeprowadzonego przez The Economist Intelligence Unit , zespoły wielokulturowe są faworyzowane przez duże organizacje; wielu menedżerów uważa, że pomagają wspierać innowacje, ponieważ mają szerszą wiedzę na temat globalnych trendów. Co więcej, rzadziej cierpią z powodu mentalności „myślenia grupowego”; ich różnorodność pomaga im rozwiązywać problemy z różnych perspektyw, tworząc w ten sposób lepszą gamę rozwiązań dostosowanych do konkretnych regionów i rynków.
Można argumentować, że zarządzanie zdalnymi pracownikami może być bardziej produktywne, ponieważ nie znajduje się w tym samym miejscu. Może to zabrzmieć sprzecznie z intuicją, ale takie zdalne zespoły po prostu spędzają mniej czasu na rozmowach, kontaktach towarzyskich i omawianiu błahych spraw.
Chociaż fizyczna separacja może prowadzić do większej produktywności, może również powodować nieporozumienia, napięcie, wyobcowanie oraz większy stres i niepokój. W związku z tym konieczne staje się złagodzenie tych negatywnych skutków ubocznych za pomocą inicjatyw, które wspierają pozytywne nastawienie i współpracę na poziomie osobistym. Poprawa komunikacji w zdalnych zespołach może być trudnym zadaniem, a budowanie osobistych więzi między członkami zespołu bywa trudnym zadaniem. Dlatego niezbędny jest ludzki dotyk.
Znalezienie czegoś, co może poprawić zaangażowanie, niezależnie od pochodzenia, jest stosunkowo prostym sposobem na podniesienie morale i współpracy. Ten wysiłek może przybierać różne formy, w zależności od wielkości i składu zespołów. Najlepiej byłoby, gdyby skupiało się na bezstresowej, relaksującej aktywności, która spodoba się członkom zespołu, począwszy od konkursów związanych z pracą, projektów rozrywkowych lub dyskusji, które nie są związane z pracą.
Uczestnictwo w takich działaniach kosztem organizacji może wydawać się mniej niż idealnym przydziałem zasobów finansowych i ludzkich, ale pamiętaj, że skupianie zespołów wokół wspólnej sprawy zwykle prowadzi do lepszego środowiska pracy, silniejszych więzi osobistych i większej produktywności .
Nie lekceważ rekrutacji i szkolenia
Aby w pełni wykorzystać zarządzanie zdalnymi zespołami, musisz pamiętać o różnicach kulturowych i zrekompensować to odpowiednim szkoleniem.
Poprawa umiejętności językowych to tylko jeden element układanki, ponieważ różnice kulturowe mają wpływ na umiejętności komunikacyjne. Zaczyna się od dobrej polityki rekrutacyjnej, która faworyzuje osoby, zwłaszcza te, które będą zajmować stanowiska kierownicze, przygotowane do pracy w środowiskach międzynarodowych. Doświadczenie w zdalnych projektach oczywiście się przydaje, ale nie powinno być warunkiem wstępnym. To, że zdalny programista nie będzie w Twoim biurze co tydzień, nie oznacza, że rekrutacja nie powinna uwzględniać cech osobistych. Ty i Twój zespół nadal będziecie musieli regularnie komunikować się ze zdalnymi programistami, więc zadawaj im te same pytania, które zadajesz każdemu pracownikowi na miejscu – zdalnie czy nie, nadal muszą się dopasować.
Chociaż możliwe jest rozwiązanie niektórych problemów za pomocą dodatkowego szkolenia, nie zawsze jest to praktyczne, ale w każdym razie dobre szkolenie jest kolejnym logicznym krokiem. Szkolenie powinno rozwijać istniejące pozytywne cechy, jednocześnie łagodząc niedociągnięcia i zajmując się wcześniej zidentyfikowanymi słabymi punktami.
Menedżerowie mający do czynienia ze zdalnymi zespołami rutynowo muszą w krótkim czasie przyjmować nowe role, przejmować projekty, z którymi niekoniecznie są zaznajomieni, i spędzać dużo czasu na nadrabianiu zaległości. W takich sytuacjach komunikacja wewnętrzna nie zajmuje wysokiego miejsca na liście priorytetów, mimo że mogą teraz kierować zespołami, które spędziły lata współpracując nad jednym lub kilkoma projektami. Czas jest cennym zasobem, podobnie jak dobra praca zespołowa; menedżerowie muszą poświęcić trochę czasu na napięte harmonogramy i dowiedzieć się więcej o swoich zespołach, poszczególnych członkach zespołu i problemach, które mogą się pojawić.
Emocjonalny dystans między zdalnymi menedżerami a ich podwładnymi również może stanowić problem, ponieważ członkowie zespołu mogą niechętnie konfrontować się z nowymi liderami zespołu, a nawet zwracać się do nich w formalnych lub nieformalnych sytuacjach. Dobry menedżer pracowników zdalnych musi to rozpoznać i nalegać na bardziej osobiste zaangażowanie – jak powiedziałem: „Bądź proaktywny”. – jaki jest sens posiadania zespołu utalentowanych zdalnych programistów, jeśli nie dzielą się z Tobą swoimi przemyśleniami?
Nie używaj skomplikowanego systemu informacyjnego
Nie przegap szansy na wdrożenie skutecznego systemu informacyjnego, który obejmuje system zarządzania kodem źródłowym (SCM), narzędzie do śledzenia problemów (proszę niezbyt skomplikowane) i być może niektóre strony Wiki, na których wszystkie strony mogą dokumentować lub szkicować pomysły i propozycje. Wszystkie te narzędzia do współpracy znacznie ułatwią zarządzanie rozwojem i wydawaniem.
Ważne jest, aby wszystko było tak proste, jak to tylko możliwe, ponieważ ten system informacyjny będzie używany codziennie/co godzinę. Jeśli okaże się to zbyt skomplikowane, zajmie to trochę czasu, który należy poświęcić na wdrożenie i/lub projektowanie. Proces może również wymagać uproszczenia dla nowych członków zespołu i freelancerów, którzy nie mają czasu na poznanie tajników polityki organizacji.

Moją od dawna ulubioną aplikacją do zarządzania projektami jest Redmine, system typu open source, wieloplatformowy i międzybazowy. Ta platforma jest wysoce konfigurowalna i możesz zintegrować swój własny SCM, różne wtyczki i punkty serwisowe.
Jeśli nie chcesz mieć kłopotów z utrzymaniem własnego serwera z Ruby i konfigurowaniem wszystkiego samodzielnie (Redmine może być skomplikowany dla niedoświadczonych administratorów), innym dobrym wyborem jest GitHub, który zawiera nie tylko CMS git, ale także problemy z GitHub , który dobrze integruje się z Twoimi komunikatami o zatwierdzeniu, żądaniami ściągnięcia itp.
Po skonfigurowaniu i przygotowaniu naszego systemu informatycznego możemy rozpocząć integrację naszego zdalnego programisty z naszym projektem.
Nie zarządzaj mikro
Wielu menedżerów ma trudności z porzuceniem swoich obowiązków, zwłaszcza jeśli sami wywodzą się ze środowiska programistycznego. Zamiast skupiać się na komunikowaniu problemów i celów projektu, znajdują rozwiązania tych problemów i dostarczają szczegóły implementacji, więc jedyną pracą, jaka pozostaje programiście, jest kodowanie tego, co mu kazano kodować. Nie jest to dobra praktyka przy zarządzaniu pracownikami zdalnymi.
Z jednej strony menedżerowie tracą zbyt dużo czasu na rzeczy, do których wykonania wynajęli zdalnego programistę. Twórcy mogą być z tej sytuacji niezadowoleni, albo dlatego, że czują się niedoceniani i pozostawieni bez szansy na kreatywność i innowacyjność, albo po prostu, by się wykazać. W końcu rozwiązywanie problemów jest dokładnie tym, co programiści studiują od lat, więc usunięcie go z równania i przekształcenie programistów w automaty nie ma sensu!
Jak wszystko inne w życiu, chodzi o znalezienie odpowiedniej równowagi.
Nie martw się o strefy czasowe, wykorzystaj je na swoją korzyść
Dobrzy programiści zdalni są z natury samowystarczalni i niezależni; potrzebują wolności i odpowiedzialności, aby zorganizować swój czas. Nakładające się godziny pracy są przydatne, choć nie obowiązkowe, gdy masz dobry system informacyjny i dobrą komunikację z programistami.
Praca w różnych strefach czasowych może być korzystna dla firmy, ponieważ możesz osiągnąć wydajność „całą dobę”, gdy programiści w różnych strefach przejmą różne aspekty projektu. Jeśli twój programista wyprzedza twoją strefę czasową, daje to możliwość sprawdzenia jego pracy tego samego dnia i natychmiastowej oceny i koordynacji następnej wielkiej rzeczy. Z drugiej strony, jeśli wyprzedzasz swoją strefę deweloperską, daje to możliwość przygotowania wszystkiego, czego deweloper potrzebuje do wykonania zadania.
Pamiętaj, dobry menedżer to nic innego jak usługa dla swoich pracowników umożliwiająca im wykonanie pracy, a nie na odwrót!
Nie narzucaj codziennych celów, skup się na celach średnio- lub długoterminowych
Codzienne cele są formą mikrozarządzania projektem. Zamiast tego spróbuj przekazać programiście ogólny obraz i wspólnie ustal jasno określone priorytety. Jeśli sprawisz, że programista zrozumie projekt tak dobrze, jak Ty, prawdopodobnie będzie on bardziej przydatny.
Na przykład programista może mieć wgląd w najnowsze technologie lub szczegóły implementacji, które wpływają na ustalanie priorytetów różnych zadań lub określanie minimalnej wartości produktu (MVP). Oboje musicie zdefiniować jasne cele i kamienie milowe oraz wykonywać pracę krok po kroku. Twoim obowiązkiem jest upewnienie się, że wszystkie te kamienie milowe pasują do ogólnego obrazu.
Moim zdaniem manifest (metodologie) Agile to najlepsza rzecz, jaka wydarzyła się w zarządzaniu projektami w ciągu ostatnich kilku lat.
Umożliwia robienie dokładnie tego, co jest potrzebne, delegowanie odpowiedzialności na tych, którzy realizują rzeczy, i wymuszenie zdrowego rozsądku w każdej ze stron zaangażowanych w proces. Definiujesz średnio- i długoterminowe cele i zadania z pewnymi wysokopoziomowymi szacunkami poziomu trudności, a na tych cotygodniowych (lub dwutygodniowych) spotkaniach dotyczących planowania sprintów pozwalasz programiście określić dokładne obciążenie pracą i poziom trudności wykonania tych zadań.
Jak każda dobra rzecz, budowanie dobrych zespołów Agile wymaga czasu. Nie oczekuj, że będziesz mieć zespół roboczy w ciągu trzech miesięcy. Agile polega na uczeniu się przez działanie i wspólnym rozwijaniu się jako zespół.
Nie ukrywaj informacji o firmie
Cóż, ten jest trudny. Niektóre projekty są z natury wrażliwe, a wycieki informacji mogą być szkodliwe. Umowy o zachowaniu poufności (NDA) mogą rozwiązać ten problem, ale nie są kuloodporne.
Jednak im więcej programista wie, tym skuteczniej może być nie tylko w rozwiązywaniu predefiniowanych zadań, ale także w rozwiązywaniu w locie wszystkich tych irytujących drobnych problemów i czkawek. W końcu sprawi to, że programista będzie bardziej produktywny i ułatwi Ci życie.
Tutaj również przydaje się proces tworzenia Agile. Umożliwia dzielenie się wiedzą między stronami (interesariuszem, testerem, programistą itp.) poprzez usunięcie wszelkiej hierarchii i uznanie tych stron za równorzędnych członków zespołu, z tymi samymi obowiązkami, a tym samym zachęcanie ich do jak najbardziej przejrzystej pracy. Kolejną zaletą przejrzystości jest to, że problemy są szybko „eskalowane” i mogą zostać wykryte przez dowolną część zespołu.
Nie ignoruj zdalnych członków zespołu
Pamiętaj, że zarządzając zdalnymi pracownikami, jesteś usługą dla swojego zespołu, a jeśli zespół potrzebuje Twojego wkładu, nie powinieneś być zbyt zajęty, aby ich wspierać. Jeśli programista nie może rozwiązać czegoś sam, utknie i straci cenny czas.
Jako programista, zwykle, gdy wpadałem w ślepy zaułek, zwracałem się do mojego SO o radę, a ponadto starałem się również udzielać porad. Nie ignoruj rady dewelopera całkowicie, ponieważ może to być wnikliwe lub może rozwiązać problem, którego nawet nie byłeś świadomy.
Jeśli coś jest niejasne lub uważasz, że nie jest to konieczne, aby rozwiązać problem, argumentuj swoje stanowisko z otwartym umysłem i daj programiście szansę na przekonanie Cię, że mimo wszystko ma rację.
Ponownie, zbuduje to umiejętności komunikacyjne i poprawi zaufanie.
Szybkie porady dotyczące zdalnego zarządzania zespołem
Ponieważ już podsumowałem główne punkty w tweetach i ilustracjach, oto kilka szybkich wskazówek i przemyśleń.
- Te ogólne zasady można zastosować do programistów zdalnych i lokalnych.
- Jeśli będziesz mikrozarządzać, stracisz okazję do nauki i pozwolisz się uczyć.
- Bądź otwarty i godny zaufania, ponieważ to jedyny sposób na zbudowanie dobrego zespołu zdalnego.
- Pamiętaj, że oszacowanie to tylko oszacowanie; napotkasz pod- i zawyżone szacunki.
- Wszyscy, którzy pracują, popełniają błędy, a jeśli nie wybaczysz błędów innych, to twoje też nie zostaną wybaczone.
- Co najważniejsze, największą motywacją dla każdego dewelopera (oprócz satysfakcji z wykonania trudnego zadania) są pieniądze. Dlatego nie zwlekaj z płatnościami i rozważ również wprowadzenie zasad premiowych.