Aby zostać liderem technicznym, niezbędne są następujące kwestie
Możliwość mentorowania członków personelu na każdym poziomie stażu pracy, od osoby, która nie była na studiach przez 3 miesiące, po osobę, która programuje od 30 lat
Dobra znajomość Twojej domeny programistycznej. Obejmuje to: języki, frameworki, narzędzia, środowiska programistyczne
Dobre zrozumienie systemów zarządzania problemami, umiejętności zarządzania projektami i kontroli wersji
Bądź zabójcą błędów
Wiedzieć, jak przeprowadzać terminowe przeglądy kodu, czego szukać i jak zminimalizować czas potrzebny do wstrzymania i wprowadzenia zmian
Bądź na bieżąco z rozwojem swojej domeny programistycznej. Na przykład, jeśli nie nauczyłeś się nowych frameworków lub technologii z .NET 2, dziś robiłbyś wszystko w odwrotny sposób.
Jak pisać testy jednostkowe i kpiny, a także zachęcić programistów do napisania ich
Wiedza o tym, jakie są wzorce projektowe i kiedy je stosować
Wiedza o tym, co pachnie kodem i jak je złagodzić
Ciągła integracja
Możliwość planowania projektów i wydań
W zależności od organizacji i od tego, czy zatrudniasz architektów, prawdopodobnie będziesz musiał wiedzieć, co następuje:
Możliwość komponowania projektów i dzielenia ich na funkcjonalne części
Dogłębne zrozumienie bezpieczeństwa, w tym właściwy sposób postępowania z hasłami, oddzielania systemów, zabezpieczania danych itp
Koncepcje korporacyjne, takie jak magistrale usług, kolejki komunikatów, BizTalk
Wzorce projektowania korporacyjnego
Architektury usług / RPC, takie jak SOAP i REST
Frameworki ORM, takie jak Hibernacja, Entity Framework, Doctrine
Ciągłe wdrażanie
Chmura
Umiejętność rekomendowania odpowiednich technologii do wykorzystania w projekcie. Może to być trudne, jeśli Twój zespół / sklep obsługuje tylko .NET, PHP lub Java.
Zaprojektuj aplikację w taki sposób, aby przyszłe rozszerzenia były łatwo dostępne
Jeśli zamierzasz zostać menedżerem ds. Rozwoju, potrzebujesz również:
- Umiejętności przeprowadzania wywiadów i jak znaleźć odpowiedni personel
- Jak radzić sobie z problemami z członkami zespołu
- Zarządzanie dyrektywami / celami biznesowymi i przekształcanie odpowiednich w informacje dla programistów
- Możliwość oszacowania czasu dla programistów o różnych umiejętnościach
- Zdolność do przydzielania zadań właściwym programistom na podstawie ich umiejętności i umiejętności
I wreszcie kilka innych zalecanych punktów:
Ucz się poza swoją domeną programistyczną
Naucz się mówić NIE, gdy rzeczy nie są możliwe lub są poza zakresem lub są sprzeczne z ograniczeniami, takimi jak budżet lub czas.
Zarządzanie zespołem to trudna rola. Musisz być osobą, która może odpowiedzieć na każde pytanie, musisz znać odpowiednie technologie (chyba że masz architekta), musisz mieć umiejętności zarządzania ludźmi i być przystępnym. przez twoich pracowników (obejmujących stanowisko kierownicze). Oprócz tego musisz mieć dokładne umiejętności szacowania, aby zapewnić opłacalność projektu, i musisz być w stanie ubrudzić ręce kodem użytkownika, aby szybko zlokalizować problemy i je naprawić. Musisz unikać chęci zrobienia wszystkiego samemu i wspierania środowiska zespołu, które nie jest toksyczne. Musisz stale być na czele stosu technologii i uczyć się najnowszych osiągnięć i technik, a także szerszych trendów w branży.
Powinieneś także naprawdę znać przynajmniej jedną platformę bazy danych i dobrze ją znać. Dowiedz się, jak wykonywać replikację, procedury składowane, jak działa optymalizator zapytań, jak prawidłowo zaprojektować schemat i jakie pola indeksować.
Niezależnie od dokładnej pozycji, każda z wyższych ról wymaga umiejętności skutecznego komunikowania się. Jeśli nie jesteś pewnym mówcą, spójrz na robienie czegoś takiego jak Toast Masters (wystąpienie publiczne). Dowiedz się, jak nawiązać i utrzymać kontakt wzrokowy. Bądź pewny siebie. Ubierz się odpowiednio do pozycji. Dawaj dobry przykład.