Jak sprawić, by życie nowego najemcy było wygodne? [Zamknięte]


36

Jako starszy członek zespołu programistów, który niestety nie ma wystarczającej dokumentacji z powodów związanych z dziedzictwem, co można zrobić, aby nowy wynajem był wygodny?

Planuję sesje debugowania z osobą na temat określonych błędów / żądań funkcji, aby zapoznać ją z bazą kodu. Jednak baza kodu jest naprawdę duża i jest to tylko stała ilość kodu, na którą mogę narazić osobę w ten sposób.

Szukam sugestii w obu przypadkach, gdy nowy pracownik jest absolwentem lub doświadczonym profesjonalistą.


3
Co oznaczają „starsze powody”?
Job

9
@Job: Oznacza to, że pierwotni architekci kodu nie wierzyli w dokumentację. Byli ludźmi mistycznymi.
Fanatic 23

7
Powiedziałbym, że twój nowy pracownik potrzebuje czasu i wsparcia, a także żadnych bezpośrednich terminów! Byłem nowym pracownikiem, w którym błędy musiały być naprawiane jak najszybciej dla łatki klienta, ale wiele z nich było dość zaangażowanych - musiałem chodzić i rozmawiać dosłownie z 6 osobami, uzyskując sprzeczne odpowiedzi. Ktoś się przewrócił, bo zadałem zbyt wiele pytań. Byłoby łatwiej, gdyby ten facet sam naprawił kod. Potrzebowałem ludzi + brak natychmiastowych terminów + zdolność (przydzielony czas) do poprawy rzeczy na bieżąco. Nie miałem ich, więc prawie zrezygnowałem, ale postanowiłem tego nie robić :(
Job

@Job: bardzo przydatne, dzięki. Brak natychmiastowych terminów to dobry początek, a wolna ręka do poprawy rzeczy zdecydowanie poprawiłaby zaufanie kandydatów.
Fanatic23

Odpowiedzi:


31

Odnoszą się one do każdego nowego zatrudnienia, bez względu na to, czy są to osoby świeższe, czy mają duże doświadczenie branżowe:

  1. Upewnij się, że jesteś dostępny . Jeśli jesteś zbyt zajęty, aby pomóc im w zapoznaniu się z twoim systemem, przydziel im mentora. Upewnij się, że mentor jest ujmujący i chętny do robienia takich rzeczy, jak wyjście na lunch z nowym zatrudnieniem. Zadaniem mentora jest udzielenie odpowiedzi na wszelkie pytania, które może mieć nowy zatrudniony, i zapewnienie im w razie potrzeby pomocnej dłoni.
  2. Upewnij się, że przypisane do nich zadania mają możliwie najmniej zależności. Nie ma nic, co sprawiłoby, że ktoś nowy w twoim systemie (świeże lub ponad 5-letnie doświadczenie) czułby się przytłoczony bardziej niż przypisanie mu zadania, które ma zależności rozrzucone w całym systemie (którego będzie musiał się nauczyć, aby wykonać swoje zadanie)
  3. Mieć dostęp do jakiejś formy listy kontaktów / własności za pośrednictwem strony intranetowej lub czegoś podobnego. Nowi ludzie (szczególnie osoby odświeżające) zwykle mają dość niepewne pytanie „kogo pytam o xpodsystem?”. Jeśli udostępni się im listę do wynajęcia, są o wiele bardziej skłonni wysłać e-mail lub porozmawiać z nimi bezpośrednio, bez konieczności przechodzenia przez grupę ludzi, aby znaleźć właściwą.
  4. Uzyskaj dokumentację . Egzekwuj standardy kodowania, które obejmują komentowanie, które można analizować za pomocą narzędzia takiego jak Doxygen. Zapewni to co najmniej nowym pracownikom możliwość przeglądania interfejsu API. Jeśli używasz środowiska IDE, takiego jak Netbeans, użycie formatu komentowania Javadoc zapewni dokumentację wraz z uzupełnieniem kodu. Nieoceniony podczas nauki nowego systemu.
  5. Zapraszamy na spotkanie powitalne / lunch / hazing / itp. Ułożenie kogoś na biurku bez podstawowych uprzejmości może sprawić, że poczuje się raczej oderwany od zespołu.

1
Dzięki, ale co, jeśli nowy najemnik jest zbyt trudny do zrozumienia rzeczy i próbuje nie zaakceptować swojej winy, nawet uczymy ich na maksymalnym poziomie - doświadczam sytuacji, w której nowy najemca nie jest dobry i wykonuję swoje zadania również w fazie rozwoju - jeszcze raz dziękuję
Naveen Kumar

2
@naveen: Jest coś takiego, jak zły wynajem. Jeśli absolutnie nie chcą (lub nie są w stanie) nauczyć się lub wziąć odpowiedzialności za swoje zadania, porozmawiam z ich kierownikiem i zostawię to w ich rękach - albo porozmawiają z nowym zatrudnionym, aby sprawdzić, czy mogą pomóc dalej i być może (miejmy nadzieję) doprowadzić ich na właściwe tory, lub nowy pracownik może uznać, że wolałby realizować inne interesy poza Twoją firmą.
Demian Brecht

10

Myślę, że naprawdę mogę ci w tym pomóc. Kiedy miałem 18 lat, moją pierwszą pracą było stanowisko Jr. .Net Developer. Mieli bardzo dużą strukturę, a on od razu przystąpił do nauki kursu awaryjnego na CAB, a kiedy pojawił się pierwszy projekt, miałem oszacować projekt i nauczyć się SqlServer i ich frameworka. To, co sprawiło, że było to cudowne doświadczenie, polegało na tym, że mój Starszy deweloper był dla mnie przez cały proces od oszacowań, przez SqlServer, aż po ich środowisko. Nauczyłem się tego, czego musiałem się uczyć w odpowiednim czasie, ponieważ mogłem wykorzystać go jako źródło pytań i pomocy. Pamiętaj, że zrobiono to również, kiedy byłem w Kolorado, a on był w Kalifornii. (Zdalny rozwój). Kazał mi czytać oficjalne dokumenty na CAB, wskazywał na dobre zasoby itp., Więc to nie tak, że musiał wykonywać wszystkie nauki, ale gdy chodziło o pytania, był tam. Podsumowując, potrzebujesz kogoś, kto będzie wsparciem dla twoich Jr. Developers. Zwłaszcza jeśli chcesz, aby uczyły się i rozwijały w firmie oraz utrzymywały dobre relacje robocze. Chcieli, żebym przeprowadził się do Kalifornii, ponieważ byli zadowoleni z tempa, w jakim mogłem się uczyć i robić postępy, i mojej pracy, niestety nie mogłem przeprowadzić się z powodu kosztów / etc.

To jedno doświadczenie naprawdę nadało mi również cechę. Teraz z powodzeniem rozwijam oprogramowanie dla firm i fundacji w moim lokalnym mieście, a ja mam zaledwie 21 lat. To była najlepsza pierwsza praca i jestem niezmiernie wdzięczny Tomowi Andersonowi z RenEvo Software & Designs (który był moim starszym programistą). Niesamowity mentor.


Dziękujemy za podzielenie się swoją historią. Rozumiem, jak się czuje młodszy kandydat, który był tam w pewnym momencie.
Fanatic23

Dobra robota, Tom Anderson. Dobra historia.
Gary Rowe,

Tom Anderson - David Anderson. Zbieg okoliczności czy jesteś spokrewniony z Tomem?
zeroef

Dziwne, zbieg okoliczności.
David Anderson

4

Firma, z którą jestem teraz, IMO, robi to dobrze dla nowych pracowników. Oto niektóre z rzeczy, które widziałem jako skuteczne.

Mentorzy

Może to trochę mylące określenie, ponieważ niektórzy doświadczeni deweloperzy mogą nie myśleć, że ich potrzebują, ale mamy 1 osobę wyznaczoną na twojego mentora. Ta osoba ma być dostępna, aby odpowiedzieć na każde pytanie, które możesz mieć. Działa lepiej, jeśli siedzą blisko nowego pracownika. Cały sens mentora polega na tym, że nowi pracownicy, szczególnie młodsi, czują się na tyle wygodnie, aby nie wpaść w pułapkę niewystarczającego zadawania wystarczających pytań .

Dokumentacja

Wspomniałeś już o tym, ale dokumentacja może pomóc. Na naszej wiki mamy dokument, który w zasadzie opisuje twoje pierwsze dwa tygodnie pracy. Zanim skończysz przechodzić przez pierwsze dwa tygodnie, musisz wpaść w rytm, położyć się na ziemi i wygodnie tam pracować.


Zbyt dużo mentoringu prowadzi do pracownika, który przez większość czasu potrzebuje opiekunki i prosi o cokolwiek, naprawdę wszystko zamiast czytać kod itp. Poleciłbym to tylko młodszym.
Falcon

1
@ Falcon: Nie widziałem, aby tak się stało w praktyce, ale może mogę wyjaśnić, że mentorem jest bardziej osoba, której rola jest dobrze zdefiniowana dla nowego pracownika, jako osoba, która ma utrzymać wysoką dostępność dla nowego pracownika, aby odpowiedzieć na pytania lub skieruj nowego pracownika do wszelkich potrzebnych informacji. Znów trochę mylące, ale nie mogę wymyślić lepszego imienia dla tej roli.
Steven Evers

1
@falcon: Nie zgadzam się (polecam tylko młodym). Czy osoby z doświadczeniem stają się lepsze same (w porządku, więc większość może ), czy też staje się łatwiejsze dzięki mentoringowi? Tam zawsze ktoś lepiej niż ty, ktoś, kto już dłużej i ktoś, że można uczyć się od, aby pomóc dostać się do tego następnego kroku w swojej karierze, czy jesteś nowym wynajem lub CTO.
Demian Brecht

1

Cierpliwość

Dołączenie do nowej firmy może być dość zniechęcające, zwłaszcza jeśli masz nowy produkt do nauczenia się i używasz różnych narzędzi, do których jesteś przyzwyczajony. Daj im czas na osiedlenie się w nowym środowisku i przyspieszenie. Przypisuj im zadania do wykonania, ale pamiętaj, że zajmie im to znacznie więcej czasu niż zwykły doświadczony programista.

Wsparcie

Nie musisz im przypisywać dedykowanego mentora, ale upewnij się, że jest mnóstwo ludzi, którzy mogą zaoferować im pomoc, gdy jej potrzebują.


Każdy ma inne sposoby uczenia się, niektórzy mogą uznać, że potrzebują mentora, inni mogą zauważyć, że mentor ich spowalnia. Nie ma jednego uniwersalnego rozwiązania, więc zamiast tego pozwól im znaleźć ziemię i wspierać ich, i bądź cierpliwy podczas nauki lin.


1

Zacząłem od nowej pracy 4 miesiące temu i naprawdę uważam, że moje nowe miejsce pracy wykonało naprawdę dobrą robotę w związku z nowymi pracami związanymi z zatrudnieniem.

Kolega

Mają tak zwany „program dla kumpli”, w którym programiści mogą zarejestrować się jako kumpel / mentor dla nowych pracowników. Gdy zatrudniony jest nowy programista, programista w tym samym zespole (który zarejestrował się jako kumpel) zostaje wskazany jako kumpel / mentor nowego faceta. Jego obowiązkiem jest uruchomienie nowego faceta, pomoc w rozwiązaniu problemów, które napotka, pójście z nim na lunch, przedstawienie go zespołowi i tak dalej.

B. Niska zależność

Zostało to wcześniej wspomniane, ale zacznij od zadań, które nie są krytyczne i zbyt trudne do wykonania, bez pełnej wiedzy o bazie kodu. Nie ma nic gorszego niż wrzucenie do bazy kodu, której nie znasz, a następnie musisz wykonać od pierwszego dnia. Jeśli to możliwe, wykonuj zadania, które są stosunkowo łatwe ORAZ obejmują cały system. W ten sposób zdobędzie trochę wiedzy o systemie.

Prawdopodobnie masz małe zadania, na które nie miałeś czasu, kiedy pisałeś kod. Daj mu te zadania.

C. Szkolenia dla nowych pracowników

Jest to prawdopodobnie luksus dla większości, ale pracuję w dużej korporacji, na którą można sobie pozwolić. Co miesiąc lub co dwa miesiące organizowane są szkolenia dla nowych pracowników. Zasadniczo jest to seria prezentacji, których celem jest przekazanie nowym pracownikom pewnego rodzaju wiedzy o systemie, o tym, jak przeprowadzane są testy, jak działa śledzenie błędów i tak dalej.

Tam, gdzie pracuję, jest wiele różnych zespołów, które pracują nad zupełnie innymi zadaniami, ale przy tym samym oprogramowaniu. Członek każdego zespołu ma za zadanie przeprowadzić prezentację na swojej stronie oprogramowania, gdzie daje wprowadzenie do tego, co robi ta część, jak działa i tak dalej. Poza tym odbywają się szkolenia dotyczące testów (pracuję jako tester) na temat pisania testów, ich uruchamiania, sprawdzania w bazie danych i tak dalej.


Podsumowując, bądź łagodny w przypadku nowych pracowników i nie oczekuj od nich poważnej pracy w ciągu pierwszego miesiąca. Daj im narzędzia, aby uzyskać pomoc, a jeśli to możliwe, daj im prezentacje lub filmy.


1

Narysuj szybki szkic na kartce papieru. Bloki funkcjonalne i przesyłanie danych między nimi. Aby nowy najemca mógł trzymać tę listę pod ręką i sprawdzić, gdzie jest miejsce, w którym próbuje się dotknąć, i które moduły wpływają na nią hierarchicznie.

Wszystko inne przychodzi z czasem. Ale to duży obraz sprawia, że ​​czujesz się głupio, gdy musisz zmienić 2 linie kodu, ale nie masz pojęcia, jakie skutki uboczne mogą powodować zależne moduły, bloki kodu itp.


0

Oprócz tego, co powiedziano wcześniej, określ potrzeby szkoleniowe i zapewnij je poprzez zapewnienie czasu, materiałów, wewnętrznych lekcji, książek itp. Nie wszystkie szanse są znane. Poinformuj go, że to jest OK.

Trzymaj go z dala od „złych” facetów. W każdej organizacji jest zwykle co najmniej 1 arogancka osoba (takie jest moje prawo :))

Jeśli wyznaczysz mentora, upewnij się, że mentor wie, że jego zadaniem jest pomaganie i że nie jest to poza jego sercem. Znajdź na to czas w harmonogramie mentora.

Kontynuuj swoje postępy przez mniej więcej pierwszy miesiąc, jeśli możesz, wywnioskuj jego problemy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.