Jak są przyjmowani nowi programiści w zespole?

28 july 2022
Jakub Rojek Jakub Rojek
Zdjęcie autorstwa JESHOOTS.COM na Unsplash (https://unsplash.com/photos/-2vD8lIhdnw)
Categories: Industry, Programming

Pierwsza praca zawsze jest trochę stresująca, szczególnie, że młody człowiek ma świadomość, iż to, czego uczył się do tej pory sam lub w szkole, odbywało się w pewnych komfortowych warunkach, gdzie nikt nie patrzył surowo na ręce, a liczyła się sama radość tworzenia. Tak jest w każdym zawodzie i tak jest też z programistami, gdzie debiutanci podchodzą do tego... różnie. Niektórzy wiedzą, że to, co umieją, wymaga jeszcze wyszlifowania i nabycia doświadczenia, a trudno zrobić to inaczej niż w środowisku, gdzie oprogramowanie tworzone jest komercyjnie. Inni są bardzo pewni swoich umiejętności oraz wiedzy i czasem zderzają się z realiami lub okazuje się, że pasują idealnie. Nie ma reguły.

Jednak każdy, nawet jeśli się do tego nie przyznaje, obawia się, jak zostanie przyjęty i czego może się spodziewać w software housie (lub jakiejkolwiek innej firmie). I właśnie dla takich osób jest dzisiejszy artykuł, gdyż opowiemy sobie o tym, jak to wygląda z perspektywy firmy programistycznej. I nie ma większego znaczenia, o jakiej formie współpracy mówimy - czy o praktykach, czy o stażu, czy o tradycyjnej pracy lub osobach, które do tej pory pracowały w innych dziedzinach IT, ale bardzo chcą zostać programistami. Każdy z nich ma swoje oczekiwania, wyobrażenia oraz rozterki.

Przede wszystkim, dużo zależy od tego, jakiej wielkości jest software house. Specyficznie będzie wyglądał tzw. onboarding w korporacji, gdzie jest dużo zespołów, szeroka struktura organizacyjna oraz liczne procedury. Często rozmawiając z młodymi osobami rozpoczynającymi pracę w tak ogromnej firmie słyszy się o tym, że pierwszy miesiąc spędza się właściwie tylko na czytaniu dokumentacji, szkoleniach oraz czekaniu na osoby, które zajmują się określoną działką w firmie i wprowadzą w konkretny temat. Później następuje przypisanie do tymczasowego zespołu i prostsze zadania, a następnie przydział do właściwego zespołu i wejście w "tryby maszyny". Oczywiście, to tylko pewien model - wiadomo, że nie w każdej korporacji wprowadzenie wygląda w ten sposób. My jednak opowiemy sobie o tym, jak z natury wygląda to u nas, w dużo mniejszej firmie, a więc w Wilda Software.

  1. Nowy programista podpisuje NDA (umowę o zachowaniu poufności) i wówczas ma udostępnione materiały początkowe - tworzone są dla niego konta w różnych wewnętrznych systemach oraz, przede wszystkim, dostaje dostęp do bazy wiedzy, a więc naszego magazynu różnych artykułów omawiających m.in. standard kodu, tutoriale i wszelakie instrukcje.
  2. Pierwszego dnia nowy człowiek jest zapoznawany z ludźmi, stanowiskiem i otoczeniem. Jeśli nie miało to miejsca wcześniej, to zapoznawany jest też z projektem, którym będzie się zajmował na początku.
  3. Pierwszy dzień (ewentualnie dwa) także są poświęcane na konfigurację stanowiska i tzw. "postawienie projektu" u siebie.
  4. W zależności od projektu i wcześniejszych ustaleń, nowa osoba dostaje zadania wprowadzające. Najczęściej są to poprawki wynikające z uwag klienta lub komentarzy wewnątrz zespołu, którymi trzeba się zająć, ale "odbiegają" od głównej funkcjonalności ujętej w sprintach. Bacząc na specjalność nowej osoby, są to też zagadnienia, które stopniowo wprowadzają w kolejne części systemu i zapoznają pracownika z projektem od wewnątrz, z różnych stron.
  5. Oczywiście, skala trudności rośnie wraz z czasem - czasem szybciej, a czasem trochę wolniej, w zależności od postępów. Na początku bardzo dokładnie są przeprowadzane przeglądy kodu, które mają na celu uporządkować poziom jakościowy.

Później, wraz z rosnącym poziomem trudności i złożoności zadań, a także predyspozycjami programisty, zaczyna jeszcze mocniej uczestniczyć w procesie powstawania oprogramowania i w razie potrzeby przejmuje coraz bardziej odpowiedzialne zadania oraz zajmować się kilkoma projektami. Podczas tego okresu zwykle klarują się naturalne preferencje danej osoby co do zadań oraz jego dodatkowe umiejętności - w przeszłości zdarzało się, że osoby, które miały być programistami, zaczęły bardziej odznaczać się jako graficy lub testerzy, a czasem ujawniali też zdolności przywódcze. Ta ścieżka jest bardzo indywidualna i zależy od kandydata.

Dlatego nie należy się bać pracy w software housie pod kątem atmosfery. Po pierwsze, to nie jest miejsce pracy, w którym następuje jakieś "kotowanie" czy inne formy niezbyt przyjemnej inicjacji i docinków ze strony koleżanków oraz kolegów. Po drugie - prowadzącym firmę również zależy na tym (czasem nawet bardziej), aby nowa osoba poczuła się dobrze w zespole, gdyż wówczas będzie efektywna i utrzyma dobrą atmosferę. Po trzecie - wszyscy zdają sobie sprawę, że taki nabytek nie od razu zbuduje Rzym, będzie projektował całe architektury lib chociaż samodzielnie tworzył duże moduły. Na to potrzeba czasu i kandydat nie powinien tworzyć wewnątrz siebie dodatkowej sztucznej presji. Co nie oznacza, że nie powinien dbać o swój rozwój i z pokorą słuchać uwag współprogramistów, ale o tym za chwilę.

Tak naprawdę nie ma innej efektywnej drogi do wejścia w profesjonalny świat tworzenia oprogramowania, jak właśnie spróbowanie swoich sił w zespole programistów. Jest to lepsze niż od razu samodzielne szukanie zleceń jako freelancer, gdyż w software housie - mówiąc brutalnie - można zrzucić odpowiedzialność za prowadzenie projektu na inne osoby oraz uczyć się na ich błędach. Jednak największą zaletą jest możliwość uczenia się od starszych programistów, czerpanie z ich doświadczenia oraz poznawanie różnych kierunków rozwoju. Nie ma co się bać samego software house'u - oczywiście, zapewne znajdą się w branży "dziwne" przypadki, jednak zazwyczaj zespoły programistów są pozytywnie nastawione do nowych osób i od razu zapoznają ich ze swoim stylem pracy oraz - nie ma co ukrywać - poczuciem humoru. Warto z tego czerpać.

Natomiast tak, jak wspominałem, nowa osoba nie powinna pozostać dłużna i również musi zadbać o swój rozwój, zwłaszcza, jeśli widzi u siebie problemy z pewnymi elementami pracy lub kierownik jawnie je wskazał. Może chodzić o znajomość bibliotek danego języka, obsługę jakiegoś programu lub może problemy bardziej "miękkie". Być może czasem warto trochę spowolnić pracę, zrobić krok w tył, aby nabrać rozpędu do zrobienia dwóch kroków naprzód. Także pod tym kątem warto słuchać rad starszych programistów, którym zależy na rozszerzaniu kompetencji członków swojego zespołu, gdyż wówczas stanie się on bardziej elastyczny, a zadania będzie można rozdzielać z wiekszą swobodą.

Podsumowując - młodzi programiści, nie bójcie się pierwszej pracy w software housie. To naprawdę odpowiednie wejście w ten świat, jeśli tylko macie trochę umiejętności, wiedzy, samozaparcia oraz świadomości, że czasem trzeba przyjąć porażkę. Te cechy przydają się w każdym zawodzie, nie tylko IT.

Pozdrawiam i dziękuję - Jakub Rojek.

We write not only blog articles, but also applications and documentation for our clients. See who we have worked with so far.

About author

Jakub Rojek

Lead programmer and co-owner of Wilda Software, with many years of experience in software creation and development, but also in writing texts for various blogs. A trained analyst and IT systems architect. At the same time he is a graduate of Poznan University of Technology and teaches at this university. In his free time, he enjoys playing video games (mainly card games), reading books, watching american football and e-sport, discovering heavier music, and pointing out other people's language mistakes.

Jakub Rojek