Menu Zamknij

Dzień z życia profesjonalnego programisty

Bardzo często jesteśmy bombardowani przez Naszych młodych kadetów programowania pytaniami dotyczącymi tego, jak wygląda praca profesjonalnego programisty. Zapewne wiele osób starających się o pracę na tym stanowisku, chciałoby mieć wyobrażenie, jak właśnie wygląda ten rodzaj ziemi obiecanej.
Praca programisty jest na pewno specyficzna i owiana nieco dozą tajemniczości. Czy typowy dzień pracy w opisywanym zawodzie to nieustanne tworzenie i pisanie kodu? Odpowiadamy – nie! Programiści w ciągu dnia napotykają szereg innych zadań koniecznych do realizacji. Co więcej, ich system pracy szczególnie zmienił się na przestrzeni 2020-ego roku, gdzie zaczęli oni pracować głównie z domu i zmienił się nieco system współpracy i komunikacji z innymi pracownikami.

 

Narzędzia i system pracy programisty zależy od firmy.

Logiczne i oczywiste jest, że zakres obowiązków programisty, programy i serwisy, niezwiązane stricte z programowaniem, w których musi być obyty programista, aby móc efektywnie realizować swoje zadania, różni się w zależności od specyfiki firmy (tj. ile osób zatrudnia, jakie daily taski musi realizować programista, jak wygląda struktura stanowisk pracy w firmie).

Na to, jak szeroki zakres kompetencji i jak perspektywiczny jest rozwój programisty, wpływ ma głównie fakt, czy firma jest:
– globalną korporacją/software house’m (= większa renoma i zasięg działania)
– lokalną działanością (= mniejszy obszar działania i dostarczania swoich usług, np. jeden konkretny kraj)

Jasne jest, że poniższe stwierdzenie nie jest regułą, ale w mojej opinii: Im większa jest firma (= więcej ludzi zatrudni, jest bardziej globalna), tym więcej uniwersalnych kompetencji można w niej zdobyć. To znaczy – zaczynając pracę jako programista w firmie, której usługi obejmują nie tylko obszar Polski, ale również Europy czy innych zakątków świata, efektywnie pracować możesz tylko wtedy, gdy stosujesz najlepsze i najbardziej sprawdzone techniki kooperacji z innymi programistami i pracownikami firmy…

 

Bo to właśnie umiejętność współpracy się liczy

I w tym oto miejscu mogę napisać jedno z najważniejszych stwierdzeń tego artykułu:
„Nie, programista to nie robot do nieustannego pisania oprogramowania. Programiści to ludzie współpracujący z innymi, dbający o realizację swoich zadań na czas i podsuwający nowe pomysły i rozwiązania w pracy. W pracy również ważna jest chęć do ciągłego rozwijania się i w miarę zdobywania doświadczenia, bycie otwartym na świadczenie pomocy początkującym”.
W dobie koronawirusa i pracy zdalnej, tzw. home office, pracownicy w firmie, aby móc skutecznie się porozumiewać, pracują głównie z użyciem takich platform i programów jak: Teams’y, Slack czy Outlook. Korzystając z OnPoint’a mogą natomiast efektywnie wnioskować o nadgodziny, urlop, zwolnienie chorobowe, a także ewidencjować swoje godziny pracy.

 

Znajomość narzędzi pracy

Oprócz umiejętności programowania, konieczna jest również znajomość narzędzi, które umożliwiają przegląd aktualnych tasków, pracę nad repo zespołu i integrowanie kodu z członkami zespołu. Wielu pracodawców wymaga zatem znajomości takich narzędzi jak: JIRA, Confluence, obeznanie z CI (Continuous Integration), Jenkins, GIT/Gerrit, Docker, Pronto tool.

Moja rada dla początkujących: Warto zapoznać się z powyższymi pozycjami przed aplikowaniem na posadę juniorską, aby móc skutecznie podkreślić swoje kompetencje w CV.

 

Typowy dzień pracy programisty podczas Home Office

Tak jak już wcześniej zostało wspomniane, przejście na remote work wiele zmieniło w kontekście typowego dnia pracy programisty. To oczywiście wszystko zależy od firmy, ale coraz więcej pracodawców daje możliwość rozpoczęcia pracy w elastycznych godzinach dnia, zazwyczaj między 8.00 a 10.00 rano i trwa ona 8 h. Wszystko opiera się głównie na zaufaniu, stąd też programista musi efektywnie rozplanować sobie dzień. Większość czasu spędza on na realizacji tasków (w ramach Scrum’owego Sprint’a, o którym za chwilę), Competence Development’cie, Daily Meetingach z zespołem, ale również na odpoczynku w trakcie przerw (BHP nakazuje, by robić kilkumintowe przerwy po upływie każdej godziny pracy oraz jedną dłuższą przerwę do 30 minut w ciągu dnia).

 

Ale to nie wszystko z zakresu obowiązków w ciągu dnia…

To, czym będzie zajmował się programista w ciągu dnia zależy też w dużej mierze od tego, na jakim etapie dostarczania produktu do klienta jest zespół, a dokładnie na jakim etapie Scrum’owego cyklu znajduje się zespół (Scrum jest obecnie najpopularniejszą metodologią rozwoju produktu). Eventów Scrum’a jest kilka – Planning, Sprint, Review, Retro – nie będziemy się rozdrabniali nad każdym z nich, bo nie jest to celem tego artykułu, ale powinieneś wiedzieć, że każdy z nich w celu opracowania wymaga innej ilości czasu. I tak na przykład, proces planowania (planning) może trwać nawet ponad 2 h w ciągu dnia, co zawęża obszar czynności, jakich programista może się podjąć w ciągu dnia.

Nieoczekiwanie również może pojawić się defekt (pronto) feature’a do natychmiastowej poprawy (my mówimy, że znajduje się w tzw. TOPce), co także zmienia obowiązki programisty w ciągu dnia.

 

A co z taskami? Skąd programiści wiedzą, co należy zaprogramować?

Cały proces inkrementacji produktu, czyli rozszerzania go o kolejne feature’u odbywa się w ramach wspomnianego Scrum’owego Sprintu, który trwa zazwyczaj od 2 do 4 tygodni. To, jakie zadanie będziesz musiał zrealizować przed upływem określonej estymaty czasu na zadanie, dowiesz się podczas codziennych spotkań z Product Owner’em i pozostałymi członkami zespołu. Programiści zazwyczaj dobrowolnie wyrażają chęć realizacji danego zadania. Jeżeli natomiast brakuje chętnych, osoba odpowiedzialna za realizację task’u jest wyznaczana według kolejki.

Jego efektywna realizacja może natomiast wymagać zapoznania się z dokumentacją i implemenetacją innych struktur aplikacji. Po tym, jak uda Ci się wszystkie punkty TO-DO implementowanego zadania, Twój kod jest poddawany Review i ostatecznie trafia na tzw. publiczny master branch produktu.

Praca programisty należy do niezwykle rozwojowych i, jeżeli wykonujesz ją z pasją, również ciekawych i satysfakcjonujących czynności. Pamiętaj, że to przede wszystkim sumiennosć, konsekwencja i determinacja pomoże Ci zdobyć upragniony zawód, a później umożliwi pnięcie się na coraz to wyższe stanowiska i zarabianie słynnych 15k netto : )

Sprawdź również nasz system mentorowania i outsourcowania specjalistów
  • Wyznaczona ścieżka od A do Z w kierunku przebranżowienia
  • Indywidualnie dostosowany materiał pod ucznia
  • Code Review ze strony mentora
  • Budowa portfolio
  • Intensywna praca z materiałami szkoleniowymi