Jestem menedżerem zespołu 11 programistów, którzy opiekują się stronami internetowymi / aplikacjami internetowymi mojej firmy, prowadząc do 4 jednoczesnych projektów oraz codzienne wsparcie w dowolnym momencie. Wśród 11 programistów jest połączenie umiejętności technicznych, stanowisk i doświadczenia, chociaż struktura zespołu jest płaska, a wszyscy 11 programistów podlega mi bezpośrednio.
Cały zespół mający jednego menedżera zaczyna słabo skalować. Zaczynam być zbyt cienki, więc chcę zmniejszyć liczbę bezpośrednich zgłoszeń. Wszystkie sposoby, w jakie mogę to zrobić, mają znaczące wady:
- Poproś młodszych programistów o raport dla starszych. To skraca czas poświęcony na rozwój przez najlepszych techników.
- Podziel zespół według oprogramowania, np. Programiści 1-6 pracują w intranecie, a 7-11 pracują w zewnętrznych witrynach, przy czym każda sekcja ma nowego kierownika zespołu (być może nowy opis stanowiska z większą odpowiedzialnością za zarządzanie / mentoring / coaching niż w przypadku obecnych starszych programistów ). Dodaje to sztuczne silosy i może utrudnić pozyskanie „programisty intranetowego” do pracy na zewnętrznej stronie internetowej, jeśli tego chcę.
- Utrzymaj strukturę na płasko i dodaj wsparcie menedżerskie w kształcie kierowników projektów / administratorów zespołów, aby odciążyć się od presji. To nie rozwiązuje problemu, ponieważ zespół nie może dalej rosnąć w ten sposób.
Czy istnieje standardowy sposób rozwiązania tego problemu, którego mi brakuje?
Jeśli nie, to jak inni z was rozwiązali ten problem?
management
team
Nacięcie
źródło
źródło
Odpowiedzi:
Kilka szybkich myśli:
Ponadto zawsze warto iść i (ponownie) przeczytać Manifest Agile , a zwłaszcza dwanaście zasad .
źródło
Ta struktura będzie głównie
depend on project specifications
Idealnie byłoby, gdyby każdy starszy programista w zespole składał się z 3 juniorów. W związku z tym na ścieżkę nauczania jest 2-3 starszych programistów.
W związku z tym tylko kierownicy ds. Technicznych będą informować PM o statusie postępu projektu. Opisana struktura nadal zakłada, że w przypadku problemów nietechnicznych (urlop, przerwa, konflikty itp.) Każdy może mieć dostęp do PM.
Jeden ze względnie odnoszących sukcesy zespołów programistów , w których uczestniczyłem, opracował coś takiego:
Menedżer ds. Rozwoju oprogramowania / Starszy programista / Mentor, do którego wszyscy inni zgłaszali się bezpośrednio.
Działało idealnie dobrze i podobała mi się ta organizacja. Z drugiej strony byłem kierownikiem ds. Rozwoju oprogramowania, a struktura organizacyjna zespołu ewoluowała.
źródło
Rozważ zastosowanie schematu organizacji funkcjonalnej personelu . To przemawia za drugą opcją podziału zespołu według oprogramowania.
Aby zacytować artykuł w swoim kontekście:
Rzeczywista struktura zarządzania / HR jest poza tym nieistotna.
źródło
Nie całkiem. Będzie to zależeć od twojego zespołu, ciebie, tego, co musisz zrobić i jakie zasoby firma ci udostępni.
Osobiście najlepszym rodzajem zmiany jest rozdzielenie zarządzania technicznego od zarządzania administracyjnego. Rzadko zdarza się, że ludzie są dobrzy w obu przypadkach i rzadko mają skłonność do interakcji.
Jedna osoba zajmuje się aspektami technicznymi. Co trzeba zrobić, kto to zrobi, jak sprawy muszą się ułożyć. Drugi obsługuje aspekty administracyjne. Recenzje, spotkania budżetowe, planowanie produktu itp. Następnie współpracują, aby przekazywać spostrzeżenia z jednej strony na drugą i zapewnić jednolity front.
To, jak to jest podzielone, może przebiegać na kilka różnych sposobów. Najczęstszym jest kierowanie inżynierem po stronie administracyjnej, a po stronie technicznej. Są rówieśnikami i zgłaszają się do dyrektora / wiceprezesa.
Kolejną pracą, jaką widziałem, jest kierowanie inżynierem, a następnie kierownictwo zespołu jako osoba techniczna. Jest to trudniejsze i wymaga od właściwych ludzi działania (głównie) rówieśników, nawet jeśli raportowanie jest hierarchiczne.
W twoim konkretnym scenariuszu zaleciłbym posiadanie 2-3 zespołów i poprowadzenie technicznych aspektów technicznych, a ty skupisz się na administracji. Tak, skraca to czas od potencjalnych klientów, którzy faktycznie piszą kod, ale powinni (jeśli wykonują dobrą robotę) zrekompensować ten czas, czyniąc młodszych programistów bardziej wydajnymi / produktywnymi. Daje im to większą motywację i poczucie spełnienia przy samej promocji. I, w praktyce, łatwiej jest sprzedać kierownictwu niż otwieranie nowej pozycji.
źródło