Nowe zadania dla starszych programistów

21

Mam starszego programistę z ośmioletnim doświadczeniem .NET, od jutra pracuję nad aplikacją zawierającą 11 000 linii kodu. W zespole jest ja i inny programista. Oboje mamy około trzyletnie doświadczenie.

To mój pierwszy projekt jako menadżer (jestem również programistą w projekcie) i po raz pierwszy musiałem przedstawić kogoś do już ustalonej bazy kodu. Oczywiście omówię każdy moduł, proces wdrażania itp. I podam im lokalizację repozytorium kontroli źródła, dokumentację (która nie jest najlepsza) itp.

Jak długo powinienem im dać, zanim będą gotowi do pisania nowych funkcji i usuwania błędów?

MrBliz
źródło
1
To naprawdę zależy od stopnia skomplikowania 11 000 linii kodu. Spodziewałbym się, że ktoś mający 8 lat (co oznacza, że ​​zaczął go używać w 2003 r.) Będzie w stanie biegać z pełną prędkością w ciągu tygodnia.
Ramhound,
Jako punkt danych kilka tygodni temu przypisaliśmy programistę do projektu z 13 700 liniami kodu JavaScript i założyliśmy, że będzie produktywny w sprincie (tydzień), nawet o tym nie myśląc.
Gort the Robot
@StevenBurnap: Podoba mi się :) Rozpal jego stopy i sprawdź, czy nie spali domu.
Joel Etherton
Czy naprawdę jestem jedynym, który uważa, że ​​11 tys. Linii to niewiele? Dałbym dzień z czystej dobroci mego serca.
Louis Kottmann
Część wybranych przez ciebie zadań może również zależeć od tego, jak późno będzie twój projekt. Aby dowiedzieć się, jak ograniczyć wpływ nowego personelu na istniejący personel, odwiedź programmers.stackexchange.com/questions/164781/...
DeveloperDon

Odpowiedzi:

38

Przypisałbym kilka błędów o niskim priorytecie pierwszego dnia, w ten sposób nikt nie krzyczy, jeśli nie zostaną one od razu zrobione, dając nowemu deweloperowi trochę czasu na zapoznanie się z bazą kodu.

Najważniejszą rzeczą do zrobienia jest przegląd kodu całej jego pracy przez kilka pierwszych tygodni. Nie chcesz dowiedzieć się, że facet zmierza w złym kierunku lub że nie przestrzega standardów kodowania firmy miesiącami. Lepiej jest upewnić się, że wie, czego oczekuje się od samego początku, a recenzje kodu zapewniają to. Oczywiście uważam, że recenzje kodu są dobre dla wszystkich pracowników (sprawdzamy 100% naszego kodu przed wdrożeniem), ale są krytyczne dla nowych pracowników i powinny być wykonywane osobiście, w którym można odpowiedzieć na pytania i skierować ich do dokumentacji, której mogą nie mieć widać jeszcze, jeśli zajdzie taka potrzeba.

Czego nie chcesz, to nowy facet przychodzący i używający innego stylu niż reszta z was. Ludzie często próbują nadal używać stylu kodu z poprzedniej pracy, nawet jeśli jest on sprzeczny ze stylem kodu używanym w nowym miejscu, co może powodować zamieszanie i irytację ze strony innych programistów.

Jedną z rzeczy, które zauważyłem nawet w przypadku doświadczonych programistów, jest to, że niektóre z nich nie są tak dobre, jak się wydaje w wywiadzie, przegląd kodu pomoże ci to szybko znaleźć, więc możesz to naprawić. To również zachęci ich do zrobienia czegoś, widziałem, jak nowi pracownicy, którzy nie zostali poddani przeglądowi kodu, wyciągają projekt, nie pokazując nikomu, co robią, a następnie odchodzą na tydzień przed terminem, o którym wiedzieli, że nie zamierzają uderzyć, ponieważ byli nad głowami i tak naprawdę nie ukończyli żadnej części projektu. Lepiej sprawdzać wcześnie i często z nowymi ludźmi, dopóki nie będziesz naprawdę pewien, że się wypracowują.

Poza tym normalne jest, że nowy facet jest przerażony stanem twojego starszego projektu. Nie jest tak zaprojektowany, jak powinien. Spodziewaj się tego, wysłuchaj go i nie odrzucaj automatycznie wszystkiego, co mówi. W szczególności ta osoba wydaje się mieć więcej doświadczenia niż ty lub inni programiści, może zobaczyć rzeczy, których nie wziąłeś pod uwagę. Jednak jako menedżer musisz zrównoważyć proponowane zmiany z bieżącym obciążeniem pracą i terminami. Wszyscy możecie zainwestować trochę czasu w naukę, jak refaktoryzować istniejący kod i zainwestować kilka godzin w swoje oszacowania czasu, aby to zrobić, szczególnie jeśli nowy facet ma jakieś uzasadnione obawy. Prawdopodobnie nie jesteś w stanie wesprzeć całkowitego przepisywania (wiele osób, które przychodzą w nowym wydaniu, uważa, że ​​powinniśmy zacząć od nowa i zrobić to lepiej)

Jeśli masz trochę czasu, w którym nie oczekuje się od niego pełnego udziału (i pełnego rozliczania swojego czasu przez klienta), może to być również czas, kiedy może zacząć od refaktoryzacji rzeczy, które chciałeś zrobić, ale których nie chcesz ” miałem czas do zrobienia. Czasami dobrze jest wykorzystać okres szkolenia nowej osoby, aby zająć się niektórymi sprawami, których nie ma w planie projektu. Mogą nauczyć się podstawy kodu i jeśli to, co chcą zrobić, nie działa, nie wpłynąłeś na istniejące harmonogramy, ponieważ nie uwzględniłeś ich w istniejącym harmonogramie. A jeśli to zadziała, możesz mieć dużą wygraną, ułatwiając przyszłą konserwację, bezpieczeństwo lub cokolwiek innego.

HLGEM
źródło
To świetna odpowiedź, szczególnie część na temat recenzji kodu i opinii deweloperów na temat obecnego stanu projektu. Na szczęście nie jest to tradycyjny projekt, w rzeczywistości jest bardzo nowy i rozwija się w bardzo szybkim tempie.
MrBliz
1
+1 - Dużo dobrych punktów, ale chciałbym powtórzyć, że absolutnie niezbędne jest przejrzenie całej ich pracy, abyś mógł ocenić ich umiejętności i upewnić się, że dostaną się na tę samą stronę co zespół. Niestety trwa to znacznie dłużej niż pierwsze kilka tygodni. Kolejne +1 za nie tak dobre jak podczas wywiadu. To, co dzieje się z wieloma osobami między wywiadem a dniem, w którym się pojawiają, jest dla mnie tajemnicą. Czy lobotomie są tak powszechne, jak się wydają? To jedyne wyjaśnienie, jakie mogę wymyślić.
Dunk
Tak, przejrzyj ich prace, aby upewnić się, że nie odbiegają od ustalonych standardów. Ale jeśli mają osiem lat doświadczenia, a ty masz trzy , prawdopodobnie wiedzą więcej niż ty . Upewnij się, że nie zmuszasz ich do robienia rzeczy po swojemu.
DJClayworth,
2
@DJClayworth, chociaż zgadzam się, że nowa osoba prawdopodobnie będzie miała większą wiedzę, a PO powinien zwracać szczególną uwagę na wahta, który chce robić inaczej, są chwile, kiedy twoja znajomość systemu i wymagań może przebijać jego lepszą wiedzę ogólną i być może będziesz musiał nakłonić go do wybrania mniej niż optymalnej ścieżki z powodów, które wynikają z historii systemu i wymagań. Czasami musisz nalegać, aby robili to po swojemu z powodów, których mogą jeszcze nie być świadomi. Oczywiście, kiedy to robisz, musisz wyjaśnić, dlaczego, nie tylko zawsze tak robimy.
HLGEM
@Dunk: z mojego doświadczenia wynika, że ​​nawet najgorsze osoby na świecie mogą zachowywać się przez kilka godzin podczas rozmowy kwalifikacyjnej, gdy desperacko poszukują pracy. Właśnie dlatego umowy o wynajem, staże i próbki kodu są tak ważne w przypadku nowych pracowników.
Jordania
18

Natychmiast uruchamiaj je przy małych zadaniach - rzeczach, które nie wymagają większego obrazu.

W miarę, jak stają się bardziej pewni siebie i zaznajomieni z bazą kodu, uczą się coraz większych zadań. To, jak szybko to się dzieje, zależy głównie od nich.

Oded
źródło
Właśnie o tym myślę.
MrBliz
+1, to nie jest trudne, szczególnie, że baza kodu jest niewielka.
Louis Kottmann
8

Zawsze lubię przypisywać mi zadania od samego początku, mając na uwadze, że przekopanie kodu zajmie znacznie więcej czasu, a w ciągu pierwszych kilku dni / tygodni zostanie zadanych wiele pytań.

Uważam, że nie jestem w stanie całkowicie owinąć głowy wokół projektu, dopóki nie będę musiał wejść i naprawić lub zmienić coś.

Również ... Bez względu na to, jak myślisz, jak dobrze wyjaśniłeś, jak działa projekt, zawsze pojawia się „och, tak, zapomniałem ci powiedzieć”, „natrafiliśmy na ten problem, więc zrobiliśmy to”, które nie zostały dokuczone, dopóki faktycznie zaczynasz pracę.

As w dziurze
źródło
+1 Im wcześniej nowy najemca zacznie przeszukiwać projekt, tym szybciej nowy najemnik poczuje się komfortowo (chętnie przejmie własność / odpowiedzialność) za to, co robi.
Chad Harrison
3

Jak długo?

Jak długa jest lina?

Kiedy jest mu wygodnie: kiedy naprawia swój pierwszy błąd -> jest gotowy .

Ciemna noc
źródło
3

W społeczności open source każdy, kto chciał dołączyć do projektu, najpierw zajmuje się drobnymi problemami. Jeśli on lub ona poradzą sobie bardzo dobrze z problemem, ważniejsze zadanie zostanie mu przypisane. W ten sposób staną się głównym deweloperem projektu.

Ten starszy programista ma osiem lat doświadczenia w .NET, więc możesz przypisać mu kilka prostych błędów do naprawienia. Jeśli łatwo mu sobie z nimi poradzić, możesz przypisać mu złożone problemy, które pomogą mu zapoznać się z całą aplikacją. Potem mógł zacząć pisać nowe funkcje i analizować dziwne problemy. Po prostu zrób to, nie ma czasu na konfigurację!

Ucz się codziennie
źródło
2

8 lat doświadczenia. Po prostu go wrzucę. Powinien umieć pływać. Jak zauważyli inni, zacznij od małych łatwych zadań. Pozwoli mu on przeszukiwać proces sprawdzania / wyewidencjonowywania kodu oraz wszelkie inne procesy programistyczne, które masz.

Wielokrotnie zmieniałem pracę i byłem ich współtwórcą w ciągu pierwszego tygodnia. Najtrudniejsze zajęło mi tydzień, aby skompilować kod (przynajmniej 100 000 + linii kodu). Pełna wersja trwała 8 godzin dla tego projektu.

W pierwszym tygodniu przepracowałem około 80 godzin (projekt był poważnie opóźniony).

Bill Leeper
źródło
Ciekawe, że wszyscy zakładają, że to facet ... :)
MrBliz 10.12
1. Powiedziałbym po angielsku, że zaimek domyślny jest męski, wpisywanie „on lub ona” przez cały czas byłoby właściwe, ale wymagało więcej wysiłku niż większość ludzi. 2. Jaki procent programistów to kobiety? W tym przypadku domyślność na męską ma statystyki po swojej stronie ... Więc wyobrażam sobie, że jest to po prostu użycie domyślnego prostego sposobu na odniesienie do przypadkowej osoby, nie zakładając, że jest to mężczyzna czy kobieta.
Tymina
Jestem facetem, więc wszyscy też muszą być :-). Po prostu mój sposób pisania, nie jestem wystarczająco zdyscyplinowany, aby pisać on / ona cały czas.
Bill Leeper
1

W przypadku tak małej aplikacji i doświadczonego programisty uważam, że jeden dzień wystarczy na podstawowe błędy. Zaangażowane błędy lub drobne funkcje w ciągu tygodnia (gdy już będą jasne na temat problemowej domeny i architektury).

Telastyn
źródło
2
Myślę, że moje standardy są prawdopodobnie zbyt wysokie, ale twoje ... 1 dzień ... i 1 tydzień, aby być naprawdę produktywnym? IME, to nie jest bardzo realistyczne.
Dunk
@Dunk: przypisać zadania i móc do nich podchodzić, nie tracąc nic z oczu? Nie twierdzę, że będą na pełnych obrotach, ale w tym momencie powinni móc polować na bazę kodu, wiedzieć, kogo poprosić o naukę itp.
Telastyn
tak poważnie. 11 tys. LoC nie jest bardzo duże. Ustaw go tak, aby budował i uruchamiał się w debuggerze, a następnie pokaż mu, jak to działa. To powinno wystarczyć.
gbjbaanb
1

Odpowiedź brzmi: to zależy. Jeśli chcesz, aby naprawił jeden błąd na czymś lub zmienił kolor elementu GUI, to około 5 minut (tutaj trzymamy nasz kod), jeśli chcesz całkowite przeprojektowanie całej architektury aplikacji, która będzie wymagają trochę dłużej.

To naprawdę zależy od zadania, które ma wykonać.

jmoreno
źródło