Kto powinien szkolić nowych programistów? Młodsi czy starsi programiści? [Zamknięte]

15

W moim zespole często wymagamy od starszych programistów wyszkolenia / mentora zupełnie nowych młodszych programistów. Jednak ci sami starsi programiści wykonują większość prawdziwej, ważnej pracy.

Próbowałem kłócić się z moim menedżerem, że sensowne jest, aby młodsi programiści, którzy wykazują duże umiejętności, wzięli nowych programistów pod swoje skrzydła. Po pierwsze, uwolni starszych programistów do pracy nad ważniejszymi inicjatywami (nie to, że mentoring nie jest ważny). Następnie sprawi, że młodsi programiści będą trochę dumni ze swojej pracy, że będą poszukiwani takiej odpowiedzialności i mogą nauczyć się czegoś w nauczaniu. Wreszcie pozwoli to zaoszczędzić pieniądze firmy, ponieważ starsi programiści kosztują znacznie więcej niż juniorzy.

Mojego szefa nie udało się przekonać, ponieważ tak to działało w tym zespole od samego początku. Zakładając, że podjęto decyzję, że jakiś trening / mentoring jest obowiązkowy, czy ktoś może przedstawić mi lepsze argumenty lub powiedzieć, dlaczego się mylę? Czym zajmuje się Twój zespół?

** Wszyscy możemy się zgodzić, że staż pracy niekoniecznie oznacza kompetencję, więc po prostu załóżmy, że przez „starszych programistów” mam na myśli „najlepszych programistów”.

smp7d
źródło
1
Chciałbym sformułować to pytanie jako „najlepsi programiści vs średniozaawansowani i średniozaawansowani programiści”. Kilka świetnych odpowiedzi.
smp7d,
Możesz go edytować, wiesz ...
ChrisF
ha, nie byłoby sprawiedliwe wobec tych, którzy już odpowiedzieli.
smp7d,
Myślałem, że mówisz o tytule ...
ChrisF
Cóż, jeśli zawsze tak robili, musi to być właściwy sposób na robienie różnych rzeczy.
SoylentGray

Odpowiedzi:

11

Miałem taką sytuację w poprzedniej firmie. Starsi programiści, którzy byli tylko nieliczni, mentorowali coraz większą liczbę młodszych programistów do tego stopnia, że ​​nie mogli wykonywać innych powierzonych im zadań. Po pewnym czasie starsi programiści porozmawiali o tym z naszym menedżerem i zdecydowano, że programiści, którzy byli gdzieś pomiędzy młodszymi i starszymi, będą działać jako mentorzy, ale w przypadku trudnych problemów mogą zapytać starszych programistów.

Wyszło całkiem nieźle. Wcześniej kilku starszych deweloperów zaczynało szukać nowych miejsc pracy, ponieważ nie byli wyzwani w pracy. Następnie mogli pracować nad nowymi funkcjami i wykonywać zadania. Co twoi starsi programiści myślą o sytuacji?

Moim zdaniem bycie seniorem to nie tylko wiedza specjalistyczna w dziedzinie, tytuł w stopce wiadomości e-mail lub czas pracy. Jest to również sposób myślenia, który pomaga młodszym programistom i kieruje nimi. A czy jest lepszy sposób na pozyskanie większej liczby starszych programistów w zespole niż umożliwienie mentorowi nie tak wysokiego poziomu?

fejd
źródło
2
to brzmi bardzo podobnie do mojej obecnej sytuacji.
smp7d,
21

Nie każdy najlepszy programista jest najlepszym nauczycielem. Zalecałbym przeprowadzenie szkolenia przez osobę, która może wyjaśnić i ma przegląd „środowiska” Twojej firmy (kwestie techniczne, ale także kontakty organizacyjne).

knut
źródło
zdecydowanie prawda, ale właściwe pytanie może brzmieć: „czy ci technicznie wspaniali seniorzy starają się nawet wspierać i uczyć mniej doświadczonych?”. Myślę, że brakuje im ważnej części pracy. chyba nikt nie stał się seniorem.
zeroDivider
7

Powtarzam niektóre rzeczy, które zostały już powiedziane, ale mam dwa poglądy.

Biznes: Jako firma chcesz produktywności i niższego ryzyka. Chociaż starsi programiści wykonują większość pracy, chcesz, aby przenieśli swoją wiedzę o systemie, co obniża ryzyko. Nie wpłynie to tak bardzo na produktywność, ponieważ musisz dać tym seniorom trochę czasu na robienie mniej krytycznych rzeczy (nauczanie młodszych programistów). Oprócz systemów, mają także wiele dyscyplin, których młodsi twórcy jeszcze nie znają ani nie rozumieją.

Szacunek: Juniorzy przyjmujący nowych programistów pod swoje skrzydła są jakby ślepi prowadzący ślepego. Juniorzy nie są jeszcze na bieżąco ze wszystkim, co powinno być odpowiedzialne za nauczanie innych. Może się to nie udać, ponieważ szacunek może nie istnieć. Szacunek dla młodszego programisty jest kwestionowany, ponieważ Twój zestaw umiejętności w porównaniu do zestawu umiejętności dla początkującego prawdopodobnie nie jest tak daleko. Jednak wspólne rozwiązanie problemu to inna historia. Nie ma kwestii szacunku w odniesieniu do starszych deweloperów uczących początkujących, a nawet juniorów. Wszyscy wiemy, że gdy brak szacunku u dwóch osób lub w zespole, katastrofa czeka na ...

QuanhD
źródło
6

Spójrz na to z innej perspektywy. Jakie umiejętności i wiedzę chcielibyście przenieść tutaj między programistami? Jeśli starsi programiści wykonują większość prawdziwej, ważnej pracy, czy to nie pozostawia odrobiny izolacji w kwestii tego, kto wie, który system? Zapoznanie juniorów z systemem, aby mogli oni tworzyć kopie zapasowe dla seniorów, jest raczej logicznym kierunkiem, ponieważ najważniejsza jest tutaj wiedza seniorów na temat potencjalnie lat gromadzonej wiedzy. Seniorzy mentorujący juniorzy wydają mi się rodzajem naturalnej formacji.

Młodszy programista opiekujący się innym młodszym programistą nie ma dla mnie sensu. Powiązanie kilku młodszych programistów ze sobą może jednak mieć sens. Posiadanie kilku osób pracujących razem nad zadaniem, aby nie był to tylko pomysł jednej osoby, może być bardzo użyteczny, a także pomóc w tworzeniu środowiska współpracy, w którym zespół w pewnym sensie łączy się. W zależności od środowiska, które masz, może to mieć sens.

JB King
źródło
4

Cóż, jeśli starsi programiści w zespole tak naprawdę nie opanowują swojego zawodu bardziej niż juniorzy, są tylko dłużej i / lub mają wyższy status społeczny / polityczny w zespole, to naprawdę nie robi to dużej różnicy kto - jeśli ktoś - mentoruje przybyszów. Są szanse, że i tak będą się zbliżać do tego samego poziomu mierności ... :-(

Jeśli, OTOH, senior jest naprawdę (przynajmniej zauważalnie bliżej) głównym programistą w prawdziwym tego słowa znaczeniu, może to mieć duże znaczenie. Junior może z łatwością nauczyć niezbyt dobre praktyki nowemu dziecku na bloku. O wiele trudniej jest później oduczyć się suboptymalnego lub złego podejścia, niż zacząć od nauki najlepszych praktyk .

To powiedziawszy, jeśli junior ma talent i niezawodnie wykazał, że wie, co robi (a) w związku z określonym narzędziem, techniką lub obszarem, może rzeczywiście być przydatnym trenerem w tym konkretnym obszarze .

Należy jednak pamiętać, że - z pewnego punktu widzenia - całym celem mentoringu / szkolenia jest umożliwienie seniorów delegowania niektórych swoich niezbyt trudnych zadań innym, aby mogli skupić się na naprawdę trudnych sprawach. Aby tak się stało, muszą najpierw uczyć tych zadań i umiejętności swoich rówieśników i dobrze ich uczyć, aby zadania zostały raz na zawsze odpowiednio przejęte.

Péter Török
źródło
4

Prosta odpowiedź: osoba, która przeprowadza szkolenie, powinna być osobą, która jest najlepsza w szkoleniu i która chce również trenować.

Niektórzy ludzie lubią szkolenie i mentoring. Niektórzy nienawidzą tego. Nie chcesz, żeby ludzie robili rzeczy, których nienawidzą - to źle dla nich, prawdopodobnie źle dla trenowanej osoby i prawdopodobnie źle dla całego zespołu. Nic nie dodaje. Tymczasem pozwalanie ludziom na robienie tego, co im się podoba, jest dobre dla nich, zespołu i mam nadzieję, że stażysta złapie pewien entuzjazm.

Podobnie, niektórzy ludzie są dobrzy w szkoleniu, a niektórzy nie. Istnieje rodzaj interakcji międzyludzkiej lub inteligencji, który pozwala niektórym być dobrym w zrozumieniu, jak inni tykają; trener powinien być w stanie przekazać wiedzę w sposób zrozumiały dla uczestnika szkolenia. Dobry trener może to zrobić i dowiedzieć się, że stażysta lubi „rozumieć” rzeczy, „widzieć” rzeczy lub „robić” rzeczy - różne sposoby uczenia się. Zły trener zapewnia wyuczoną mowę i jest nieelastyczny, i frustruje się, gdy stażysta nie zrozumie swoich idiosynkratycznych sposobów uczenia się.

Zakładam, że chcesz, aby stażyści mieli jak najlepszy trening - dokładny, ale skuteczny. Jeśli twoi „najlepsi programiści” chcą trenować, powinni to zrobić. Jeśli „młodsi programiści” poradzą sobie z tym, powinni też spróbować. Nie szkodzi, że kilka osób bierze udział w programie treningowym - w ten sposób możesz określić, kto chce trenować, a kto jest dobry w treningu.

Nie jestem pewien z twojego pytania, czy jesteś starszym programistą, który chce wyjść ze szkolenia (bez krytyki - masz ważniejsze rzeczy do zrobienia lub po prostu tego nie kochasz), czy młodszym programistą, który chce się do tego przyłączyć. Ale tak czy inaczej, starasz się robić to, co lubisz - i czy nie wszyscy chcemy wykonywać zadania, które lubimy? Zadowoleni pracownicy prowadzą do lepszego środowiska pracy i lepszej wydajności.

Kirk Broadhurst
źródło
3

W większości firm, w których pracowałem, młodszy programista był osobą z mniej niż 3-letnim doświadczeniem. Chociaż byłbym szczęśliwy, jako doświadczony programista z doświadczeniem mentorskim, aby skierować nowego programistę do młodszego programisty na szkolenie na określony temat, chciałbym zachować kontrolę, a nie przekazywać całą odpowiedzialność mentorską komuś, kto nadal potrzebuje nadzoru mentorskiego sami.

Michael Shaw
źródło
2

Przekonałem się, że takie zasady, jak reguły biznesowe i wytyczne projektowe są najważniejszymi rzeczami, które starszy programista musi być w stanie przekazać młodszym programistom lub nawet nowo zatrudnionym starszym / ekspertom lub kontrahentom. Problemy pojawiają się zwykle, gdy te kluczowe informacje są gromadzone lub nigdy nie są wyjaśniane. Być może o to bardziej martwi twojego menedżera niż faktyczna znajomość programowania.

Jeśli chodzi o samą wiedzę programistyczną, najlepiej przekazać ją na wszystkich poziomach. Nawet doświadczeni programiści cały czas uczą się nowych rzeczy, szczególnie w złożonych ramach programistycznych. To dzielenie się może być formalne, jak na przykład sesja obiadowa i nauka lub nieformalne dyskusje, gdy pozwala na to czas.

jfrankcarr
źródło
1

Wolałbym, aby mentorzy znajdowali się przede wszystkim o krok lub dwa poniżej najlepszych programistów w organizacji.

Chociaż podałeś kilka dobrych powodów, chciałbym wskazać jeszcze jedną, która moim zdaniem jest szczególnie ważna: nauczanie jest jednym z najlepszych sposobów uczenia się, zwłaszcza uczenia się wystarczająco dużo, aby niektóre z ostatnich kroków od naprawdę dobrego za świetnie. Jedną szczególnie ważną częścią tego jest nauka nie tylko robienia rzeczy dobrze, ale także dobrej pracy w artykułowaniu tego, co robisz i dlaczego. Na przykład często stwierdziłem, że wykonując dobrą pracę wyjaśniając, dlaczego robię coś w określony sposób, muszę usiąść i przemyśleć to na tyle, aby 1) moje własne rozumienie znacznie się poprawiło, i 2) ja często ponownie oceniam sytuację na tyle, by usprawnić moją pracę.

Chociaż może im to być trudniejsze, może to być szczególnie pomocne dla programistów, których umiejętności społeczne mogą być nieco ... słabsze w porównaniu z rówieśnikami. Wypchnięcie ich trochę ze strefy komfortu z czystego kodowania do bardziej społecznych aspektów, takich jak mentoring, może im pomóc tak samo jak ludziom, których mentorują. Oczywiście, jeśli zamierzasz to zrobić, musisz być szczególnie ostrożny przy wyborze, kogo sparować ze sobą - niewłaściwe powiązanie może spowodować zranienie ich obu.

Jerry Coffin
źródło
0

Myślę, że najlepiej działa, gdy mentorzy zgłaszają się na ochotnika do tego zadania. Tutaj nie mamy bardzo formalnego procesu mentoringu. Czasami nasz menedżer ma na myśli coś konkretnego, ale innym razem mówi coś w stylu: „Czy ktoś ma dobry pomysł na projekt dla nowego faceta?” a kto ma najlepszy pomysł, kończy mentoring.

Ostatecznie dzieje się tak, że nowy wynajem jest realizowany w projekcie, który może sobie pozwolić na czas nauki, i jest prowadzony przez osobę najlepiej znającą projekt. To może być ktoś, kto był tu 10 miesięcy lub 10 lat. Czasami ludzie w końcu trochę mentorują mentorów, ale zaletą jest to, że nowi ludzie wciąż pamiętają wszystkie trudności związane z byciem nowymi i to, jak je pokonali.

Karl Bielefeldt
źródło