Finanse, waluta, emigracja

Kariera w IT: praca programisty w software house’ie

Programista praca - Kariera w IT: praca programisty w software house’ie

Programiści tworzą aplikacje i programy spełniające określone potrzeby klienta. Niektórzy specjalizują się tylko w określonych językach programowania, inni znają ich kilka. Wbrew pozorom programista nie pisze tylko kodu. W dużej mierze praca ta polega na myśleniu, analizowaniu problemu, aby znaleźć najlepsze rozwiązanie, implementacji tego rozwiązania i jego przetestowaniu. Co jeszcze? Wszystko zależy od tego czy pracujemy w korporacji, start-upie czy software house’ie – typowy dzień pracy i zadania mogą się od siebie różnić. 

Rynek IT cały czas się zmienia, a zapotrzebowanie na programistów jest niezwykle duże. Szacuje się, że tylko w Polsce  brakuje około 50 tysięcy specjalistów IT. Według danych Komisji Europejskiej w Europie wakatów jest zaś około 900 tysięcy. Kogo szukają firmy? Najpopularniejsze technologie w Polsce w 2018 roku to m.in. JavaScript i Java, ale także .NET, Python, Angular[1]. Zdecydowanie w tej branży mamy rynek pracownika. Programiści chcąc zmienić pracodawcę coraz częściej zastanawiają się jakiego typu firma będzie dla nich najlepsza: korporacja, start-up czy może software house? Przy wyborze miejsca zatrudnienia liczy się coraz bardziej styl, kultura i  organizacja pracy.

Software house, korporacja czy start-up – jakie są różnice w pracy programisty w tych miejscach?

Specyfika pracy w korporacji może się znacząco różnić między samymi firmami, podobnie jest ze start-upami czy software house’ami, ale ogólnie można wyróżnić charakterystyczne różnice. W korporacji zwykle spotkamy się z mocno hierarchiczną strukturą firmy, sztywnymi procedurami, procesami i standardami pracy. Na drugim końcu jest start-up, który jako mała firma posiada raczej niewielki zespół, luźną atmosferę i budujące się dopiero procesy organizacyjne. Software house plasuje się zwykle po środku – mamy tu zazwyczaj określone standardy pracy, ale bardzo często jest to także przyjazna, nieformalna atmosfera i płaska struktura organizacyjna. Co jeszcze?

Zobacz:  Dalsze kroki w kierunku ochrony praw autorów

Praca w software house’ie – czyli gdzie i z kim?

Software house to firma, która zajmuje się tworzeniem oprogramowania na zamówienie i zatrudnia zespół, który jest w stanie kompleksowo zająć się przygotowaniem takiego zlecenia od A do Z. Decydując się na pracę w takiej firmie możemy być pewni, że znajdziemy tam doświadczonych developerów z szerokim spectrum umiejętności i wiedzą w zakresie najnowszych technologii, takich jak machine learning czy blockchain. Zespół software house’u tworzą więc m.in. deweloperzy Front-end i Back-end, UX/UI designerzy, Testerzy, Product Managerowie, Team Leaderzy odpowiedzialni nie tylko za pracę programistów, ale też np. komunikację z klientem czy też osoby o mniej technicznych umiejętnościach jak specjalista ds. komunikacji czy Office Manager.

Developer w software house’ie – typowy dzień pracy

Proces tworzenia oprogramowania, z jednej strony, może wyglądać bardzo podobnie w firmach IT, a z drugiej strony, istnieją subtelne, ale znaczące różnice, które wynikają chociażby z metodyki zarządzania projektem oraz ogólnego stylu pracy firmy.

– Jak wygląda praca i proces tworzenia oprogramowania w Sparkbit? Wszystkie nasze projekty zarządzane są w metodykach zwinnych Kanban lub Scrum. Proces rozpoczyna się workshopem i analizą tego, co mamy przygotować wraz ze wstępnym zaplanowaniem architektury i podziałem projektu na poszczególne fazy. Następnie praca rozpisywana jest na Sprinty, w naszym przypadku najczęściej są to krótkie 2-tygodniowe cykle pracy, które mają na celu dostarczyć kolejne potencjalnie releasowalne części produktu. Każdy Sprint zaczyna się   od planningu, podczas którego ustalane są cele i zadania, które mamy wykonać. Po tym czasie pokazujemy klientowi, co powstało i on mówi nam, czy idziemy w dobrym kierunku, czy coś musimy zmienić. Następnie planujemy kolejną taką iterację. I tak aż do finalnego przekazania zamówionego oprogramowania klientowi. A jak wygląda typowy dzień pracy u nas? Początek dnia to zwykle kawa i wspólne firmowe śniadanie. Oferujemy elastyczne godziny pracy i możliwość dwóch dni pracy zdalnej tygodniowo, dlatego każdy programista może dostosować swój dzień pracy do swoich potrzeb. Jedni wolą przyjść do biura wcześnie, inni pojawiają  się dopiero o 10:30 czyli z początkiem naszych tzw. core hours (10:30 – 15:30). Ważne jest dla nas, aby w tym czasie cały zespół był dostępny. Dlaczego? Bo wtedy odbywają się krótkie spotkania zespołów w ramach daily scrum meeting, gdzie omawiamy bieżące zadania, pomagamy w rozwiązywaniu problemów (jeśli się takie pojawiają), dzielimy się  informacjami i planujemy kolejne działania. Potem developer zajmuje się swoimi zadaniami na dany dzień, np. sprawdzaniem e-maili, pisaniem kodu, myśleniem jak rozwiązać dany problem, wdrożeniem rozwiązania, sprawdzeniem czy działa, znów myśleniem, w między czasie lunch na mieście lub w naszej przyjaznej kuchni, rozmowy z Product Ownerem, klientem lub innymi developerami w ramach zespołu projektowego. Developerzy zajmują się też tzw. ,,code review”, czyli sprawdzeniem kodu swoich kolegów. To ważny element, ponieważ czasem można znaleźć jakąś lukę, coś można napisać prościej i w ten sposób wyeliminować sporą liczbę ewentualnych błędów. Dobra atmosfera w pracy i budowanie zgranego zespołu jest dla nas bardzo ważne, a komfortowe warunki pracy to absolutny must-have. Dlatego też staramy się, żeby każda osoba u nas czuła się ważną częścią firmy. Często organizujemy wyjścia integracyjne i dla chętnych spotkania po pracy, żeby wspólnie pograć w planszówki. Co środę mamy  spotkania międzyprojektowe, na których wymieniamy się doświadczeniami i rozmawiamy o pojawiających się wyzwaniach. W tym czasie przeprowadzane są też wewnętrzne szkolenia i prezentacje o najnowszych trendach, omawiane ciekawe case’y. Zbudowaliśmy przyjazne środowisko pracy, które zapewnia nieskrępowaną możliwość rozwoju członkom naszego zespołu. Dlatego też programiści u nas pracują tylko na najlepszym sprzęcie, mają wygodne, ergonomiczne stanowiska pracy – mówi Jędrzej Fulara, CTO Sparkbit.

Zobacz:  Inwestowanie w mieszkania na wynajem – gdzie najlepiej?

Programista ma raczej zadaniowy czas pracy i każdy dzień zwykle wygląda inaczej. Czasem więcej czasu zajmuje myślenie nad rozwiązaniem niż jego zaimplementowanie, czyli zaprogramowanie. Praca programisty to w dużej mierze właśnie myślenie nad tym jak najlepiej, najprościej i w sposób najbardziej funkcjonalny dla finalnego produktu rozwiązać problemy i wyzwania, które stoją przed developerem tworzącym oprogramowanie.

Specyfika pracy w software house’ie

Software house to miejsce, gdzie mamy zespół wielu developerów z różnych specjalności, do tego jest w nich kilka lub kilkanaście projektów w jednym czasie z różnych branż. Łatwo więc jest zmienić projekt i znaleźć taki, który jest dla nas ciekawy. Dzięki temu mamy możliwość poznania różnorodnych środowisk pracy, budowania swojego doświadczenia. Wspiera to ciągły rozwój i poszerzanie swoich kompetencji technicznych. Każdy projekt wymaga bowiem innego podejścia i nowych rozwiązań. Do tego zawsze możemy liczyć na wsparcie innych członków zespołu, dzięki temu problemy technologiczne, z jakimi przychodzi się programiście zmierzyć na co dzień, mogą być dużo sprawniej rozwiązywane. Procedury nie są tu tak sformalizowane i męczące jak bywają w korporacji.

Zobacz:  Blokowanie telefonu za pomocą biometrii często zawodzi

– Specyfika pracy w software house’ie  jest zdecydowanie inna od tej w korporacji czy start-upie. Największymi zaletami pracy w takim miejscu są dostęp do najnowszych technologii IT i możliwość wdrażania nowoczesnych metod realizacji projektów, do tego luźna atmosfera, błyskawicznie podejmowane decyzje – choćby tak błahe, jak zamówienie nowego sprzętu, nieformalny dress code, płaska struktura zarządzania, wspólne wyjścia integracyjne, pizza day, elastyczne godziny pracy. Możliwość pracy w kilku projektach naraz lub jeśli wolimy stała praca i rozwój oprogramowania danego klienta. Możliwość ciągłego rozwoju, dzięki wsparciu ze strony bardziej doświadczonych developerów  i udziałowi w konferencjach oraz szkoleniach finansowanych przez firmę. Dzięki temu łatwiej jest poszerzyć swój zakres umiejętności i zmienić stanowisko np. z Frontendowca na Full Stack Developera  – mówi Jędrzej Fulara, CTO Sparkbit.

Zobacz:  Samsung Galaxy Fold trafi na rynek we wrześniu

[1] Raport „Rynek pracy IT w 2018 roku” firmy No Fluff Jobs