Ludzie, produkty i technologia: przewodnik po zarządzaniu inżynierią dla początkujących
Opublikowany: 2022-03-11Jako inżynier oprogramowania Twoje obowiązki są zwykle bardzo jasno określone: zadania są Ci przydzielone, a Twoim zadaniem jest ich terminowa i skuteczna realizacja.
Jednak w roli kierownika ds. inżynierii obowiązki często nie są tak jasno określone. Zarządzanie nie jest binarne; nie ma jednoznacznych odpowiedzi na niektóre pytania i problemy. To, jak skutecznie odniesiesz sukces jako menedżer, będzie zależeć od tego, jak dobrze będziesz w stanie kierować swoimi ludźmi, zarządzać produktem i administrować swoimi technologiami.
Ludzie są Twoim priorytetem
W roli kierownika ds. inżynierii Twoim nowym priorytetem jest Twój zespół. Jak więc zapewnić sobie świetny zespół?
Budowanie zespołu i budowanie zaufania
Pierwszym krokiem jest upewnienie się, że zatrudniasz odpowiednich ludzi do swojego zespołu, jeśli jeszcze nie masz zespołu.
Złe zatrudnienie nie tylko zmarnuje ich czas, ale także zmarnuje czas innych członków Twojego zespołu, którzy będą musieli nadrobić luz. To zdemoralizuje resztę twojego zespołu. Nawet jeśli dana osoba jest genialnym programistą, nadal może być kiepskim zatrudnieniem, jeśli nie pasuje do kultury zespołu.
Upewnij się, że zadajesz nie tylko pytania techniczne, ale także pytania otwarte dotyczące pracy w zespole lub pełnienia roli lidera. Na przykład zapytaj kandydata:
- Aby opisać niedawny problem, który musieli rozwiązać
- Jak wdrożyli rozwiązanie
- Jakie alternatywne podejścia brali pod uwagę
- Aby opowiedzieć o czasie, gdy mieli krytyczny problem w produkcji, jak na niego zareagowali i co zrobili, aby zapobiec temu samemu typowi problemów w przyszłości
Kiedy już masz zespół, poświęć czas na zdobycie szacunku swojego zespołu i zbudowanie zaufania. Aby skutecznie kierować zespołem, musisz nawiązać zdrową relację z członkami swojego zespołu. Poświęć trochę czasu na zrozumienie ich celów zawodowych i tego, co jest dla nich ważne.
Spotkanie jeden na jednego jest niezbędnym narzędziem do nawiązania więzi z każdym z członków zespołu i lepszego ich poznania. Jaka jest idealna częstotliwość spotkań jeden do jednego? Będzie to zależało od konkretnych potrzeb członków Twojego zespołu, ale dobrze jest spotykać się z nimi przynajmniej kilka razy w miesiącu.
Jeśli jednak Ty i Twój zespół ściśle ze sobą współpracujesz lub masz duży zespół, możesz przeprowadzać spotkania raz w miesiącu.
Jak menedżerowie ds. inżynierii wzmacniają i ulepszają zespoły
Duża część Twojej pracy polega na identyfikacji mocnych i słabych stron poszczególnych członków. Pomóż im rozwiązać ich słabości, łącząc ich ze starszym inżynierem i przeprowadzając częste przeglądy kodu oraz skupiając się na ich mocnych stronach. W końcu to nasze mocne strony nas motywują i kształtują to, co lubimy robić.
Przypisuj zadania w oparciu o umiejętności i cechy każdego inżyniera, aby wydobyć z każdej osoby to, co najlepsze i stworzyć wspaniały zespół. Automatyzacja może w tym zakresie zajść daleko. Ustaw ciągłą integrację, aby zidentyfikować uszkodzony lub nieoptymalny kod oraz osobę, która często wprowadza taki kod.
Członkowie Twojego zespołu będą stale dążyć do uczenia się, doskonalenia i rozwoju w obszarach, które są dla nich ważne lub dla zespołu. Role i obowiązki, które miały sens dla każdego członka zespołu w zeszłym roku, mogą już nie pasować w tym roku. Aby upewnić się, że każdy członek zespołu nadal czuje wyzwania i poprawia się:
- Zwracaj szczególną uwagę na ich rozwój osobisty, inwestuj w ich rozwój i pomagaj im w realizacji ich ambicji.
- Spotykaj się indywidualnie z członkami zespołu, aby tworzyć osobiste plany rozwoju i umożliwiać im mapowanie ich strategii kariery.
- Postaraj się przeznaczyć dodatkowy czas na samorozwój, pozwól członkom zespołu na okresową zmianę ról i zorganizuj wewnętrzne warsztaty lub szkolenia.
Oprócz zapewnienia każdemu profesjonalnego rozwoju, obowiązkiem kierownika ds. inżynierii jest ochrona ich zespołu. Powinieneś umożliwić swojemu zespołowi podejmowanie decyzji bez obawy o porażkę. Jeśli coś zawiedzie, weź odpowiedzialność i ucz się na błędach.
To wzmocni odwagę w Twoim zespole, gdy będzie próbował nowych podejść i rozwija nastawienie na rozwój. To powiedziawszy, błędy nie powinny się zdarzać więcej niż raz, jeśli przekazałeś odpowiednią informację zwrotną i podjęłeś na czas działania, aby poprowadzić swój zespół we właściwym kierunku.
Menedżerowie Produktu i Menedżerowie Inżynierii
Drugim ważnym aspektem roli kierownika inżynierii jest produkt. Będziesz musiał nawiązać bliską relację z menedżerem produktu, aby dostosować oczekiwania i wykorzystać technologię oraz umiejętności swojego zespołu, aby dostarczyć świetny produkt.
Oto sześć obowiązków kierownika ds. inżynierii, które powinieneś wykonywać:
Upewnij się, że projekt ma dobre priorytety
Jaki jest cel dla twojego zespołu od sześciu do dwunastu miesięcy? Kim są Twoi odbiorcy? Czego Twoi klienci oczekują od produktu? Twój zespół prawdopodobnie wie, nad czym będzie pracował przez najbliższe kilka tygodni, ale kluczowe jest zrozumienie całego produktu i kierunku, w którym zmierza.
Zaangażuj się w decyzje dotyczące rozwoju produktu
Jako kierownik ds. inżynierii będziesz pracować z różnymi zespołami i będziesz bardziej zaangażowany w kierowanie produktami i aktualizacje produktów niż jako indywidualny współpracownik. Niekoniecznie musisz zgadzać się z każdą decyzją dotyczącą produktu, ale musisz wierzyć w produkt i chcieć go ulepszyć. Możesz zakwestionować menedżera produktu, jeśli nie zgadzasz się z jego decyzją, ale pamiętaj, że menedżer produktu ma ostatnie słowo. Szanuj ich i wspieraj ich decyzje.

Zdefiniuj i kieruj strategią techniczną i metodologią rozwoju
Podczas gdy zadaniem menedżera produktu jest zdefiniowanie strategii i koncepcji produktu, twoją rolą jest zdefiniowanie wizji architektonicznej i projektu technicznego produktu. Jesteś również odpowiedzialny za zdefiniowanie metodologii rozwoju i zapewnienie jej przyjęcia przez zespół. Pamiętaj: Menedżer produktu może być właścicielem produktu, ale Ty i Twój zespół jesteście właścicielami wdrożenia produktu.
W niektórych przypadkach może być możliwe zaimplementowanie przydatnych funkcji przy niewielkim nakładzie pracy inżynierskiej. Na przykład sprawdź, czy aktualizacja do nowszej wersji platformy, której używa produkt, może pomóc w szybszym lub bardziej wydajnym zaimplementowaniu określonej funkcji. Dobry przegląd produktu może pomóc Tobie i Twojemu zespołowi zidentyfikować takie przypadki i zasugerować je menedżerowi produktu.
Saldo tworzenia i spłaty zadłużenia technicznego oraz rozwijanie nowych funkcji
Kiedy budujesz swój minimalny opłacalny produkt, czas do wprowadzenia na rynek jest najwyższym priorytetem, więc możesz zgromadzić trochę długu technicznego. Wraz z rozwojem produktu, nacisk kładzie się na dodawanie nowych funkcjonalności i ulepszanie produktu przy jednoczesnej spłacie zadłużenia technicznego. Bez uwzględniania dokonanych na początku kompromisów, dodanie nowych funkcji zajmie więcej czasu i będzie droższe. Poświęć trochę czasu na zrozumienie i śledzenie poczynionych kompromisów i znajdź równowagę między spłatą długu a dodaniem nowych funkcji.
Wykorzystaj technologię i automatyzację do zarządzania długiem technicznym**
Użyj analiz statycznych kodu źródłowego, aby zidentyfikować kod z największą liczbą indeksów konserwowalności i nadać priorytet refaktoryzacji kodu. W ten sposób łatwiej będzie pracować nad nowymi funkcjami, a wydajność produktu ulegnie poprawie.
Upewnij się, że wykonanie produktu jest na dobrej drodze
Powinieneś rozumieć aktualny stan pracy swojego zespołu. Jeśli Twój zespół jest opóźniony, zidentyfikuj widoczne bloki i usuń je. Na przykład, jeśli zespół regularnie utknie w kwestiach technicznych, zorganizuj częste sesje programowania w parach, aby usprawnić dzielenie się wiedzą członków zespołu. Jeśli zespół spędza dużo czasu na wdrażaniu kodu na serwerach, zautomatyzuj proces, aby zaoszczędzić czas i zmniejszyć podatność na błędy. Zminimalizuj przerwy i stwórz przejrzyste procesy dotyczące podejmowania nowej pracy i rozwiązywania problemów z raportami o błędach.
Technologia i delegacja
Nawet jeśli nadal jesteś inżynierem, jako menedżer, tworzenie oprogramowania nie jest już twoją podstawową funkcją. W swoim zespole masz starszych inżynierów, którzy odpowiadają za większość rozwiązań technicznych. Generałowie nie toczą wojen karabinami; menedżerowie nie powinni być zmuszeni do mikrozarządzania każdym wierszem kodu.
Należy jednak wykorzystać swoją wiedzę i doświadczenie, aby upewnić się, że decyzje podejmowane przez starszych inżynierów są zgodne z technicznym planem i kierunkiem produktu. Przekaż decyzje techniczne starszym inżynierom, ale zadawaj właściwe pytania, aby upewnić się, że produkt jest skalowalny, bezpieczny i niezawodny.
Na przykład zakwestionuj ich wybory pytaniem „A co, gdybyśmy mieli 20 razy więcej użytkowników? Czy to byłoby zrównoważone?” lub „Czy ta technologia będzie nadal wspierana za dwa, trzy lata?”
Możesz i powinieneś proponować alternatywne rozwiązania i frameworki w oparciu o Twoją wiedzę i obszary specjalizacji, ale nie zmuszaj ani nie naciskaj na swój zespół, aby je zaakceptował. Oprócz sugestii technologicznych możesz także zgłaszać rekomendacje związane z procesem rozwoju i metodologią.
Pamiętaj też o monitorowaniu kluczowych wskaźników produktu. Równie ważne są wskaźniki biznesowe i techniczne. Współpracuj z zespołem DevOps, aby tworzyć alarmy do monitorowania systemu i informuj swój zespół o problemach operacyjnych. Na koniec opracuj metodologię postępowania w przypadku wystąpienia incydentów, aby mieć pewność, że się nie powtórzą.
Wreszcie, bądź na bieżąco z najnowszymi technologiami i trendami. Im więcej masz wyborów i im więcej wiesz, tym więcej rozwiązań i frameworków będziesz mieć do swojej dyspozycji. Wyznacz trochę czasu na czytanie artykułów, przeglądanie kodu i udział w dyskusjach technicznych ze swoim zespołem.
Im więcej wiesz o sprawach technicznych, tym bardziej Twój zespół będzie Cię szanował. Znajomość nowych i pojawiających się technologii — oraz zachęcanie zespołu do tego samego — pomoże Ci stworzyć atmosferę ciekawości i zachęci Twój zespół do poszukiwania nowych i innowacyjnych sposobów rozwiązywania złożonych problemów technicznych.
