Dzień z życia programisty… Comarch #10
Autorem artykułu jest Igor Kulewski, frontend developer w Comarch.
Obecnie jestem pracownikiem działu E-INVOICING w sektorze Usług. Posiadamy dwa główne produkty. Są to: aplikacja do wsparcia sprzedaży oraz aplikacja odpowiedzialna za wymianę danych i elektronicznym zarządzaniem dokumentami. Aplikacje są zarówno w wersji desktopowej, webowej jak i mobilnej. Produkty posiadają dużą liczbę w pełni konfigurowalnych modułów takich jak np. moduł zarządzania klientami, pracownikami czy produktami. Dzięki rozbiciu na moduły możliwa jest szybka i pełna personalizacja zgodna z wymaganiami klienta. Oba produkty są cały czas rozwijane i unowocześniane. Do ich stworzenia użyte zostały najnowsze technologie, dzięki czemu ciągły development jest możliwy w bardzo łatwy i przyjemny sposób.
Dział, w którym obecnie pracuję, podzielony jest na mniejsze zespoły developerskie. Można rozróżnić główny podział na zespoły wdrożeniowe/produkcyjne oraz zespoły R&D. Podział również uwzględnia przeznaczenie aplikacji, dlatego mamy dedykowane zespoły odpowiedzialne za wersje desktopową, webową oraz mobilną.
Obecnie wprowadzany zostaje również podział na zespoły frontendowe jak i backendowe. Współpracę między zespołami usprawnia miejsce pracy ponieważ większość zespołów z działu pracuje wspólnie na jednym piętrze nowo oddanego budynku SSE7. Używamy również narzędzi, które ułatwiają komunikację między zespołami – są to między innymi JIRA jako portal do tworzenia zadań developerskich oraz do zgłaszania błędów aplikacji oraz GitLab jako środowisko do zarządzania repozytoriami. Narzędzia te ułatwiają nam codzienną pracę np. dzięki JIRA proces SCRUM’owy jest zdecydowanie bardziej przejrzysty. PM’owie (red. pm – product master) jak i szefostwo jest w stanie bez większych problemów orientować się, jakie zadania obecnie są realizowane oraz jaki jest aktualny przebieg sprintu. GitLab pomaga nam utrzymać porządek w kodzie przez wymuszanie tworzenia merge requestów. Również dzięki merge requestom mamy kontrolę nad jakością tworzonego produktu. Możemy w zdecydowanie szybszy sposób wyeliminować niechciane błędy. Jeżeli chodzi o standardowy porządek dnia, to poza codziennym daily meetingiem zespoły nie mają żadnych dodatkowych spotkań. Wyjątkami są dni, w których odbywa się retrospektywa oraz demo. Wtedy cały zespół spotyka się na podsumowaniu poprzedniego sprintu. Kolejnym dniem różniącym się od przeciętnego dnia jest planning. W tym dniu cały zespół spotyka się, aby wspólnie omówić zadania, jakie będą realizowane podczas kolejnego sprintu. W zależności od potrzeb organizujemy również wewnątrz zespołowe lub między zespołowe wymiany wiedzy, na których możemy podzielić się pomysłami, jak ułatwić/usprawnić pracę. Możemy również zaproponować stosowanie nowego wydajniejszego podejścia do rzeczy już realizowanych.
W Comarch pracuję od 3 lat. Na samym początku trafiłem do zespołu wdrożeniowego zajmującego się przede wszystkim aplikacją webową i przez długi czas pracowałem jak fullstack developer, jednak ostatecznie zostałem odpowiedzialny za wizualną stronę aplikacji – krótko mówiąc, jestem frontend developerem. Jestem również odpowiedzialny za komunikację z działem projektującym User Experience, pomagam dopracowywać makiety oraz dbam o spójność aplikacji przez co możemy uniknąć redundancji kontrolek (nie powstają dwie identyczne kontrolki takie jak np datepicker’y czy dropdown’y).
Głównym narzędziem, jakiego używam w swojej codziennej, pracy jest Visual Studio Code lub Visual Studio 2017 w zależności od zadania. Do zarządzania kodem oraz repozytorium używam SourceTree. Z racji pracy nad aplikacjami webowymi również głównym narzędziem jest przeglądarka internetowa. Do codziennego developmentu używam Google Chrome wraz z ogromną ilością rozszerzeń. Nie ograniczam się do jednej przeglądarki. Przed oddaniem zadania do testów sprawdzam działanie stworzonej funkcjonalności na przeglądarkach zakontraktowanych w umowie z klientem, w większości wypadków jest to standardowo Google Chrome, Mozilla Firefox, IE11+, Edge oraz Safari.
Dzień rozpoczynam od przeglądnięcia maili, zajmuje mi to około 15 minut. Czasami zdarza się że proces ten trwa znacznie dłużej jednak jest to uwarunkowane przez aktualny stopień zaangażowania w danym projekcie (np. zbliżające się wdrożenia, powstanie nowych funkcjonalności, konsultacje z UX). Kolejnym etapem w dniu jest rozplanowanie pracy na cały nadchodzący dzień. Planowanie pracy rozpoczynam od sprawdzenia sprint backlogu, z dostępnych zadań wybieram te, które najbardziej mi pasują (oczywiście nie zawsze zdarza się że takie zadania są :), czasem niestety trzeba wziąć zadania niekoniecznie pożądane). Po wybraniu zadań czasami konsultuję je z pozostałymi członkami zespołu. Po konsultacjach rozpoczynam pracę nad wybranym zadaniem. Około godziny 9.30 rozpoczynają się daily meetingi. W moim przypadku są 2 takie spotkania z racji przynależności do 2 zespołów/aplikacji. Standupy kończymy około godziny 9:50. Na standupach informujemy siebie nawzajem, co aktualnie robimy, co planujemy robić oraz jakie są potencjalne zagrożenia mogące wyniknąć podczas robienia zadań, wstępnie też ustalamy, u kogo możemy uzyskać pomoc, jeżeli natrafimy na problem. Po wszystkich ceremoniach scrumowych można wrócić do pracy nad zadaniami. Oczywiście zwykły dzień może zostać rozszerzony o dodatkowe spotkania np. w celu rozwiązania problemów wynikłych z analizy zadań zleconych przez analityków czy projektantów User Experience. Jestem jednak głównie koderem i to sprawia mi największa radość ,dlatego staram się spędzać jak najwięcej czasu, tworząc nowe funkcjonalności.
Jeżeli chodzi o najciekawsze według mnie wyzwania, jakie napotykam podczas swojej pracy, są to na pewno zadania związane z animacjami i z dynamicznie przeciąganymi elementami. Zadania tego typu w większości są unikalne pod względem sposobu podejścia do rozwiązania problemu. Dzięki takiego typu zadaniom mam możliwość dowiedzieć się o nowościach w świecie nowych technologii. Skończenie zadania bardzo często wiąże się z przeczytaniem kilku bądź nawet kilkunastu artykułów, dzięki czemu jestem na bieżąco z nowoczesnymi i wydajnymi rozwiązaniami. Moim ulubionym typem zadań są zadania związane z wyglądem aplikacji. Uwielbiam tworzyć komponenty wyglądające jak na makietach stworzonych przez projektantów UX/UI. Przez moje zaangażowanie i zamiłowanie do wyglądu zostałem wyznaczony do pomocy zespołowi UX.
Chcielibyście rozpocząć swoją pracę w Comarch?
Jeśli moje artykuły dotyczące projektów oraz pracy w Comarch zainteresowały Was i chcielibyście dołączyć do jednego z zespołów firmy, zachęcam do przeglądnięcia strony kariera.comarch.pl, gdzie znajdziecie wszystkie aktualne oferty pracy lub do zapoznania się z informacjami odnośnie wakacyjnego programu stażowego: kariera.comarch.pl/staze/staz-it.
Artykuł ten powstał przy współpracy z firmą Comarch. Jest on ostatnim z dziesięciu wpisów, jakie ukazały się na blogu w ramach serii „Staż w Comarchu 2018”.
Biurko jest fajne. P)