· kodolamacz · 4 min
Dzień z życia programisty
Przebieg dnia zależy też od tego w jakim zespole pracujemy i jaki jest styl jego działania. Ma na to wpływ sposób prowadzenia projektu, w którym bierzemy udział, jak i sam jego charakter. Niektóre z nich wymagają pracy w zespole i częstych kontaktów, inne umożliwiają programiście na przykład pracę z domu (pracę zdalną).
Zawód programisty pozwala na pewną dowolność w godzinach pracy. Najczęściej pracodawcy po prostu określają, że w biurze należy pojawić się do godziny np. 9:30. Poranek to czas szybkiego przetestowania pomysłów, które wpadły nam do głowy pod koniec poprzedniego dnia lub przyśniły się w nocy (to nie żart). Rano programiści przeglądają też pracę swoją i współpracowników z poprzedniego dnia. Nazywa się to przeglądem kodu (ang. code review) i pozwala na szybsze wyeliminowanie błędów czy zaproponowanie lepszego rozwiązania.
W okolicach godziny 10:00-11:00, gdy cały zespół jest już na miejscu, popularnym obecnie wydarzeniem jest tak zwany DSM, czyli daily scrum meeting. Jest to krótkie spotkanie całego zespołu. Programiści najczęściej pracują w jednym dużym pomieszczeniu, tak zwanym open space, więc nie wymaga ono wycieczki w inne miejsce biura. W jego trakcie każdy mówi co udało mu się zrobić wczoraj, jakie napotkał problemy, czego oczekuje od innych, aby móc dalej wykonywać swoją pracę i jakie ma plany na dziś. Podczas DSM programiści stoją, pozwala to skupić się wypowiedziach innych i być bardziej konkretnym w swoich. I tak się najczęściej dzieje, żeby zbyt długo nie stać. Informacje wymienione podczas DSM dają możliwość szybkiej reakcji na potencjalne problemy w projekcie. Ale nie tylko. DSM ma też właściwości motywujące, wszak każdego dnia chcemy coś powiedzieć i coś obiecujemy na dzień następny. Więc żeby mieć o czym mówić w trakcie DSM musimy coś zrobić.
Po spotkaniu zespołu zaczyna się najintensywniejszy okres dnia. Żeby mieć na niego siłę warto zjeść drugie śniadanie. Praca programisty to nie tylko kodowanie nowych funkcji, ale również wprowadzanie poprawek, ulepszanie istniejącego kodu oraz spotkania w mniejszych grupach, nierzadko nieformalnie przy ekspresie do kawy. Mają one na celu na przykład wybranie najlepszego sposobu rozwiązania istniejących problemów. Programista nie klepie w klawiaturę cały czas, bardziej skomplikowanie zadania wymagają przemyślenia, rozłożenia dużego problemu na mniejsze. Kartka i ołówek też czasem się przydają. Myślenie musi być włączone cały czas.
Praca programisty to nie tylko sielanka. Stres związany jest najczęściej z terminami dostarczenia projektów oraz z sytuacjami krytycznymi, kiedy “coś nie działa i nikt nie wie dlaczego”. Bywa również tak, że kilka godzin sprawdza się działanie różnych rozwiązań, żeby finalnie wpisać kilka linijek kodu. Może to być demotywujące, póki sobie nie uświadomimy, że jak już coś wiemy, to zawsze jest to proste. Programistę często spotykają sytuacje, że nie wie od razu jak coś zrobić, ale zna metody, jak się tego dowiedzieć. Musi być aktywny w swojej pracy, umieć poszukać rozwiązania i poeksperymentować z różnymi pomysłami jakie przychodzą mu do głowy.
Godzina 13:00 to pora obiadu. Można ją przeoczyć, kiedy pracujemy nad nietrywialnym problemem. Czas mija wtedy bardzo szybko. Wspólne wyjścia na lunch są też okazją do rozmów nie tylko o pracy, choć często są one z nią związane. Oznacza to, że programiści często dyskutują o tym co aktualnie robią. Choć te rozmowy nie zawsze kończą się konsensusem, to na pewno są pouczające i pozwalają spojrzeć na nasze pomysły z różnych punktów widzenia.
Programista ma raczej zadaniowy czas pracy. Oznacza to, że rozliczany jest ze zrealizowanych zadań a nie z godzin, jakie przesiedział przed komputerem. Oczywiście rozsądny lider zespołu zrozumie, że niektóre zadania wymagały więcej pracy niż inne oraz, że zdarzają się nieprzewidziane sytuacje, które wydłużyły czas realizacji zadania. Wyłączenie komputera i wyjście z biura nie zawsze jest końcem dnia. Nierozwiązane problemy siedzą w głowie również po pracy, a i bywa, że potrafią się przyśnić. Za to każdy rozwiązany problem to duża satysfakcja. Tym większa, gdy widzimy jak z efektów naszej pracy korzystają inni. Dzień pracy programisty może wyglądać nieco inaczej. Nie wszystkie zespoły stosują identyczne zasady, inaczej wygląda praca zdalna. Ale zawsze wspólnym czynnikiem jest to, że nad rozwiązywanym problemem trzeba się zastanowić, opracować jego rozwiązanie i finalnie je zaimplementować, czyli zaprogramować.